Skip to content

Commit e7d5aab

Browse files
committed
PyLongCheckNode: check for PInt subclasses as well
1 parent d78e31a commit e7d5aab

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/lib/PyLongCheckNode.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444
import com.oracle.graal.python.builtins.objects.ints.PInt;
4545
import com.oracle.graal.python.nodes.PNodeWithContext;
4646
import com.oracle.graal.python.nodes.SpecialMethodNames;
47+
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
4748
import com.oracle.graal.python.nodes.object.GetClassNode;
48-
import com.oracle.graal.python.nodes.object.IsBuiltinClassProfile;
4949
import com.oracle.truffle.api.dsl.Cached;
5050
import com.oracle.truffle.api.dsl.GenerateUncached;
5151
import com.oracle.truffle.api.dsl.ImportStatic;
@@ -85,13 +85,12 @@ static boolean doPInt(@SuppressWarnings("unused") PInt object) {
8585
@Specialization
8686
static boolean doGeneric(Object object,
8787
@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) {
9390
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) {
9594
return interopLibrary.fitsInLong(object);
9695
}
9796
return false;

0 commit comments

Comments
 (0)