You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/08/26 15:45:58 UTC

[groovy] branch GROOVY_2_5_X updated: GROOVY-8828: STC: `UnionTypeClassNode` plain node reference semantics

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

emilles pushed a commit to branch GROOVY_2_5_X
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/GROOVY_2_5_X by this push:
     new e8fff13222 GROOVY-8828: STC: `UnionTypeClassNode` plain node reference semantics
e8fff13222 is described below

commit e8fff132220424f9e556407f294962d8770986aa
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Fri Aug 26 10:12:59 2022 -0500

    GROOVY-8828: STC: `UnionTypeClassNode` plain node reference semantics
---
 .../org/codehaus/groovy/transform/stc/UnionTypeClassNode.java    | 9 +++++++++
 src/test/groovy/transform/stc/TypeInferenceSTCTest.groovy        | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

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 1513421c27..34d6947a9e 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/UnionTypeClassNode.java
@@ -306,6 +306,15 @@ class UnionTypeClassNode extends ClassNode {
         return nodes;
     }
 
+    @Override
+    public ClassNode getPlainNodeReference() {
+        int n = delegates.length; ClassNode[] plainNodes = new ClassNode[n];
+        for (int i = 0; i < n; i += 1) {
+            plainNodes[i] = delegates[i].getPlainNodeReference();
+        }
+        return new UnionTypeClassNode(plainNodes);
+    }
+
     @Override
     public List<PropertyNode> getProperties() {
         List<PropertyNode> nodes = new LinkedList<PropertyNode>();
diff --git a/src/test/groovy/transform/stc/TypeInferenceSTCTest.groovy b/src/test/groovy/transform/stc/TypeInferenceSTCTest.groovy
index 99cd7be03e..76f66851bf 100644
--- a/src/test/groovy/transform/stc/TypeInferenceSTCTest.groovy
+++ b/src/test/groovy/transform/stc/TypeInferenceSTCTest.groovy
@@ -363,7 +363,7 @@ class TypeInferenceSTCTest extends StaticTypeCheckingTestCase {
         }
     }
 
-    @NotYetImplemented // GROOVY-8828
+    // GROOVY-8828
     void testMultipleInstanceOf7() {
         assertScript '''
             interface Foo { }