diff --git a/compiler/testData/codegen/boxMultiFile/protectedFromLambda/A.kt b/compiler/testData/codegen/boxMultiFile/protectedFromLambda/A.kt new file mode 100644 index 00000000000..70f4b057db4 --- /dev/null +++ b/compiler/testData/codegen/boxMultiFile/protectedFromLambda/A.kt @@ -0,0 +1,8 @@ +// A.kt +package first + +open class A { + protected open fun test(): String = "FAIL (A)" +} + +fun box() = second.C().value() \ No newline at end of file diff --git a/compiler/testData/codegen/boxMultiFile/protectedFromLambda/B.kt b/compiler/testData/codegen/boxMultiFile/protectedFromLambda/B.kt new file mode 100644 index 00000000000..30751992ab4 --- /dev/null +++ b/compiler/testData/codegen/boxMultiFile/protectedFromLambda/B.kt @@ -0,0 +1,17 @@ +// B.kt +// See also KT-8344: INVOKESPECIAL instead of INVOKEVIRTUAL in accessor + +package second + +import first.A + +public abstract class B(): A() { + val value = { + test() + } +} + +class C: B() { + override fun test() = "OK" +} + diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java index 041cb9170ef..a2bc5dc3468 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java @@ -149,6 +149,12 @@ public class BlackBoxMultiFileCodegenTestGenerated extends AbstractBlackBoxCodeg doTestMultiFile(fileName); } + @TestMetadata("protectedFromLambda") + public void testProtectedFromLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxMultiFile/protectedFromLambda/"); + doTestMultiFile(fileName); + } + @TestMetadata("samWrappersDifferentFiles") public void testSamWrappersDifferentFiles() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxMultiFile/samWrappersDifferentFiles/");