Skip to content

Commit 2132dfd

Browse files
committed
GROOVY-10323
1 parent 0a77b5e commit 2132dfd

File tree

4 files changed

+28
-3
lines changed

4 files changed

+28
-3
lines changed

base-test/org.eclipse.jdt.groovy.core.tests.compiler/src/org/eclipse/jdt/groovy/core/tests/xform/TypeCheckedTests.java

+25
Original file line numberDiff line numberDiff line change
@@ -4230,6 +4230,31 @@ public void testTypeChecked10320() {
42304230
runConformTest(sources, "3.3");
42314231
}
42324232

4233+
@Test
4234+
public void testTypeChecked10323() {
4235+
//@formatter:off
4236+
String[] sources = {
4237+
"Main.groovy",
4238+
"class C<T> {\n" +
4239+
"}\n" +
4240+
"def <T,T> T m(C<T> c) {\n" +
4241+
"}\n" +
4242+
"@groovy.transform.TypeChecked\n" +
4243+
"void test() {\n" +
4244+
" Number n = m(new C<>())\n" +
4245+
"}\n",
4246+
};
4247+
//@formatter:on
4248+
4249+
runNegativeTest(sources,
4250+
"----------\n" +
4251+
"1. ERROR in Main.groovy (at line 3)\n" +
4252+
"\tdef <T,T> T m(C<T> c) {\n" +
4253+
"\t ^^\n" +
4254+
"Duplicate type parameter T\n" +
4255+
"----------\n");
4256+
}
4257+
42334258
@Test
42344259
public void testTypeChecked10325() {
42354260
//@formatter:off

base/org.codehaus.groovy25/src/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6339,7 +6339,7 @@ private Map<GenericsTypeName, GenericsType> extractGenericsConnectionsFromArgume
63396339

63406340
// in case of "<T, U extends Type<T>>" we can learn about "T" from resolved "U"
63416341
Map<GenericsTypeName, GenericsType> connections = Arrays.stream(methodGenericTypes)
6342-
.collect(toMap(gt -> new GenericsTypeName(gt.getName()), Function.identity()));
6342+
.collect(toMap(gt -> new GenericsTypeName(gt.getName()), gt -> gt, (v,x) -> v));
63436343
extractGenericsConnectionsForSuperClassAndInterfaces(connections, resolvedPlaceholders);
63446344
}
63456345

base/org.codehaus.groovy30/src/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6009,7 +6009,7 @@ private Map<GenericsTypeName, GenericsType> extractGenericsConnectionsFromArgume
60096009

60106010
// in case of "<T, U extends Type<T>>" we can learn about "T" from resolved "U"
60116011
Map<GenericsTypeName, GenericsType> connections = Arrays.stream(methodGenericTypes)
6012-
.collect(toMap(gt -> new GenericsTypeName(gt.getName()), Function.identity()));
6012+
.collect(toMap(gt -> new GenericsTypeName(gt.getName()), gt -> gt, (v,x) -> v));
60136013
extractGenericsConnectionsForSuperClassAndInterfaces(connections, resolvedPlaceholders);
60146014
}
60156015

base/org.codehaus.groovy40/src/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -5491,7 +5491,7 @@ private Map<GenericsTypeName, GenericsType> extractGenericsConnectionsFromArgume
54915491

54925492
// in case of "<T, U extends Type<T>>" we can learn about "T" from resolved "U"
54935493
Map<GenericsTypeName, GenericsType> connections = Arrays.stream(methodGenericTypes)
5494-
.collect(toMap(gt -> new GenericsTypeName(gt.getName()), Function.identity()));
5494+
.collect(toMap(gt -> new GenericsTypeName(gt.getName()), gt -> gt, (v,x) -> v));
54955495
extractGenericsConnectionsForSuperClassAndInterfaces(connections, resolvedPlaceholders);
54965496
}
54975497

0 commit comments

Comments
 (0)