diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index ef5a85bc8b8..cdfe31bb26a 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -466,6 +466,7 @@ public class FunctionCodegen { List paramDescrs = functionDescriptor.getValueParameters(); for (int i = 0; i < paramDescrs.size(); i++) { int size = argTypes[i + (hasReceiver ? 1 : 0)].getSize(); + frameMap.enter(paramDescrs.get(i),size); var += size; } diff --git a/compiler/testData/codegen/regressions/kt2271.kt b/compiler/testData/codegen/regressions/kt2271.kt new file mode 100644 index 00000000000..0db53458956 --- /dev/null +++ b/compiler/testData/codegen/regressions/kt2271.kt @@ -0,0 +1,3 @@ +fun foo(i: Int, j: Int = i) = j + +fun box() = if (foo(1) == 1) "OK" else "fail" \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/FunctionGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/FunctionGenTest.java index 8316a2a9eea..578dc674f0a 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/FunctionGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/FunctionGenTest.java @@ -133,6 +133,10 @@ public class FunctionGenTest extends CodegenTestCase { blackBoxFile("regressions/kt1739.kt"); } + public void testKt2271() { + blackBoxFile("regressions/kt2271.kt"); + } + public static class WithJavaFunctionGenTest extends CodegenTestCase { private void blackBoxFileWithJava(@NotNull String ktFile) throws Exception { File javaClassesTempDirectory = new File(FileUtil.getTempDirectory(), "java-classes");