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 2020/11/08 02:01:04 UTC
[groovy] 01/02: GROOVY-9762: backport fix to findMethodRefMethod
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 adbb2220cce310c32bb11381ad0bcf39bb9a2034
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Sat Nov 7 19:20:43 2020 -0600
GROOVY-9762: backport fix to findMethodRefMethod
---
.../classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java | 3 ++-
src/test/groovy/transform/stc/GenericsSTCTest.groovy | 3 +--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java
index 9e758bc..9c530eb 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java
@@ -301,7 +301,8 @@ public class StaticTypesMethodReferenceExpressionWriter extends MethodReferenceE
}
private MethodNode findMethodRefMethod(String methodRefName, Parameter[] abstractMethodParameters, Expression typeOrTargetRef) {
- ClassNode typeOrTargetRefType = typeOrTargetRef.getType();
+ ClassNode typeOrTargetRefType = isClassExpr(typeOrTargetRef) ? typeOrTargetRef.getType()
+ : controller.getTypeChooser().resolveType(typeOrTargetRef, controller.getClassNode());
List<MethodNode> methodNodeList = typeOrTargetRefType.getMethods(methodRefName);
Set<MethodNode> dgmMethodNodeSet = findDGMMethodsForClassNode(controller.getSourceUnit().getClassLoader(), typeOrTargetRefType, methodRefName);
diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
index caa8952..72b5272 100644
--- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
@@ -628,8 +628,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
// GROOVY-9762
void testShouldUseMethodGenericType7() {
- // TODO GROOVY-9762 reinstate fourth case below for GROOVY_3_0_X once working
- for (toList in ['{ list(it) }', 'o -> list(o)', 'this.&list'/*, 'this::list'*/]) {
+ for (toList in ['{ list(it) }', 'o -> list(o)', 'this.&list', 'this::list']) {
assertScript """
def <T> List<T> list(T item) {
return [item]