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/09/21 19:11:55 UTC

[groovy] 02/03: GROOVY-9751: STC: extension may fix missing method or ambiguous methods

This is an automated email from the ASF dual-hosted git repository.

emilles pushed a commit to branch GROOVY-9751
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 335397ece75524b198f3184a700ae1a561515e2c
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Mon Sep 21 14:06:16 2020 -0500

    GROOVY-9751: STC: extension may fix missing method or ambiguous methods
---
 .../codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java   | 7 +++++++
 1 file changed, 7 insertions(+)

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 108fba4..c2be2f1 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -2404,6 +2404,13 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                 }
             }
 
+            if (candidates.isEmpty()) {
+                candidates = extension.handleMissingMethod(
+                    getType(expression.getExpression()), nameText, null, null, null);
+            } else if (candidates.size() > 1) {
+                candidates = extension.handleAmbiguousMethods(candidates, expression);
+            }
+
             if (!candidates.isEmpty()) {
                 candidates.stream().map(MethodNode::getReturnType)
                         .reduce(WideningCategories::lowestUpperBound)