You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/07/18 10:23:31 UTC

[groovy] 02/02: GROOVY-8715: minor refactor (closes #1317)

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

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 0af5fcf2fedc7f7810d9889971e4bf394367ef92
Author: Paul King <pa...@asert.com.au>
AuthorDate: Sat Jul 18 20:22:30 2020 +1000

    GROOVY-8715: minor refactor (closes #1317)
---
 .../org/codehaus/groovy/control/ResolveVisitor.java    | 18 ++++++++++--------
 src/test/gls/innerClass/InnerClassTest.groovy          |  6 +++---
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
index d348a77..dbaba62 100644
--- a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
@@ -322,17 +322,19 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
         genericParameterNames = oldPNames;
     }
 
-    private void resolveOrFailPlus(final ClassNode type, final ASTNode node) {
-        resolveGenericsTypes(type.getGenericsTypes());
-        if (resolveAliasFromModule(type)) return;
-        resolveOrFail(type, node);
-    }
-
     private void resolveOrFail(final ClassNode type, final ASTNode node) {
         resolveOrFail(type, "", node);
     }
 
     private void resolveOrFail(final ClassNode type, final String msg, final ASTNode node) {
+        resolveOrFail(type, "", node, false);
+    }
+
+    private void resolveOrFail(final ClassNode type, final String msg, final ASTNode node, final boolean preferImports) {
+        if (preferImports) {
+            resolveGenericsTypes(type.getGenericsTypes());
+            if (resolveAliasFromModule(type)) return;
+        }
         if (resolve(type)) return;
         if (resolveToInner(type)) return;
         if (resolveToOuterNested(type)) return;
@@ -1476,10 +1478,10 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
         }
 
         ClassNode sn = node.getUnresolvedSuperClass();
-        if (sn != null) resolveOrFailPlus(sn, node);
+        if (sn != null) resolveOrFail(sn, "", node, true);
 
         for (ClassNode anInterface : node.getInterfaces()) {
-            resolveOrFailPlus(anInterface, node);
+            resolveOrFail(anInterface, "", node, true);
         }
 
         checkCyclicInheritance(node, node.getUnresolvedSuperClass(), node.getInterfaces());
diff --git a/src/test/gls/innerClass/InnerClassTest.groovy b/src/test/gls/innerClass/InnerClassTest.groovy
index 65377eb..6f401fe 100644
--- a/src/test/gls/innerClass/InnerClassTest.groovy
+++ b/src/test/gls/innerClass/InnerClassTest.groovy
@@ -1237,7 +1237,7 @@ final class InnerClassTest {
     }
 
     @Test
-    void testResolveInnerOfSuperType9() {
+    void testResolveInnerOfSuperType10() {
         assertScript '''
             abstract class A {
                 static class B {}
@@ -1252,7 +1252,7 @@ final class InnerClassTest {
     }
 
     @Test
-    void testResolveInnerOfSuperType9a() {
+    void testResolveInnerOfSuperType10a() {
         assertScript '''
             abstract class A {
                 static class B {}
@@ -1267,7 +1267,7 @@ final class InnerClassTest {
     }
 
     @CompileDynamic @Test // GROOVY-8715
-    void testResolveInnerOfSuperType9b() {
+    void testResolveInnerOfSuperType10b() {
         def config = new CompilerConfiguration(
             targetDirectory: File.createTempDir(),
             jointCompilationOptions: [memStub: true]