|
44 | 44 | import com.oracle.graal.python.builtins.objects.ints.PInt;
|
45 | 45 | import com.oracle.graal.python.nodes.PNodeWithContext;
|
46 | 46 | import com.oracle.graal.python.nodes.SpecialMethodNames;
|
| 47 | +import com.oracle.graal.python.nodes.classes.IsSubtypeNode; |
47 | 48 | import com.oracle.graal.python.nodes.object.GetClassNode;
|
48 |
| -import com.oracle.graal.python.nodes.object.IsBuiltinClassProfile; |
49 | 49 | import com.oracle.truffle.api.dsl.Cached;
|
50 | 50 | import com.oracle.truffle.api.dsl.GenerateUncached;
|
51 | 51 | import com.oracle.truffle.api.dsl.ImportStatic;
|
@@ -85,13 +85,12 @@ static boolean doPInt(@SuppressWarnings("unused") PInt object) {
|
85 | 85 | @Specialization
|
86 | 86 | static boolean doGeneric(Object object,
|
87 | 87 | @Cached GetClassNode getClassNode,
|
88 |
| - @CachedLibrary(limit = "3") InteropLibrary interopLibrary, |
89 |
| - @Cached IsBuiltinClassProfile isBuiltinClassProfile) { |
90 |
| - if (isBuiltinClassProfile.profileObject(object, PythonBuiltinClassType.PInt)) { |
91 |
| - return true; |
92 |
| - } |
| 88 | + @Cached IsSubtypeNode isSubtypeNode, |
| 89 | + @CachedLibrary(limit = "3") InteropLibrary interopLibrary) { |
93 | 90 | Object type = getClassNode.execute(object);
|
94 |
| - if (type == PythonBuiltinClassType.ForeignObject) { |
| 91 | + if (isSubtypeNode.execute(type, PythonBuiltinClassType.PInt)) { |
| 92 | + return true; |
| 93 | + } else if (type == PythonBuiltinClassType.ForeignObject) { |
95 | 94 | return interopLibrary.fitsInLong(object);
|
96 | 95 | }
|
97 | 96 | return false;
|
|
0 commit comments