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