|
1 | 1 | /* |
2 | | - * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. |
| 2 | + * Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved. |
3 | 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 | 4 | * |
5 | 5 | * The Universal Permissive License (UPL), Version 1.0 |
|
44 | 44 | import com.oracle.graal.python.builtins.objects.module.PythonModule; |
45 | 45 | import com.oracle.graal.python.builtins.objects.object.PythonObject; |
46 | 46 | import com.oracle.graal.python.builtins.objects.type.PythonManagedClass; |
47 | | -import com.oracle.graal.python.nodes.PGuards; |
48 | 47 | import com.oracle.graal.python.nodes.PNodeWithContext; |
49 | | -import com.oracle.graal.python.runtime.PythonOptions; |
50 | 48 | import com.oracle.truffle.api.Assumption; |
51 | 49 | import com.oracle.truffle.api.dsl.Cached; |
52 | 50 | import com.oracle.truffle.api.dsl.GenerateInline; |
53 | 51 | import com.oracle.truffle.api.dsl.GenerateUncached; |
54 | 52 | import com.oracle.truffle.api.dsl.Idempotent; |
55 | | -import com.oracle.truffle.api.dsl.ImportStatic; |
56 | 53 | import com.oracle.truffle.api.dsl.NeverDefault; |
57 | 54 | import com.oracle.truffle.api.dsl.NonIdempotent; |
58 | 55 | import com.oracle.truffle.api.dsl.Specialization; |
|
64 | 61 | import com.oracle.truffle.api.object.Shape; |
65 | 62 | import com.oracle.truffle.api.strings.TruffleString; |
66 | 63 |
|
67 | | -@ImportStatic({PGuards.class, PythonOptions.class}) |
| 64 | +/** |
| 65 | + * Reads attribute directly from the underlying {@link DynamicObject} regardless of whether the |
| 66 | + * object has dict, also bypasses any other additional logic in {@link ReadAttributeFromObjectNode}. |
| 67 | + */ |
68 | 68 | @GenerateUncached |
69 | 69 | @GenerateInline(false) // footprint reduction 44 -> 25 |
70 | 70 | public abstract class ReadAttributeFromPythonObjectNode extends PNodeWithContext { |
|
0 commit comments