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

commit 3321d1b8412bc875c519e261f4cb12b772cfe20b
Author: Eric Milles <[email protected]>
AuthorDate: Wed Apr 14 15:53:14 2021 -0500

    GROOVY-10036: STC: pass explicit type arguments of extension method call
---
 .../transform/stc/StaticTypeCheckingVisitor.java      |  2 +-
 src/test/groovy/transform/stc/GenericsSTCTest.groovy  | 19 +++++++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

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 7be2912..795b0ba 100644
--- 
a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ 
b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -5161,7 +5161,7 @@ public class StaticTypeCheckingVisitor extends 
ClassCodeVisitorSupport {
             } else {
                 args.addExpression(arguments);
             }
-            return inferReturnTypeGenerics(receiver, dgm, args);
+            return inferReturnTypeGenerics(receiver, dgm, args, 
explicitTypeHints);
         }
         Map<GenericsTypeName, GenericsType> resolvedPlaceholders = 
resolvePlaceHoldersFromDeclaration(receiver, getDeclaringClass(method, 
arguments), method, method.isStatic());
         resolvePlaceholdersFromExplicitTypeHints(method, explicitTypeHints, 
resolvedPlaceholders);
diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy 
b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
index 800ea5f..90e74f5 100644
--- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
@@ -285,16 +285,27 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
         ''', 'Number'
     }
 
-    // GROOVY-9914
+    // GROOVY-9914, GROOVY-10036
     void testAssignmentShouldWorkForParameterizedMap() {
         assertScript '''
             Map test(Map<String,String> one) {
-              Map<String,Integer> two = one.collectEntries { k,v ->
-                [(k): v.hashCode()]
-              }
+                Map<String,Integer> two = one.collectEntries { k,v ->
+                    [(k): v.hashCode()]
+                }
             }
             assert test(foo:'bar').containsKey('foo')
         '''
+
+        assertScript '''
+            def list = ['foo','bar','baz']
+            @ASTTest(phase=INSTRUCTION_SELECTION, value={
+                def type = node.getNodeMetaData(INFERRED_TYPE)
+                assert type.toString(false) == 'java.util.Map <String, Object>'
+            })
+            def map = list.<String,Object,String>collectEntries {
+                [(it): it.hashCode()]
+            }
+        '''
     }
 
     void testGroovy5154() {

Reply via email to