KT-2271 fix: default param value refering another param
This commit is contained in:
@@ -466,6 +466,7 @@ public class FunctionCodegen {
|
|||||||
List<ValueParameterDescriptor> paramDescrs = functionDescriptor.getValueParameters();
|
List<ValueParameterDescriptor> paramDescrs = functionDescriptor.getValueParameters();
|
||||||
for (int i = 0; i < paramDescrs.size(); i++) {
|
for (int i = 0; i < paramDescrs.size(); i++) {
|
||||||
int size = argTypes[i + (hasReceiver ? 1 : 0)].getSize();
|
int size = argTypes[i + (hasReceiver ? 1 : 0)].getSize();
|
||||||
|
frameMap.enter(paramDescrs.get(i),size);
|
||||||
var += size;
|
var += size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fun foo(i: Int, j: Int = i) = j
|
||||||
|
|
||||||
|
fun box() = if (foo(1) == 1) "OK" else "fail"
|
||||||
@@ -133,6 +133,10 @@ public class FunctionGenTest extends CodegenTestCase {
|
|||||||
blackBoxFile("regressions/kt1739.kt");
|
blackBoxFile("regressions/kt1739.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testKt2271() {
|
||||||
|
blackBoxFile("regressions/kt2271.kt");
|
||||||
|
}
|
||||||
|
|
||||||
public static class WithJavaFunctionGenTest extends CodegenTestCase {
|
public static class WithJavaFunctionGenTest extends CodegenTestCase {
|
||||||
private void blackBoxFileWithJava(@NotNull String ktFile) throws Exception {
|
private void blackBoxFileWithJava(@NotNull String ktFile) throws Exception {
|
||||||
File javaClassesTempDirectory = new File(FileUtil.getTempDirectory(), "java-classes");
|
File javaClassesTempDirectory = new File(FileUtil.getTempDirectory(), "java-classes");
|
||||||
|
|||||||
Reference in New Issue
Block a user