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

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


The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
     new e916e6c812 added notes
e916e6c812 is described below

commit e916e6c812a7852ef4b0b2131142cb7b33d7db97
Author: Eric Milles <[email protected]>
AuthorDate: Sat Sep 10 10:02:56 2022 -0500

    added notes
---
 .../codehaus/groovy/classgen/AsmClassGenerator.java   |  8 ++++----
 .../transform/stc/FieldsAndPropertiesSTCTest.groovy   |  4 +++-
 .../sc/FieldsAndPropertiesStaticCompileTest.groovy    | 19 -------------------
 3 files changed, 7 insertions(+), 24 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java 
b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 8cb1e49b07..734928fc69 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -1071,14 +1071,14 @@ public class AsmClassGenerator extends ClassGenerator {
         if (ExpressionUtils.isThisExpression(objectExpression)) return true;
         if (objectExpression instanceof ClassExpression) return false;
 
+        // GROOVY-9195, GROOVY-9288: uniform treatment for "foo.bar" and 
"foo.with { bar }" using TypeChooser (not getType())
         ClassNode objectExpressionType = 
controller.getTypeChooser().resolveType(objectExpression, 
controller.getClassNode());
-        if (objectExpressionType.equals(ClassHelper.OBJECT_TYPE)) 
objectExpressionType = objectExpression.getType();
-        if (isOrImplements(objectExpressionType, ClassHelper.MAP_TYPE)) return 
false; // GROOVY-8074
-        return implementsGroovyObject(objectExpressionType); // GROOVY-9195, 
GROOVY-9288, et al.
+        return implementsGroovyObject(objectExpressionType) // GROOVY-10540
+            && !isOrImplements(objectExpressionType, ClassHelper.MAP_TYPE); // 
GROOVY-5517, GROOVY-8074
     }
 
     private static boolean implementsGroovyObject(final ClassNode cn) {
-        return cn.isDerivedFromGroovyObject() || (!cn.isInterface() && 
cn.getCompileUnit() != null);
+        return cn.isDerivedFromGroovyObject() || (cn.getCompileUnit() != null 
&& !cn.isInterface());
     }
 
     @Override
diff --git a/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy 
b/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy
index 912e4f9d77..4573972d3c 100644
--- a/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy
+++ b/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy
@@ -502,12 +502,14 @@ class FieldsAndPropertiesSTCTest extends 
StaticTypeCheckingTestCase {
                 public static int version = 666
             }
             def map = new C()
-            map['foo'] = 123
+            map.foo = 123
             def value = map.foo
             assert value == 123
             map['foo'] = 4.5
             value = map['foo']
             assert value == 4.5
+            value = map.version
+            assert value == null
             assert C.version == 666
         '''
     }
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 664b08ebf6..beb66eff09 100644
--- 
a/src/test/org/codehaus/groovy/classgen/asm/sc/FieldsAndPropertiesStaticCompileTest.groovy
+++ 
b/src/test/org/codehaus/groovy/classgen/asm/sc/FieldsAndPropertiesStaticCompileTest.groovy
@@ -22,25 +22,6 @@ import groovy.transform.stc.FieldsAndPropertiesSTCTest
 
 final class FieldsAndPropertiesStaticCompileTest extends 
FieldsAndPropertiesSTCTest implements StaticCompilationTestSupport {
 
-    void testMapGetAt() {
-        assertScript '''
-            Map map = [a: 1, b:2]
-            String key = 'b'
-            assert map['a'] == 1
-            assert map[key] == 2
-        '''
-    }
-
-    void testGetAtFromStaticMap() {
-        assertScript '''
-            class Foo {
-                public static Map CLASSES = [:]
-            }
-            String foo = 'key'
-            Foo.CLASSES[foo]
-        '''
-    }
-
     // GROOVY-5561
     void testShouldNotThrowAccessForbidden() {
         assertScript '''

Reply via email to