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 2019/11/20 19:50:27 UTC
[groovy] branch master updated: refactor to use more of the
SourceUnit API
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
View the commit online:
https://github.com/apache/groovy/commit/4ae1eff52bf18124b4ef06bd8ab8b7154e2cdbd9
The following commit(s) were added to refs/heads/master by this push:
new 4ae1eff refactor to use more of the SourceUnit API
4ae1eff is described below
commit 4ae1eff52bf18124b4ef06bd8ab8b7154e2cdbd9
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Wed Nov 20 13:50:21 2019 -0600
refactor to use more of the SourceUnit API
---
.../java/org/codehaus/groovy/ast/tools/GenericsUtils.java | 2 +-
.../java/org/codehaus/groovy/control/ParserPlugin.java | 14 +++++++-------
.../text/markup/MarkupTemplateTypeCheckingExtension.groovy | 2 +-
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
index 1b20724..1e084dc 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
@@ -582,7 +582,7 @@ public class GenericsUtils {
public static ClassNode[] parseClassNodesFromString(final String option, final SourceUnit sourceUnit, final CompilationUnit compilationUnit, final MethodNode mn, final ASTNode usage) {
try {
- ModuleNode moduleNode = ParserPlugin.buildAST("Dummy<" + option + "> dummy;", compilationUnit.getClassLoader(), compilationUnit.getConfiguration(), null);
+ ModuleNode moduleNode = ParserPlugin.buildAST("Dummy<" + option + "> dummy;", compilationUnit.getConfiguration(), compilationUnit.getClassLoader(), null);
DeclarationExpression dummyDeclaration = (DeclarationExpression) ((ExpressionStatement) moduleNode.getStatementBlock().getStatements().get(0)).getExpression();
// the returned node is DummyNode<Param1, Param2, Param3, ...)
diff --git a/src/main/java/org/codehaus/groovy/control/ParserPlugin.java b/src/main/java/org/codehaus/groovy/control/ParserPlugin.java
index 1d4f488..ee02b95 100644
--- a/src/main/java/org/codehaus/groovy/control/ParserPlugin.java
+++ b/src/main/java/org/codehaus/groovy/control/ParserPlugin.java
@@ -22,7 +22,6 @@ import groovy.lang.GroovyClassLoader;
import org.codehaus.groovy.ast.ModuleNode;
import org.codehaus.groovy.syntax.ParserException;
import org.codehaus.groovy.syntax.Reduction;
-import org.codehaus.groovy.util.CharSequenceReader;
import java.io.Reader;
@@ -35,11 +34,12 @@ public interface ParserPlugin {
ModuleNode buildAST(SourceUnit sourceUnit, ClassLoader classLoader, Reduction cst) throws ParserException;
- static ModuleNode buildAST(CharSequence source, GroovyClassLoader loader, CompilerConfiguration config, ErrorCollector errors) throws ParserException {
- String scriptName = "Script" + System.nanoTime() + ".groovy";
- SourceUnit sourceUnit = new SourceUnit(scriptName, source.toString(), config, loader, errors);
-
- ParserPlugin parserPlugin = config.getPluginFactory().createParserPlugin();
- return parserPlugin.buildAST(sourceUnit, loader, parserPlugin.parseCST(sourceUnit, new CharSequenceReader(source)));
+ static ModuleNode buildAST(CharSequence sourceText, CompilerConfiguration config, GroovyClassLoader loader, ErrorCollector errors) throws CompilationFailedException {
+ SourceUnit sourceUnit = new SourceUnit("Script" + System.nanoTime() + ".groovy", sourceText.toString(), config, loader, errors);
+ sourceUnit.parse();
+ sourceUnit.completePhase();
+ sourceUnit.nextPhase();
+ sourceUnit.convert();
+ return sourceUnit.getAST();
}
}
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy
index 697e0b4..e52958c 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy
@@ -174,7 +174,7 @@ class MarkupTemplateTypeCheckingExtension extends GroovyTypeCheckingExtensionSup
@CompileStatic
private static ClassNode buildNodeFromString(String option, TypeCheckingContext ctx) {
- def moduleNode = ParserPlugin.buildAST("Dummy<$option> dummy;", ctx.compilationUnit.classLoader, ctx.compilationUnit.configuration, ctx.errorCollector)
+ def moduleNode = ParserPlugin.buildAST("Dummy<$option> dummy;", ctx.compilationUnit.configuration, ctx.compilationUnit.classLoader, ctx.errorCollector)
ClassNode parsedNode = ((DeclarationExpression) ((ExpressionStatement) moduleNode.statementBlock.statements[0]).expression).leftExpression.type
ClassNode dummyClass = new ClassNode("dummy", 0, OBJECT_TYPE)
dummyClass.setModule(new ModuleNode(ctx.source))