diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index 5306c5f557e..82fc6e8d1b9 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -2912,6 +2912,10 @@ public class ExpressionCodegen extends JetVisitor implem ResolvedCall resolvedCall = getResolvedCallWithAssert(expression, bindingContext); FunctionDescriptor descriptor = (FunctionDescriptor) resolvedCall.getResultingDescriptor(); + if (descriptor instanceof ConstructorDescriptor) { + return generateConstructorCall(resolvedCall, expressionType(expression)); + } + Callable callable = resolveToCallable(descriptor, false); if (callable instanceof IntrinsicMethod) { Type returnType = typeMapper.mapType(descriptor); diff --git a/compiler/testData/codegen/box/innerNested/innerInfixCall.kt b/compiler/testData/codegen/box/innerNested/innerInfixCall.kt new file mode 100644 index 00000000000..97441a3b1bc --- /dev/null +++ b/compiler/testData/codegen/box/innerNested/innerInfixCall.kt @@ -0,0 +1,15 @@ +class Z() { + + inner class Z2(val s: String) { + + } + + fun a(): String { + val s = Z() Z2 "OK" + return s.s + } +} + +fun box(): String { + return Z().a() +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java index 5d42a665cd0..164a70f4dbe 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -4042,6 +4042,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest(fileName); } + @TestMetadata("innerInfixCall.kt") + public void testInnerInfixCall() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/innerNested/innerInfixCall.kt"); + doTest(fileName); + } + @TestMetadata("innerLabeledThis.kt") public void testInnerLabeledThis() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/innerNested/innerLabeledThis.kt");