|
45 | 45 | import com.oracle.graal.python.builtins.objects.PNone;
|
46 | 46 | import com.oracle.graal.python.builtins.objects.PNotImplemented;
|
47 | 47 | import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
|
48 |
| -import com.oracle.graal.python.builtins.objects.type.PythonAbstractClass; |
| 48 | +import com.oracle.graal.python.builtins.objects.type.LazyPythonClass; |
49 | 49 | import com.oracle.graal.python.builtins.objects.type.TypeNodes;
|
50 | 50 | import com.oracle.graal.python.nodes.PNodeWithContext;
|
51 | 51 | import com.oracle.graal.python.nodes.attributes.LookupAttributeInMRONode;
|
52 | 52 | import com.oracle.graal.python.nodes.attributes.LookupInheritedAttributeNode;
|
53 | 53 | import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
|
54 | 54 | import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
|
55 | 55 | import com.oracle.graal.python.nodes.object.GetClassNode;
|
| 56 | +import com.oracle.graal.python.nodes.object.GetLazyClassNode; |
56 | 57 | import com.oracle.truffle.api.CompilerDirectives;
|
57 | 58 | import com.oracle.truffle.api.dsl.Cached;
|
58 | 59 | import com.oracle.truffle.api.dsl.Specialization;
|
@@ -283,17 +284,17 @@ Object callObject(Object left, Object right,
|
283 | 284 |
|
284 | 285 | @Specialization(guards = "isReversible()")
|
285 | 286 | Object callObject(Object left, Object right,
|
286 |
| - @Cached("create(name)") LookupAttributeInMRONode getattr, |
287 |
| - @Cached("create(rname)") LookupAttributeInMRONode getattrR, |
288 |
| - @Cached("create()") GetClassNode getClass, |
289 |
| - @Cached("create()") GetClassNode getClassR, |
290 |
| - @Cached("create()") TypeNodes.IsSameTypeNode isSameTypeNode, |
291 |
| - @Cached("create()") IsSubtypeNode isSubtype, |
292 |
| - @Cached("createBinaryProfile()") ConditionProfile notImplementedBranch) { |
| 287 | + @Cached("create(name)") LookupAttributeInMRONode getattr, |
| 288 | + @Cached("create(rname)") LookupAttributeInMRONode getattrR, |
| 289 | + @Cached("create()") GetLazyClassNode getClass, |
| 290 | + @Cached("create()") GetLazyClassNode getClassR, |
| 291 | + @Cached("create()") TypeNodes.IsSameTypeNode isSameTypeNode, |
| 292 | + @Cached("create()") IsSubtypeNode isSubtype, |
| 293 | + @Cached("createBinaryProfile()") ConditionProfile notImplementedBranch) { |
293 | 294 | Object result = PNotImplemented.NOT_IMPLEMENTED;
|
294 |
| - PythonAbstractClass leftClass = getClass.execute(left); |
| 295 | + LazyPythonClass leftClass = getClass.execute(left); |
295 | 296 | Object leftCallable = getattr.execute(leftClass);
|
296 |
| - PythonAbstractClass rightClass = getClassR.execute(right); |
| 297 | + LazyPythonClass rightClass = getClassR.execute(right); |
297 | 298 | Object rightCallable = getattrR.execute(rightClass);
|
298 | 299 | if (leftCallable == rightCallable) {
|
299 | 300 | rightCallable = PNone.NO_VALUE;
|
|
0 commit comments