[FIR] Fix node ordering for delegating constructor graph

Inject delegated constructor and other in-place initializer sub-graphs
after the delegated constructor call node. This ensures property
initialization and use is calculated correctly when there are complex
calculations for the arguments to the delegated constructor.

#KT-59708 Fixed
#KT-59832 Fixed
This commit is contained in:
Brian Norman
2023-07-11 15:07:02 -05:00
committed by Space Team
parent 4797d30837
commit d2ad426350
11 changed files with 310 additions and 58 deletions
@@ -6258,6 +6258,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/definiteReturnInWhen.kt");
}
@Test
@TestMetadata("delegatedConstructorArguments.kt")
public void testDelegatedConstructorArguments() throws Exception {
runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/delegatedConstructorArguments.kt");
}
@Test
@TestMetadata("delegatedMemberProperyWriteInInit.kt")
public void testDelegatedMemberProperyWriteInInit() throws Exception {
@@ -6258,6 +6258,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/definiteReturnInWhen.kt");
}
@Test
@TestMetadata("delegatedConstructorArguments.kt")
public void testDelegatedConstructorArguments() throws Exception {
runTest("compiler/testData/diagnostics/tests/controlFlowAnalysis/delegatedConstructorArguments.kt");
}
@Test
@TestMetadata("delegatedMemberProperyWriteInInit.kt")
public void testDelegatedMemberProperyWriteInInit() throws Exception {