KT-41670 Check for default property accessors in SAM interfaces

This commit is contained in:
Pavel Mikhailovskii
2022-09-07 12:17:56 +02:00
committed by teamcity
parent 59a052a615
commit 0b453ee328
10 changed files with 55 additions and 1 deletions
@@ -18317,6 +18317,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@Test
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@Test
@TestMetadata("kt44827_funInterface.kt")
public void testKt44827_funInterface() throws Exception {
@@ -227,7 +227,8 @@ internal class LambdaMetafactoryArgumentsBuilder(
getAllSuperclasses().any { it.fqNameWhenAvailable == javaIoSerializableFqn }
private fun IrClass.requiresDelegationToDefaultImpls(): Boolean {
for (irMemberFun in functions) {
val functionsAndAccessors = functions + properties.mapNotNull { it.getter } + properties.mapNotNull { it.setter }
for (irMemberFun in functionsAndAccessors) {
if (irMemberFun.modality == Modality.ABSTRACT)
continue
val irImplFun =
+7
View File
@@ -0,0 +1,7 @@
fun interface Interface {
fun foo()
val value get() = "OK"
}
fun box() = Interface{}.value
@@ -17663,6 +17663,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@Test
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@Test
@TestMetadata("kt44827_funInterface.kt")
public void testKt44827_funInterface() throws Exception {
@@ -18317,6 +18317,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@Test
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@Test
@TestMetadata("kt44827_funInterface.kt")
public void testKt44827_funInterface() throws Exception {
@@ -14665,6 +14665,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@TestMetadata("kt44827_funInterface.kt")
public void testKt44827_funInterface() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt44827_funInterface.kt");
@@ -13585,6 +13585,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@Test
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@Test
@TestMetadata("kt45444_privateFunInterface.kt")
public void testKt45444_privateFunInterface() throws Exception {
@@ -13675,6 +13675,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@Test
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@Test
@TestMetadata("kt45444_privateFunInterface.kt")
public void testKt45444_privateFunInterface() throws Exception {
@@ -12160,6 +12160,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@TestMetadata("kt45444_privateFunInterface.kt")
public void testKt45444_privateFunInterface() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt45444_privateFunInterface.kt");
@@ -14719,6 +14719,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
runTest("compiler/testData/codegen/box/funInterface/irrelevantPrivateDeclarations.kt");
}
@Test
@TestMetadata("kt41670.kt")
public void testKt41670() throws Exception {
runTest("compiler/testData/codegen/box/funInterface/kt41670.kt");
}
@Test
@TestMetadata("kt45444_privateFunInterface.kt")
public void testKt45444_privateFunInterface() throws Exception {