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/20 14:26:47 UTC
[groovy] branch master updated: GROOVY-10725: STC: resolve variadic placeholder
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new a79940a416 GROOVY-10725: STC: resolve variadic placeholder
a79940a416 is described below
commit a79940a416878a318dc82442a61f40f1e8de4114
Author: Eric Milles <er...@thomsonreuters.com>
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 21069fb39d..35efb8b896 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -5510,7 +5510,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 a22068beec..d6c7788f1c 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