From 076166c22f9f5c3a1712f35c0cea6d868615b52d Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 16 Jul 2019 19:44:59 +0900 Subject: [PATCH] Debugger: Generate line numbers for class initializers with a number on the 'init' keyword (KT-16277) Debugger tests not absent as they use the bootstrap version of kotlinc. Obviously, this change is not present in it yet. --- .../kotlin/codegen/ExpressionCodegen.java | 2 +- .../jetbrains/kotlin/codegen/MemberCodegen.java | 13 +++++++++++-- compiler/testData/lineNumber/custom/initBlocks.kt | 14 +++++++++++++- .../testData/stepping/custom/initBlocks.kt | 2 +- .../testData/stepping/custom/initBlocks.out | 1 + .../stepping/filters/doNotSkipConstructors.kt | 2 +- .../stepping/filters/doNotSkipConstructors.out | 1 + 7 files changed, 29 insertions(+), 6 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index eb3152fa44c..3389dbbb372 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -1473,7 +1473,7 @@ public class ExpressionCodegen extends KtVisitor impleme markLineNumber(element, false); } - public void markLineNumber(@NotNull KtElement statement, boolean markEndOffset) { + public void markLineNumber(@NotNull PsiElement statement, boolean markEndOffset) { if (!shouldMarkLineNumbers) return; Integer lineNumber = CodegenUtil.getLineNumberForElement(statement, markEndOffset); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java index 6d010fd7b46..37dbce6f074 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java @@ -507,9 +507,18 @@ public abstract class MemberCodegen