diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java index 993d02ce790..64eece2a5c2 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java @@ -290,7 +290,7 @@ public abstract class CodegenContext { } StackValue outer = getOuterExpression(null, ignoreNoOuter); - result = result == null ? outer : StackValue.composed(result, outer); + result = result == null || outer == null ? outer : StackValue.composed(result, outer); } return parentContext != null ? parentContext.lookupInContext(d, result, state, ignoreNoOuter) : null; diff --git a/compiler/testData/codegen/regressions/kt2719.kt b/compiler/testData/codegen/regressions/kt2719.kt new file mode 100644 index 00000000000..e4d51603b66 --- /dev/null +++ b/compiler/testData/codegen/regressions/kt2719.kt @@ -0,0 +1,9 @@ +class Clazz { + class object { + val a = object { + fun run(x: String) = x + } + } +} + +fun box() = "OK" \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/ObjectGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ObjectGenTest.java index 4d1e2825f18..eaea4f12fcc 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ObjectGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ObjectGenTest.java @@ -84,6 +84,10 @@ public class ObjectGenTest extends CodegenTestCase { blackBoxFile("regressions/kt1737.kt"); } + public void testK2719() { + blackBoxFile("regressions/kt2719.kt"); + } + public void testReceiverInConstructor() { blackBoxFile("objects/receiverInConstructor.kt"); }