diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java index 19b2f284e2d..0bea34a41af 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java @@ -364,7 +364,7 @@ public class BodyResolver { @NotNull ClassDescriptorWithResolutionScopes classDescriptor ) { JetScope scopeForInitializers = classDescriptor.getScopeForInitializerResolution(); - if (classDescriptor.getUnsubstitutedPrimaryConstructor() != null) { + if (!classDescriptor.getConstructors().isEmpty()) { expressionTypingServices.getType(scopeForInitializers, anonymousInitializer.getBody(), NO_EXPECTED_TYPE, c.getOuterDataFlowInfo(), trace); processModifiersOnInitializer(anonymousInitializer, scopeForInitializers); } diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/classInitializersWithoutPrimary.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/classInitializersWithoutPrimary.kt new file mode 100644 index 00000000000..9a25b89fc60 --- /dev/null +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/classInitializersWithoutPrimary.kt @@ -0,0 +1,4 @@ +class A { + constructor() {} + init {} +} diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/classInitializersWithoutPrimary.txt b/compiler/testData/diagnostics/tests/secondaryConstructors/classInitializersWithoutPrimary.txt new file mode 100644 index 00000000000..e26602fdb4d --- /dev/null +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/classInitializersWithoutPrimary.txt @@ -0,0 +1,8 @@ +package + +internal final class A { + public constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index 467a693d18a..21ed3380b49 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -10403,6 +10403,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("classInitializersWithoutPrimary.kt") + public void testClassInitializersWithoutPrimary() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/secondaryConstructors/classInitializersWithoutPrimary.kt"); + doTest(fileName); + } + @TestMetadata("constructorCallType.kt") public void testConstructorCallType() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/secondaryConstructors/constructorCallType.kt");