Support property delegation to inline class values (KT-27070)

This commit is contained in:
Dmitry Petrov
2018-10-01 12:58:39 +03:00
parent 70e60ea9bc
commit 5480bf69e8
18 changed files with 582 additions and 16 deletions
@@ -12305,6 +12305,54 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/overriddenDefaultInterfaceMethodCall.kt");
}
}
@TestMetadata("compiler/testData/codegen/box/inlineClasses/propertyDelegation")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class PropertyDelegation extends AbstractBlackBoxCodegenTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
}
public void testAllFilesPresentInPropertyDelegation() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/propertyDelegation"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JVM, true);
}
@TestMetadata("delegateClassVarToInlineClass.kt")
public void testDelegateClassVarToInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/propertyDelegation/delegateClassVarToInlineClass.kt");
}
@TestMetadata("delegateClassVarToInlineClassWithProvideDelegate.kt")
public void testDelegateClassVarToInlineClassWithProvideDelegate() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/propertyDelegation/delegateClassVarToInlineClassWithProvideDelegate.kt");
}
@TestMetadata("delegateCompanionVarToInlineClass.kt")
public void testDelegateCompanionVarToInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/propertyDelegation/delegateCompanionVarToInlineClass.kt");
}
@TestMetadata("delegateJvmStaticCompanionVarToInlineClass.kt")
public void testDelegateJvmStaticCompanionVarToInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/propertyDelegation/delegateJvmStaticCompanionVarToInlineClass.kt");
}
@TestMetadata("delegateObjectVarToInlineClass.kt")
public void testDelegateObjectVarToInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/propertyDelegation/delegateObjectVarToInlineClass.kt");
}
@TestMetadata("delegateTopLevelVarToInlineClass.kt")
public void testDelegateTopLevelVarToInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/propertyDelegation/delegateTopLevelVarToInlineClass.kt");
}
@TestMetadata("kt27070.kt")
public void testKt27070() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/propertyDelegation/kt27070.kt");
}
}
}
@TestMetadata("compiler/testData/codegen/box/innerNested")