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);