IR: preserve argument evaluation order more carefully

1. receivers should be evaluated before named arguments;
 2. just because an argument has no side effects doesn't mean it is not
    affected by the other arguments' side effects - in that case it
    should still be evaluated in source order.

 #KT-47660 Fixed
This commit is contained in:
pyos
2021-07-12 15:30:55 +02:00
committed by TeamCityServer
parent b5942204dc
commit 3dc7b6c3ee
14 changed files with 123 additions and 298 deletions
@@ -538,6 +538,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
public void testSimpleInClass() throws Exception {
runTest("compiler/testData/codegen/box/argumentOrder/simpleInClass.kt");
}
@TestMetadata("singleSideEffect.kt")
public void testSingleSideEffect() throws Exception {
runTest("compiler/testData/codegen/box/argumentOrder/singleSideEffect.kt");
}
}
@TestMetadata("compiler/testData/codegen/box/arrays")