Skip to content

Commit 49b1eb4

Browse files
committed
Add missing conversions to remaining isMetaInstance message implementations
1 parent 4263441 commit 49b1eb4

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/PythonBuiltinClassType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import com.oracle.graal.python.nodes.ErrorMessages;
3939
import com.oracle.graal.python.nodes.PRaiseNode;
4040
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
41+
import com.oracle.graal.python.nodes.interop.PForeignToPTypeNode;
4142
import com.oracle.graal.python.runtime.PythonContext;
4243
import com.oracle.truffle.api.CompilerAsserts;
4344
import com.oracle.truffle.api.CompilerDirectives;
@@ -618,8 +619,9 @@ static boolean isMetaObject(@SuppressWarnings("unused") PythonBuiltinClassType s
618619
@ExportMessage
619620
static boolean isMetaInstance(PythonBuiltinClassType self, Object instance,
620621
@CachedLibrary(limit = "3") PythonObjectLibrary lib,
622+
@Cached PForeignToPTypeNode convert,
621623
@Cached IsSubtypeNode isSubtype) {
622-
return isSubtype.execute(lib.getLazyPythonClass(instance), self);
624+
return isSubtype.execute(lib.getLazyPythonClass(convert.executeConvert(instance)), self);
623625
}
624626

625627
@ExportMessage

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/PythonAbstractNativeObject.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
import com.oracle.graal.python.nodes.ErrorMessages;
6868
import com.oracle.graal.python.nodes.PRaiseNode;
6969
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
70+
import com.oracle.graal.python.nodes.interop.PForeignToPTypeNode;
7071
import com.oracle.graal.python.nodes.object.IsBuiltinClassProfile;
7172
import com.oracle.truffle.api.Assumption;
7273
import com.oracle.truffle.api.CompilerAsserts;
@@ -319,11 +320,12 @@ boolean isMetaObject(
319320
boolean isMetaInstance(Object instance,
320321
@Shared("isType") @Cached TypeNodes.IsTypeNode isType,
321322
@CachedLibrary(limit = "3") PythonObjectLibrary plib,
323+
@Cached PForeignToPTypeNode convert,
322324
@Cached IsSubtypeNode isSubtype) throws UnsupportedMessageException {
323325
if (!isType.execute(this)) {
324326
throw UnsupportedMessageException.create();
325327
}
326-
return isSubtype.execute(plib.getLazyPythonClass(instance), this);
328+
return isSubtype.execute(plib.getLazyPythonClass(convert.executeConvert(instance)), this);
327329
}
328330

329331
@ExportMessage

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/type/PythonClass.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
3030
import com.oracle.graal.python.nodes.attributes.ReadAttributeFromDynamicObjectNode;
3131
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
32+
import com.oracle.graal.python.nodes.interop.PForeignToPTypeNode;
3233
import com.oracle.truffle.api.dsl.Cached;
3334
import com.oracle.truffle.api.dsl.Cached.Shared;
3435
import com.oracle.truffle.api.interop.InteropLibrary;
@@ -64,8 +65,9 @@ boolean isMetaObject() {
6465
@ExportMessage
6566
boolean isMetaInstance(Object instance,
6667
@CachedLibrary(limit = "3") PythonObjectLibrary plib,
68+
@Cached PForeignToPTypeNode convert,
6769
@Cached IsSubtypeNode isSubtype) {
68-
return isSubtype.execute(plib.getLazyPythonClass(instance), this);
70+
return isSubtype.execute(plib.getLazyPythonClass(convert.executeConvert(instance)), this);
6971
}
7072

7173
@ExportMessage

0 commit comments

Comments
 (0)