Skip to content

Commit 4263441

Browse files
committed
Fix getMetaType of PException
1 parent e8822f3 commit 4263441

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

graalpython/com.oracle.graal.python.test/src/com/oracle/graal/python/test/interop/InteropLibraryTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,10 @@ public void testException() {
174174
context.eval("python", "1/0");
175175
} catch (PolyglotException e) {
176176
Value exception = e.getGuestObject();
177+
assertTrue(exception.isException());
178+
Value clazz = exception.getMetaObject();
179+
assertTrue(clazz.isMetaObject());
180+
assertEquals("ZeroDivisionError", clazz.getMetaSimpleName());
177181
assertTrue(exception.hasMember("args"));
178182
Value args = exception.getMember("args");
179183
assertTrue(args.hasArrayElements());

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
3434
import com.oracle.graal.python.nodes.ErrorMessages;
3535
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
36+
import com.oracle.graal.python.nodes.interop.PForeignToPTypeNode;
3637
import com.oracle.truffle.api.CompilerAsserts;
3738
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
3839
import com.oracle.truffle.api.dsl.Cached;
@@ -87,8 +88,9 @@ boolean isMetaObject() {
8788
@SuppressWarnings("static-method")
8889
boolean isMetaInstance(Object instance,
8990
@CachedLibrary(limit = "3") PythonObjectLibrary plib,
91+
@Cached PForeignToPTypeNode convert,
9092
@Cached IsSubtypeNode isSubtype) {
91-
return isSubtype.execute(plib.getLazyPythonClass(instance), this);
93+
return isSubtype.execute(plib.getLazyPythonClass(convert.executeConvert(instance)), this);
9294
}
9395

9496
@ExportMessage

0 commit comments

Comments
 (0)