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/05/16 19:32:25 UTC
[groovy] 02/03: GROOVY-9963: resolve ctor call diamond for attribute/property expression
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 ec404abebb928a30cd27de69482ccb6bbe020832
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Mon May 16 14:13:34 2022 -0500
GROOVY-9963: resolve ctor call diamond for attribute/property expression
---
.../org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java | 3 +++
src/test/groovy/transform/stc/GenericsSTCTest.groovy | 2 +-
2 files changed, 4 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 35f6cd29d4..ca216361da 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -1472,6 +1472,9 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
Expression objectExpression = pexp.getObjectExpression();
ClassNode objectExpressionType = getType(objectExpression);
+ if (objectExpression instanceof ConstructorCallExpression) {
+ inferDiamondType((ConstructorCallExpression) objectExpression, objectExpressionType);
+ }
List<ClassNode> enclosingTypes = typeCheckingContext.getEnclosingClassNodes();
boolean staticOnlyAccess = isClassClassNodeWrappingConcreteType(objectExpressionType);
diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
index 461bcd0cae..2622f7303a 100644
--- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
@@ -888,7 +888,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
'Incompatible generic argument types. Cannot assign C<? extends java.lang.Object> to: C<D>'
}
- @NotYetImplemented // GROOVY-9963
+ // GROOVY-9963
void testDiamondInferrenceFromConstructor10() {
assertScript '''
@groovy.transform.TupleConstructor(defaults=false)