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

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


The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
     new f675a62907 GROOVY-10725: STC: resolve variadic placeholder
f675a62907 is described below

commit f675a62907744120f0ff927c07544bda705a967e
Author: Eric Milles <[email protected]>
AuthorDate: Sat Aug 20 09:26:29 2022 -0500

    GROOVY-10725: STC: resolve variadic placeholder
---
 .../groovy/transform/stc/StaticTypeCheckingVisitor.java        |  2 +-
 src/test/groovy/transform/stc/GenericsSTCTest.groovy           | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

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 93f1f3f398..f4baeab8ca 100644
--- 
a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ 
b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -5498,7 +5498,7 @@ public class StaticTypeCheckingVisitor extends 
ClassCodeVisitorSupport {
             // and unknown generics
             if (!GenericsUtils.hasUnresolvedGenerics(at)) continue;
 
-            while (!at.equals(pt) && !isObjectType(at) && 
!isGenericsPlaceHolderOrArrayOf(at)) {
+            while (!at.equals(pt) && !isObjectType(at) && 
!isGenericsPlaceHolderOrArrayOf(at) && !isGenericsPlaceHolderOrArrayOf(pt)) {
                 at = 
applyGenericsContext(GenericsUtils.extractPlaceholders(at), 
getNextSuperClass(at, pt));
             }
 
diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy 
b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
index 99cdde9961..9191fb5639 100644
--- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
@@ -2481,6 +2481,16 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase 
{
         '''
     }
 
+    // GROOVY-10725
+    void testShouldUseMethodGenericType17() {
+        assertScript '''
+            List<String> list = ['foo','bar']
+            Set<Map<String,String>> set_of_maps = []
+            set_of_maps.addAll(list.collectEntries { [it, it.toUpperCase()] })
+            assert set_of_maps.first() == [foo: 'FOO', bar: 'BAR']
+        '''
+    }
+
     // GROOVY-5516
     void testAddAllWithCollectionShouldBeAllowed() {
         assertScript '''import 
org.codehaus.groovy.transform.stc.ExtensionMethodNode

Reply via email to