Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_5_X 0dc69445c -> d21d696de


GROOVY-7647: Incorrect line information for debug (closes #830)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/d21d696d
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/d21d696d
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/d21d696d

Branch: refs/heads/GROOVY_2_5_X
Commit: d21d696decd57168068fc974d3836f1e6089c7d3
Parents: aef54c6
Author: Paul King <pa...@asert.com.au>
Authored: Fri Nov 23 16:29:06 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Sat Nov 24 14:46:28 2018 +1000

----------------------------------------------------------------------
 .../org/codehaus/groovy/classgen/asm/StatementWriter.java     | 7 +++++++
 .../groovy/classgen/asm/sc/StaticCompilationTest.groovy       | 3 +--
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/d21d696d/src/main/java/org/codehaus/groovy/classgen/asm/StatementWriter.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/codehaus/groovy/classgen/asm/StatementWriter.java 
b/src/main/java/org/codehaus/groovy/classgen/asm/StatementWriter.java
index 1550237..b1d257a 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/StatementWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/StatementWriter.java
@@ -94,6 +94,13 @@ public class StatementWriter {
         }
         compileStack.pop();
 
+        // GROOVY-7647
+        if (block.getLastLineNumber() > 0) {
+            MethodVisitor mv = controller.getMethodVisitor();
+            Label blockEnd = new Label(); mv.visitLabel(blockEnd);
+            mv.visitLineNumber(block.getLastLineNumber(), blockEnd);
+        }
+
         controller.getOperandStack().popDownTo(mark);
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/d21d696d/src/test/org/codehaus/groovy/classgen/asm/sc/StaticCompilationTest.groovy
----------------------------------------------------------------------
diff --git 
a/src/test/org/codehaus/groovy/classgen/asm/sc/StaticCompilationTest.groovy 
b/src/test/org/codehaus/groovy/classgen/asm/sc/StaticCompilationTest.groovy
index b83430a..318f692 100644
--- a/src/test/org/codehaus/groovy/classgen/asm/sc/StaticCompilationTest.groovy
+++ b/src/test/org/codehaus/groovy/classgen/asm/sc/StaticCompilationTest.groovy
@@ -19,8 +19,6 @@
 package org.codehaus.groovy.classgen.asm.sc
 
 import org.codehaus.groovy.classgen.asm.AbstractBytecodeTestCase
-import org.codehaus.groovy.control.CompilerConfiguration
-import org.codehaus.groovy.transform.stc.GroovyTypeCheckingExtensionSupport
 
 import static org.codehaus.groovy.control.CompilerConfiguration.DEFAULT as 
config
 
@@ -33,6 +31,7 @@ class StaticCompilationTest extends AbstractBytecodeTestCase {
         assert bytecode.hasStrictSequence(
                 ['public m()V',
                         'L0',
+                        'LINENUMBER 3 L0',
                         'RETURN']
         )
     }

Reply via email to