groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/GROOVY_2_6_X 289cd1b90 -> f1e1c2de7 Refine "GROOVY-8543: Support setting compileStatic by default via system properties" Avoid adding `CompilationCustomizer` multiple times and rename the option name to "groovy.compile.static" (cherry picked from commit 31c5dab) Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/f1e1c2de Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/f1e1c2de Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/f1e1c2de Branch: refs/heads/GROOVY_2_6_X Commit: f1e1c2de7ddbc2ca0d1238e240b6f94e0199509e Parents: 289cd1b Author: sunlanAuthored: Fri Apr 13 19:13:52 2018 +0800 Committer: sunlan Committed: Fri Apr 13 19:15:16 2018 +0800 -- .../groovy/control/CompilerConfiguration.java | 62 ++-- 1 file changed, 32 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/f1e1c2de/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java -- diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java index 293d8da..15ae8c9 100644 --- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java +++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java @@ -199,8 +199,6 @@ public class CompilerConfiguration { private final List compilationCustomizers = new LinkedList(); -private static final boolean COMPILE_STATIC_BY_DEFAULT = Boolean.getBoolean("groovy.compile.static.by.default"); - /** * Sets a list of global AST transformations which should not be loaded even if they are * defined in META-INF/org.codehaus.groovy.transform.ASTTransformation files. By default, @@ -943,47 +941,51 @@ public class CompilerConfiguration { return indyEnabled; } +private boolean compileStatic; private void enableCompileStaticByDefault() { -if (!COMPILE_STATIC_BY_DEFAULT) { +if (compileStatic) { +return; +} +if (!Boolean.getBoolean("groovy.compile.static")) { return; } compilationCustomizers.add( -new CompilationCustomizer(CompilePhase.CONVERSION) { -@Override -public void call(final SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException { -for (ClassNode cn : source.getAST().getClasses()) { -new ClassCodeVisitorSupport() { -@Override -public void visitClass(ClassNode node) { -enableCompileStatic(node); +new CompilationCustomizer(CompilePhase.CONVERSION) { +@Override +public void call(final SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException { +for (ClassNode cn : source.getAST().getClasses()) { +new ClassCodeVisitorSupport() { +@Override +public void visitClass(ClassNode node) { +enableCompileStatic(node); +} + +private void enableCompileStatic(ClassNode classNode) { +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { +return; } - -private void enableCompileStatic(ClassNode classNode) { -if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { -return; -} - -if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { -return; -} - -classNode.addAnnotation(new AnnotationNode(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC))); +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +return; } -@Override -protected SourceUnit getSourceUnit() { -return source; -
groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/master ae74e1d62 -> 31c5dabf8 Refine "GROOVY-8543: Support setting compileStatic by default via system properties" Avoid adding `CompilationCustomizer` multiple times and rename the option name to "groovy.compile.static" Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/31c5dabf Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/31c5dabf Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/31c5dabf Branch: refs/heads/master Commit: 31c5dabf8a47b7854808ec96d565ca00611051d9 Parents: ae74e1d Author: sunlanAuthored: Fri Apr 13 19:13:52 2018 +0800 Committer: sunlan Committed: Fri Apr 13 19:13:52 2018 +0800 -- .../groovy/control/CompilerConfiguration.java | 62 ++-- 1 file changed, 32 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/31c5dabf/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java -- diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java index 06a4b1f..95d4c03 100644 --- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java +++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java @@ -194,8 +194,6 @@ public class CompilerConfiguration { private final List compilationCustomizers = new LinkedList(); -private static final boolean COMPILE_STATIC_BY_DEFAULT = Boolean.getBoolean("groovy.compile.static.by.default"); - /** * Sets a list of global AST transformations which should not be loaded even if they are * defined in META-INF/org.codehaus.groovy.transform.ASTTransformation files. By default, @@ -942,47 +940,51 @@ public class CompilerConfiguration { return indyEnabled; } +private boolean compileStatic; private void enableCompileStaticByDefault() { -if (!COMPILE_STATIC_BY_DEFAULT) { +if (compileStatic) { +return; +} +if (!Boolean.getBoolean("groovy.compile.static")) { return; } compilationCustomizers.add( -new CompilationCustomizer(CompilePhase.CONVERSION) { -@Override -public void call(final SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException { -for (ClassNode cn : source.getAST().getClasses()) { -new ClassCodeVisitorSupport() { -@Override -public void visitClass(ClassNode node) { -enableCompileStatic(node); +new CompilationCustomizer(CompilePhase.CONVERSION) { +@Override +public void call(final SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException { +for (ClassNode cn : source.getAST().getClasses()) { +new ClassCodeVisitorSupport() { +@Override +public void visitClass(ClassNode node) { +enableCompileStatic(node); +} + +private void enableCompileStatic(ClassNode classNode) { +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { +return; } - -private void enableCompileStatic(ClassNode classNode) { -if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { -return; -} - -if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { -return; -} - -classNode.addAnnotation(new AnnotationNode(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC))); +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +return; } -@Override -protected SourceUnit getSourceUnit() { -return source; -} +
groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/GROOVY_2_6_X e89cf7ba7 -> 289cd1b90 Refine "GROOVY-8543: Support setting compileStatic by default via system properties" Use `CompilationCustomizer` to enable compileStatic (cherry picked from commit ae74e1d) Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/289cd1b9 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/289cd1b9 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/289cd1b9 Branch: refs/heads/GROOVY_2_6_X Commit: 289cd1b904c39d10a95b63b51f4fca0ab3fc3e16 Parents: e89cf7b Author: sunlanAuthored: Fri Apr 13 16:59:45 2018 +0800 Committer: sunlan Committed: Fri Apr 13 17:19:38 2018 +0800 -- .../groovy/control/CompilerConfiguration.java | 51 .../apache/groovy/parser/antlr4/AstBuilder.java | 27 +-- 2 files changed, 52 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/289cd1b9/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java -- diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java index 28ac3e0..293d8da 100644 --- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java +++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java @@ -19,6 +19,11 @@ package org.codehaus.groovy.control; import org.apache.groovy.util.Maps; +import org.codehaus.groovy.ast.AnnotationNode; +import org.codehaus.groovy.ast.ClassCodeVisitorSupport; +import org.codehaus.groovy.ast.ClassHelper; +import org.codehaus.groovy.ast.ClassNode; +import org.codehaus.groovy.classgen.GeneratorContext; import org.codehaus.groovy.control.customizers.CompilationCustomizer; import org.codehaus.groovy.control.io.NullWriter; import org.codehaus.groovy.control.messages.WarningMessage; @@ -194,6 +199,8 @@ public class CompilerConfiguration { private final List compilationCustomizers = new LinkedList(); +private static final boolean COMPILE_STATIC_BY_DEFAULT = Boolean.getBoolean("groovy.compile.static.by.default"); + /** * Sets a list of global AST transformations which should not be loaded even if they are * defined in META-INF/org.codehaus.groovy.transform.ASTTransformation files. By default, @@ -935,4 +942,48 @@ public class CompilerConfiguration { return indyEnabled; } + +private void enableCompileStaticByDefault() { +if (!COMPILE_STATIC_BY_DEFAULT) { +return; +} + +compilationCustomizers.add( +new CompilationCustomizer(CompilePhase.CONVERSION) { +@Override +public void call(final SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException { +for (ClassNode cn : source.getAST().getClasses()) { +new ClassCodeVisitorSupport() { +@Override +public void visitClass(ClassNode node) { +enableCompileStatic(node); +} + +private void enableCompileStatic(ClassNode classNode) { +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { +return; +} + +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +return; +} + +classNode.addAnnotation(new AnnotationNode(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC))); +} + +@Override +protected SourceUnit getSourceUnit() { +return source; +} + +private static final String GROOVY_TRANSFORM_COMPILE_STATIC = "groovy.transform.CompileStatic"; +private static final String GROOVY_TRANSFORM_COMPILE_DYNAMIC = "groovy.transform.CompileDynamic"; +}.visitClass(cn); +} +} +} +); + +} +{ enableCompileStaticByDefault(); } }
groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/master adf7e9219 -> ae74e1d62 Refine "GROOVY-8543: Support setting compileStatic by default via system properties" Use `CompilationCustomizer` to enable compileStatic Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/ae74e1d6 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/ae74e1d6 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/ae74e1d6 Branch: refs/heads/master Commit: ae74e1d6270518144e45b54a5a8b892a3ce4781f Parents: adf7e92 Author: sunlanAuthored: Fri Apr 13 16:59:45 2018 +0800 Committer: sunlan Committed: Fri Apr 13 16:59:45 2018 +0800 -- .../groovy/control/CompilerConfiguration.java | 51 .../apache/groovy/parser/antlr4/AstBuilder.java | 27 +-- 2 files changed, 52 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/ae74e1d6/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java -- diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java index d2d0a38..06a4b1f 100644 --- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java +++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java @@ -19,6 +19,11 @@ package org.codehaus.groovy.control; import org.apache.groovy.util.Maps; +import org.codehaus.groovy.ast.AnnotationNode; +import org.codehaus.groovy.ast.ClassCodeVisitorSupport; +import org.codehaus.groovy.ast.ClassHelper; +import org.codehaus.groovy.ast.ClassNode; +import org.codehaus.groovy.classgen.GeneratorContext; import org.codehaus.groovy.control.customizers.CompilationCustomizer; import org.codehaus.groovy.control.io.NullWriter; import org.codehaus.groovy.control.messages.WarningMessage; @@ -189,6 +194,8 @@ public class CompilerConfiguration { private final List compilationCustomizers = new LinkedList(); +private static final boolean COMPILE_STATIC_BY_DEFAULT = Boolean.getBoolean("groovy.compile.static.by.default"); + /** * Sets a list of global AST transformations which should not be loaded even if they are * defined in META-INF/org.codehaus.groovy.transform.ASTTransformation files. By default, @@ -934,4 +941,48 @@ public class CompilerConfiguration { return indyEnabled; } + +private void enableCompileStaticByDefault() { +if (!COMPILE_STATIC_BY_DEFAULT) { +return; +} + +compilationCustomizers.add( +new CompilationCustomizer(CompilePhase.CONVERSION) { +@Override +public void call(final SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException { +for (ClassNode cn : source.getAST().getClasses()) { +new ClassCodeVisitorSupport() { +@Override +public void visitClass(ClassNode node) { +enableCompileStatic(node); +} + +private void enableCompileStatic(ClassNode classNode) { +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { +return; +} + +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +return; +} + +classNode.addAnnotation(new AnnotationNode(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC))); +} + +@Override +protected SourceUnit getSourceUnit() { +return source; +} + +private static final String GROOVY_TRANSFORM_COMPILE_STATIC = "groovy.transform.CompileStatic"; +private static final String GROOVY_TRANSFORM_COMPILE_DYNAMIC = "groovy.transform.CompileDynamic"; +}.visitClass(cn); +} +} +} +); + +} +{ enableCompileStaticByDefault(); } } http://git-wip-us.apache.org/repos/asf/groovy/blob/ae74e1d6/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/GROOVY_2_6_X e88ce8687 -> 42280340b Refine "GROOVY-8543: Support setting compileStatic by default via system properties" Avoid attaching `groovy.transform.CompileStatic` annotation multiple times (cherry picked from commit 4952a63) Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/42280340 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/42280340 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/42280340 Branch: refs/heads/GROOVY_2_6_X Commit: 42280340ba117eed59cedec871f0dece5b943741 Parents: e88ce86 Author: sunlanAuthored: Fri Apr 13 12:13:28 2018 +0800 Committer: sunlan Committed: Fri Apr 13 12:14:00 2018 +0800 -- .../apache/groovy/parser/antlr4/AstBuilder.java | 23 +++- 1 file changed, 18 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/42280340/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 74b1f16..95243c0 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 @@ -1202,11 +1202,8 @@ public class AstBuilder extends GroovyParserBaseVisitor implements Groov classNode.putNodeMetaData(CLASS_NAME, className); classNode.setSyntheticPublic(syntheticPublic); -if (COMPILE_STATIC_BY_DEFAULT) { -if (classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { -attachCompileStaticAnnotation(classNode); -} -} +enableCompileStaticByDefault(classNode); + if (asBoolean(ctx.TRAIT())) { attachTraitAnnotation(classNode); } @@ -1277,6 +1274,22 @@ public class AstBuilder extends GroovyParserBaseVisitor implements Groov return classNode; } +private void enableCompileStaticByDefault(ClassNode classNode) { +if (!COMPILE_STATIC_BY_DEFAULT) { +return; +} + +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { +return; +} + +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +return; +} + +attachCompileStaticAnnotation(classNode); +} + private void attachCompileStaticAnnotation(ClassNode classNode) { attachAnnotation(classNode, GROOVY_TRANSFORM_COMPILE_STATIC); }
groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/master 39e4078c5 -> 4952a6359 Refine "GROOVY-8543: Support setting compileStatic by default via system properties" Avoid attaching `groovy.transform.CompileStatic` annotation multiple times Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/4952a635 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/4952a635 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/4952a635 Branch: refs/heads/master Commit: 4952a6359d59a79a1a95aa26d122a0cdf6d55c99 Parents: 39e4078 Author: sunlanAuthored: Fri Apr 13 12:13:28 2018 +0800 Committer: sunlan Committed: Fri Apr 13 12:13:28 2018 +0800 -- .../apache/groovy/parser/antlr4/AstBuilder.java | 23 +++- 1 file changed, 18 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/4952a635/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 e548a0b..b383f7b 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,11 +1187,8 @@ public class AstBuilder extends GroovyParserBaseVisitor implements Groov classNode.putNodeMetaData(CLASS_NAME, className); classNode.setSyntheticPublic(syntheticPublic); -if (COMPILE_STATIC_BY_DEFAULT) { -if (classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { -attachCompileStaticAnnotation(classNode); -} -} +enableCompileStaticByDefault(classNode); + if (asBoolean(ctx.TRAIT())) { attachTraitAnnotation(classNode); } @@ -1262,6 +1259,22 @@ public class AstBuilder extends GroovyParserBaseVisitor implements Groov return classNode; } +private void enableCompileStaticByDefault(ClassNode classNode) { +if (!COMPILE_STATIC_BY_DEFAULT) { +return; +} + +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_STATIC)).isEmpty()) { +return; +} + +if (!classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +return; +} + +attachCompileStaticAnnotation(classNode); +} + private void attachCompileStaticAnnotation(ClassNode classNode) { attachAnnotation(classNode, GROOVY_TRANSFORM_COMPILE_STATIC); }
groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/master 81ffc8099 -> 39e4078c5 Refine "GROOVY-8543: Support setting compileStatic by default via system properties" If `groovy.transform.CompileDynamic` annotation attached, skip attaching `groovy.transform.CompileStatic` annotation automatically. Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/39e4078c Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/39e4078c Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/39e4078c Branch: refs/heads/master Commit: 39e4078c55d9f0824351310eebda260f2fb360ab Parents: 81ffc80 Author: sunlanAuthored: Fri Apr 13 11:35:26 2018 +0800 Committer: sunlan Committed: Fri Apr 13 11:35:26 2018 +0800 -- .../main/java/org/apache/groovy/parser/antlr4/AstBuilder.java | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/39e4078c/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 22c59d2..e548a0b 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 @@ -1188,7 +1188,9 @@ public class AstBuilder extends GroovyParserBaseVisitor implements Groov classNode.setSyntheticPublic(syntheticPublic); if (COMPILE_STATIC_BY_DEFAULT) { -attachCompileStaticAnnotation(classNode); +if (classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +attachCompileStaticAnnotation(classNode); +} } if (asBoolean(ctx.TRAIT())) { attachTraitAnnotation(classNode); @@ -4753,6 +4755,7 @@ public class AstBuilder extends GroovyParserBaseVisitor 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_COMPILE_DYNAMIC = "groovy.transform.CompileDynamic"; private static final String GROOVY_TRANSFORM_TRAIT = "groovy.transform.Trait"; private static final Set 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());
groovy git commit: Refine "GROOVY-8543: Support setting compileStatic by default via system properties"
Repository: groovy Updated Branches: refs/heads/GROOVY_2_6_X 1b26e1e76 -> e88ce8687 Refine "GROOVY-8543: Support setting compileStatic by default via system properties" If `groovy.transform.CompileDynamic` annotation attached, skip attaching `groovy.transform.CompileStatic` annotation automatically. (cherry picked from commit 39e4078) Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/e88ce868 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/e88ce868 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/e88ce868 Branch: refs/heads/GROOVY_2_6_X Commit: e88ce8687b495e4f031fef0c1b5dfb5846df3be0 Parents: 1b26e1e Author: sunlanAuthored: Fri Apr 13 11:35:26 2018 +0800 Committer: sunlan Committed: Fri Apr 13 11:35:52 2018 +0800 -- .../main/java/org/apache/groovy/parser/antlr4/AstBuilder.java | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/groovy/blob/e88ce868/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 43fe5fd..74b1f16 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 @@ -1203,7 +1203,9 @@ public class AstBuilder extends GroovyParserBaseVisitor implements Groov classNode.setSyntheticPublic(syntheticPublic); if (COMPILE_STATIC_BY_DEFAULT) { -attachCompileStaticAnnotation(classNode); +if (classNode.getAnnotations(ClassHelper.make(GROOVY_TRANSFORM_COMPILE_DYNAMIC)).isEmpty()) { +attachCompileStaticAnnotation(classNode); +} } if (asBoolean(ctx.TRAIT())) { attachTraitAnnotation(classNode); @@ -4850,6 +4852,7 @@ public class AstBuilder extends GroovyParserBaseVisitor 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_COMPILE_DYNAMIC = "groovy.transform.CompileDynamic"; private static final String GROOVY_TRANSFORM_TRAIT = "groovy.transform.Trait"; private static final Set 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());