diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/SuperClassNotInitialized.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/SuperClassNotInitialized.kt index 1c671fd5de3..a0ba81ec0ed 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/SuperClassNotInitialized.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/SuperClassNotInitialized.kt @@ -48,6 +48,7 @@ public object SuperClassNotInitialized : JetIntentionActionsFactory() { val superClass = (type.getConstructor().getDeclarationDescriptor() as? ClassDescriptor) ?: return null val classDescriptor = delegator.getResolutionFacade().resolveToDescriptor(classOrObjectDeclaration) as ClassDescriptor val constructors = superClass.getConstructors().filter { it.isVisible(classDescriptor) } + if (constructors.isEmpty()) return null // no accessible constructor val fixes = ArrayList() diff --git a/idea/testData/quickfix/supertypeInitialization/noAccessibleConstructors.kt b/idea/testData/quickfix/supertypeInitialization/noAccessibleConstructors.kt new file mode 100644 index 00000000000..75820c038fd --- /dev/null +++ b/idea/testData/quickfix/supertypeInitialization/noAccessibleConstructors.kt @@ -0,0 +1,5 @@ +// "class org.jetbrains.kotlin.idea.quickfix.SuperClassNotInitialized$AddParenthesisFix" "false" +// ERROR: This type has a constructor, and thus must be initialized here +open class Base private(p: Int) + +class C : Base diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 8ec2bea4761..f8866b55bc8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -3987,6 +3987,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("noAccessibleConstructors.kt") + public void testNoAccessibleConstructors() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/supertypeInitialization/noAccessibleConstructors.kt"); + doTest(fileName); + } + @TestMetadata("noParameters.kt") public void testNoParameters() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/supertypeInitialization/noParameters.kt");