You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/04/25 12:53:36 UTC

[groovy] 02/02: Tweak GROOVY-9526 to handle more potential cases

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

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

commit a775ac1b8ccbab6087edd1831150cc4c4c9348db
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sat Apr 25 20:48:44 2020 +0800

    Tweak GROOVY-9526 to handle more potential cases
---
 src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java b/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
index e5842a8..3f85533 100644
--- a/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
+++ b/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
@@ -26,6 +26,8 @@ import org.codehaus.groovy.ast.decompiled.AsmDecompiler;
 import org.codehaus.groovy.ast.decompiled.AsmReferenceResolver;
 import org.codehaus.groovy.ast.decompiled.DecompiledClassNode;
 import org.codehaus.groovy.classgen.Verifier;
+import org.codehaus.groovy.vmplugin.VMPlugin;
+import org.codehaus.groovy.vmplugin.VMPluginFactory;
 import org.objectweb.asm.Opcodes;
 
 import java.io.File;
@@ -55,6 +57,7 @@ import java.util.Map;
  * entry method is {@link ClassNodeResolver#resolveName(String, CompilationUnit)}
  */
 public class ClassNodeResolver {
+    private static final VMPlugin VM_PLUGIN = VMPluginFactory.getPlugin();
 
     /**
      * Helper class to return either a SourceUnit or ClassNode.
@@ -124,7 +127,11 @@ public class ClassNodeResolver {
         if (res!=null) return new LookupResult(null,res);
         LookupResult lr = findClassNode(name, compilationUnit);
         if (lr != null) {
-            if (lr.isClassNode()) cacheClass(name, lr.getClassNode());
+            if (lr.isClassNode()) {
+                ClassNode classNode = lr.getClassNode();
+                VM_PLUGIN.setAdditionalClassInformation(classNode);
+                cacheClass(name, classNode);
+            }
             return lr;
         } else {
             cacheClass(name, NO_CLASS);