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 2021/11/09 20:54:26 UTC
[groovy] branch master updated: GROOVY-10351: STC: argument
`C<...>` for parameter `C`
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 0ff6325 GROOVY-10351: STC: argument `C<...>` for parameter `C<T,? extends T>`
0ff6325 is described below
commit 0ff632514f9e06b8cea96f2e70749b3da3bc6dbb
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Tue Nov 9 14:28:43 2021 -0600
GROOVY-10351: STC: argument `C<...>` for parameter `C<T,? extends T>`
---
.../groovy/transform/stc/StaticTypeCheckingSupport.java | 4 +---
src/test/groovy/transform/stc/GenericsSTCTest.groovy | 14 ++++++++++++++
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
index 7095e54..a07b1b1 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -1799,9 +1799,7 @@ public abstract class StaticTypeCheckingSupport {
ClassNode ui = usage[i];
ClassNode di = declaration[i];
if (di.isGenericsPlaceHolder()) {
- GenericsType gt = new GenericsType(di);
- gt.setPlaceholder(di.isGenericsPlaceHolder());
- connections.put(new GenericsTypeName(di.getGenericsTypes()[0].getName()), gt);
+ connections.put(new GenericsTypeName(di.getUnresolvedName()), new GenericsType(ui));
} else if (di.isUsingGenerics()) {
extractGenericsConnections(connections, ui.getGenericsTypes(), di.getGenericsTypes());
}
diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
index 9482905..31a13a4 100644
--- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
@@ -1113,6 +1113,20 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
'''
}
+ // GROOVY-10351
+ void testDiamondInferrenceFromConstructor24() {
+ assertScript '''
+ class C<T> {
+ C(T one, D<T,? extends T> two) {
+ }
+ }
+ class D<U,V> {
+ }
+ D<Integer,? extends Integer> d_of_i_and_i = null
+ C<Integer> c_of_i = new C<>(1,d_of_i_and_i) // 3 witnesses for T
+ '''
+ }
+
// GROOVY-10280
void testTypeArgumentPropagation() {
assertScript '''