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 2018/04/12 23:56:06 UTC
groovy git commit: GROOVY-8543: Support setting compileStatic by
default via system properties
Repository: groovy
Updated Branches:
refs/heads/master e72361882 -> 81ffc8099
GROOVY-8543: Support setting compileStatic by default via system properties
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/81ffc809
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/81ffc809
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/81ffc809
Branch: refs/heads/master
Commit: 81ffc8099bb3916885d796b40d7d811350c67dff
Parents: e723618
Author: sunlan <su...@apache.org>
Authored: Fri Apr 13 07:56:00 2018 +0800
Committer: sunlan <su...@apache.org>
Committed: Fri Apr 13 07:56:00 2018 +0800
----------------------------------------------------------------------
.../org/apache/groovy/parser/antlr4/AstBuilder.java | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/81ffc809/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
index 80988f6..22c59d2 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
@@ -1187,6 +1187,9 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
classNode.putNodeMetaData(CLASS_NAME, className);
classNode.setSyntheticPublic(syntheticPublic);
+ if (COMPILE_STATIC_BY_DEFAULT) {
+ attachCompileStaticAnnotation(classNode);
+ }
if (asBoolean(ctx.TRAIT())) {
attachTraitAnnotation(classNode);
}
@@ -1257,8 +1260,16 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
return classNode;
}
+ private void attachCompileStaticAnnotation(ClassNode classNode) {
+ attachAnnotation(classNode, GROOVY_TRANSFORM_COMPILE_STATIC);
+ }
+
private void attachTraitAnnotation(ClassNode classNode) {
- classNode.addAnnotation(new AnnotationNode(ClassHelper.make(GROOVY_TRANSFORM_TRAIT)));
+ attachAnnotation(classNode, GROOVY_TRANSFORM_TRAIT);
+ }
+
+ private void attachAnnotation(ClassNode classNode, String annotationClassName) {
+ classNode.addAnnotation(new AnnotationNode(ClassHelper.make(annotationClassName)));
}
@SuppressWarnings({"unchecked"})
@@ -4741,6 +4752,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
private static final String PACKAGE_INFO = "package-info";
private static final String PACKAGE_INFO_FILE_NAME = PACKAGE_INFO + ".groovy";
+ private static final String GROOVY_TRANSFORM_COMPILE_STATIC = "groovy.transform.CompileStatic";
private static final String GROOVY_TRANSFORM_TRAIT = "groovy.transform.Trait";
private static final Set<String> PRIMITIVE_TYPE_SET = Collections.unmodifiableSet(new HashSet<>(Arrays.asList("boolean", "char", "byte", "short", "int", "long", "float", "double")));
private static final Logger LOGGER = Logger.getLogger(AstBuilder.class.getName());
@@ -4768,4 +4780,6 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
private static final String ENCLOSING_INSTANCE_EXPRESSION = "_ENCLOSING_INSTANCE_EXPRESSION";
private static final String CLASS_NAME = "_CLASS_NAME";
+
+ private static final boolean COMPILE_STATIC_BY_DEFAULT = Boolean.getBoolean("groovy.compile.static.by.default");
}