This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch union-types
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit fef4c45457cc1908687b5d89ffb0b0185e7e1ffe
Author: Eric Milles <[email protected]>
AuthorDate: Thu May 7 15:49:05 2026 -0500

    fix derived checks and add ingterface check
---
 .../codehaus/groovy/transform/stc/UnionTypeClassNode.java | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java 
b/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
index 108c12447a..57e6343294 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
@@ -385,15 +385,24 @@ class UnionTypeClassNode extends ClassNode {
 
     @Override
     public boolean isDerivedFrom(final ClassNode type) {
-        return getUnresolvedSuperClass(false).isDerivedFrom(type);
+        return this.equals(type)
+            || getUnresolvedSuperClass(false).isDerivedFrom(type);
     }
 
     @Override
     public boolean isDerivedFromGroovyObject() {
         for (ClassNode delegate : delegates) {
-            if (delegate.isDerivedFromGroovyObject()) return true;
+            if (!delegate.isDerivedFromGroovyObject()) return false;
         }
-        return false;
+        return true;
+    }
+
+    @Override
+    public boolean isInterface() {
+        for (ClassNode delegate : delegates) {
+            if (!delegate.isInterface()) return false;
+        }
+        return true;
     }
 
     @Override

Reply via email to