You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2018/08/19 07:05:37 UTC

groovy git commit: GROOVY-8753: Compiler error in STC: exception in phase 'instruction selection' (closes #786)

Repository: groovy
Updated Branches:
  refs/heads/master 3cb1a25c8 -> 47ae515f3


GROOVY-8753: Compiler error in STC: exception in phase 'instruction selection' (closes #786)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/47ae515f
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/47ae515f
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/47ae515f

Branch: refs/heads/master
Commit: 47ae515f31ebd40dcdc8d6cedb84a3ca9b273f5d
Parents: 3cb1a25
Author: Paul King <pa...@asert.com.au>
Authored: Sat Aug 18 15:23:41 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Sun Aug 19 17:04:23 2018 +1000

----------------------------------------------------------------------
 .../transform/stc/StaticTypeCheckingVisitor.java     |  2 +-
 .../sc/FieldsAndPropertiesStaticCompileTest.groovy   | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/47ae515f/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index a80f27c..12fe2f2 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -503,7 +503,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                     getterNode = findValidGetter(enclosingClassNode, "is" + suffix);
                 }
                 if (getterNode != null) {
-                    source.setNodeMetaData(StaticTypesMarker.INFERRED_TYPE, getterNode.getReturnType());
+                    source.putNodeMetaData(StaticTypesMarker.INFERRED_TYPE, getterNode.getReturnType());
                     return;
                 }
             }

http://git-wip-us.apache.org/repos/asf/groovy/blob/47ae515f/src/test/org/codehaus/groovy/classgen/asm/sc/FieldsAndPropertiesStaticCompileTest.groovy
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/classgen/asm/sc/FieldsAndPropertiesStaticCompileTest.groovy b/src/test/org/codehaus/groovy/classgen/asm/sc/FieldsAndPropertiesStaticCompileTest.groovy
index 4bef2c4..330fbb3 100644
--- a/src/test/org/codehaus/groovy/classgen/asm/sc/FieldsAndPropertiesStaticCompileTest.groovy
+++ b/src/test/org/codehaus/groovy/classgen/asm/sc/FieldsAndPropertiesStaticCompileTest.groovy
@@ -781,4 +781,19 @@ import org.codehaus.groovy.transform.sc.ListOfExpressionsExpression
             //println astTrees
         }
     }
+
+    //GROOVY-8753
+    void testPrivateFieldWithPublicGetter() {
+        assertScript '''
+            @groovy.transform.CompileStatic
+            class A {
+               private List<String> fooNames = []
+               public A(Collection<String> names) {
+                  names.each { fooNames << it }
+               }
+               public List<String> getFooNames() { fooNames }
+            }
+            assert new A(['foo1', 'foo2']).fooNames.size() == 2
+        '''
+    }
 }