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 2024/01/04 15:53:43 UTC
(groovy) 01/01: Add an option to switch off dead code analysis
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY-11263
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 66bc06f380a0928c8f6e544c5df573570d2d8a29
Author: Daniel Sun <su...@apache.org>
AuthorDate: Thu Jan 4 23:52:52 2024 +0800
Add an option to switch off dead code analysis
---
src/main/java/org/codehaus/groovy/control/CompilationUnit.java | 6 ++++--
.../java/org/codehaus/groovy/control/CompilerConfiguration.java | 5 +++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
index bf5783a505..598a741be5 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
@@ -759,8 +759,10 @@ public class CompilationUnit extends ProcessingUnit {
getErrorCollector().addError(new SyntaxException(rpe.getMessage(), rpe.getNode()), source);
}
- visitor = new DeadCodeAnalyzer(source);
- visitor.visitClass(classNode);
+ if (Boolean.TRUE.equals(configuration.getOptimizationOptions().get(CompilerConfiguration.ANALYZE_DEAD_CODE))) {
+ visitor = new DeadCodeAnalyzer(source);
+ visitor.visitClass(classNode);
+ }
visitor = new LabelVerifier(source);
visitor.visitClass(classNode);
diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
index 6d9522acd5..8b662fff30 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -66,6 +66,9 @@ public class CompilerConfiguration {
/** Joint Compilation Option for enabling generating stubs in memory. */
public static final String MEM_STUB = "memStub";
+ /** Optimization Option for enabling dead code analysis */
+ public static final String ANALYZE_DEAD_CODE = "analyzeDeadCode";
+
/** This (<code>"1.4"</code>) is the value for targetBytecode to compile for a JDK 1.4. */
@Deprecated public static final String JDK4 = "1.4";
/** This (<code>"1.5"</code>) is the value for targetBytecode to compile for a JDK 1.5. */
@@ -469,6 +472,8 @@ public class CompilerConfiguration {
handleOptimizationOption(GROOVYDOC, getSystemPropertySafe("groovy.attach.groovydoc"));
handleOptimizationOption(RUNTIME_GROOVYDOC, getSystemPropertySafe("groovy.attach.runtime.groovydoc"));
handleOptimizationOption(PARALLEL_PARSE, getSystemPropertySafe("groovy.parallel.parse", "true"));
+ handleOptimizationOption(ANALYZE_DEAD_CODE, getSystemPropertySafe("groovy.analyze.deadcode", "true"));
+
if (getBooleanSafe("groovy.mem.stub")) {
jointCompilationOptions = new HashMap<>(2);