diff --git a/src/main/java/org/truffleruby/interop/InteropNodes.java b/src/main/java/org/truffleruby/interop/InteropNodes.java index 6e7bcb0ef474..b76dedbd8492 100644 --- a/src/main/java/org/truffleruby/interop/InteropNodes.java +++ b/src/main/java/org/truffleruby/interop/InteropNodes.java @@ -837,7 +837,6 @@ public abstract static class InteropJavaInstanceOfNode extends CoreMethodArrayAr @Specialization(guards = { "isJavaObject(boxedInstance)", - "isJavaObject(boxedJavaClass)", "isJavaClassOrInterface(boxedJavaClass)" }) public boolean javaInstanceOfJava(Object boxedInstance, TruffleObject boxedJavaClass) { @@ -848,7 +847,6 @@ public boolean javaInstanceOfJava(Object boxedInstance, TruffleObject boxedJavaC @Specialization(guards = { "!isJavaObject(instance)", - "isJavaObject(boxedJavaClass)", "isJavaClassOrInterface(boxedJavaClass)" }) public boolean javaInstanceOfNotJava(Object instance, TruffleObject boxedJavaClass) { @@ -861,7 +859,8 @@ protected boolean isJavaObject(Object object) { } protected boolean isJavaClassOrInterface(TruffleObject object) { - return getContext().getEnv().asHostObject(object) instanceof Class; + return getContext().getEnv().isHostObject(object) + && getContext().getEnv().asHostObject(object) instanceof Class; } }