diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBytecodeTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBytecodeTextTestGenerated.java index ab654954251..ce59c3ec18d 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBytecodeTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBytecodeTextTestGenerated.java @@ -4612,6 +4612,12 @@ public class FirLightTreeBytecodeTextTestGenerated extends AbstractFirLightTreeB runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt61768.kt"); } + @Test + @TestMetadata("kt62965.kt") + public void testKt62965() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt62965.kt"); + } + @Test @TestMetadata("singleThen.kt") public void testSingleThen() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBytecodeTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBytecodeTextTestGenerated.java index 5ea922fb622..f8d1a951b75 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBytecodeTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBytecodeTextTestGenerated.java @@ -4612,6 +4612,12 @@ public class FirPsiBytecodeTextTestGenerated extends AbstractFirPsiBytecodeTextT runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt61768.kt"); } + @Test + @TestMetadata("kt62965.kt") + public void testKt62965() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt62965.kt"); + } + @Test @TestMetadata("singleThen.kt") public void testSingleThen() throws Exception { diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FunctionReferenceLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FunctionReferenceLowering.kt index 6699dda1953..662387013ae 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FunctionReferenceLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FunctionReferenceLowering.kt @@ -180,7 +180,7 @@ internal class FunctionReferenceLowering(private val context: JvmBackendContext) .getLambdaMetafactoryArguments(reference, samSuperType, false) if (lambdaMetafactoryArguments is LambdaMetafactoryArguments) { return wrapSamConversionArgumentWithIndySamConversion(expression) { samType -> - wrapWithIndySamConversion(samType, lambdaMetafactoryArguments) + wrapWithIndySamConversion(samType, lambdaMetafactoryArguments, expression.startOffset, expression.endOffset) } } else if (lambdaMetafactoryArguments is MetafactoryArgumentsResult.Failure.FunctionHazard) { // Try wrapping function with a proxy local function and see if that helps. @@ -399,11 +399,13 @@ internal class FunctionReferenceLowering(private val context: JvmBackendContext) private fun wrapWithIndySamConversion( samType: IrType, - lambdaMetafactoryArguments: LambdaMetafactoryArguments + lambdaMetafactoryArguments: LambdaMetafactoryArguments, + startOffset: Int = UNDEFINED_OFFSET, + endOffset:Int = UNDEFINED_OFFSET ): IrCall { val notNullSamType = samType.makeNotNull() .removeAnnotations { it.type.classFqName in specialNullabilityAnnotationsFqNames } - return context.createJvmIrBuilder(currentScope!!).run { + return context.createJvmIrBuilder(currentScope!!, startOffset, endOffset).run { // See [org.jetbrains.kotlin.backend.jvm.JvmSymbols::indyLambdaMetafactoryIntrinsic]. irCall(jvmIndyLambdaMetafactoryIntrinsic, notNullSamType).apply { putTypeArgument(0, notNullSamType) diff --git a/compiler/testData/codegen/boxInline/anonymousObject/sam/kt22304.jvm_abi.txt b/compiler/testData/codegen/boxInline/anonymousObject/sam/kt22304.jvm_abi.txt index cfe84278ad1..145f71010e3 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/sam/kt22304.jvm_abi.txt +++ b/compiler/testData/codegen/boxInline/anonymousObject/sam/kt22304.jvm_abi.txt @@ -18,15 +18,15 @@ MODULE main *L 1#1,17:1 24#2:18 - 15#3:19 - 1#4:20 + 14#3,2:19 + 1#4:21 *S KotlinDebug *F + 1 2.kt _2Kt *L - 24#1:19 - 24#1:20 + 24#1:19,2 + 24#1:21 *E } ) K2 @@ -46,15 +46,15 @@ MODULE main *L 1#1,17:1 24#2:18 - 26#2:21 - 15#3:19 - 1#4:20 + 26#2:22 + 14#3,2:19 + 1#4:21 *S KotlinDebug *F + 1 2.kt _2Kt *L - 24#1:19 - 24#1:20 + 24#1:19,2 + 24#1:21 *E } ) diff --git a/compiler/testData/codegen/bytecodeText/lineNumbers/kt62965.kt b/compiler/testData/codegen/bytecodeText/lineNumbers/kt62965.kt new file mode 100644 index 00000000000..329bb0729a7 --- /dev/null +++ b/compiler/testData/codegen/bytecodeText/lineNumbers/kt62965.kt @@ -0,0 +1,8 @@ +// TARGET_BACKEND: JVM_IR + +fun foo() { + Runnable { + }.run() +} + +// 1 LINENUMBER 4 L0\n +INVOKEDYNAMIC run\(\)Ljava/lang/Runnable \ No newline at end of file diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java index 666e393e23c..4c709011936 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java @@ -11381,6 +11381,12 @@ public class JvmAbiConsistencyTestRestGenerated extends AbstractJvmAbiConsistenc runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt61768.kt"); } + @Test + @TestMetadata("kt62965.kt") + public void testKt62965() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt62965.kt"); + } + @Test @TestMetadata("singleThen.kt") public void testSingleThen() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBytecodeTextTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBytecodeTextTestGenerated.java index 49d33da856c..487d1927d95 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBytecodeTextTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBytecodeTextTestGenerated.java @@ -4612,6 +4612,12 @@ public class IrBytecodeTextTestGenerated extends AbstractIrBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt61768.kt"); } + @Test + @TestMetadata("kt62965.kt") + public void testKt62965() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/lineNumbers/kt62965.kt"); + } + @Test @TestMetadata("singleThen.kt") public void testSingleThen() throws Exception {