From b16bfad079ca41504f02f6f7357a758322595e15 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 5 Dec 2018 17:44:44 +0300 Subject: [PATCH] Do not generate no-arg constructor for sealed ultra-light class --- .../src/org/jetbrains/kotlin/asJava/classes/ultraLightPsi.kt | 1 + compiler/testData/asJava/ultraLightClasses/constructors.kt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightPsi.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightPsi.kt index c68d72d9043..b005d538d87 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightPsi.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightPsi.kt @@ -377,6 +377,7 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor private fun shouldGenerateNoArgOverload(primary: KtPrimaryConstructor): Boolean { return !primary.hasModifier(PRIVATE_KEYWORD) && !classOrObject.hasModifier(INNER_KEYWORD) && !isEnum && + !classOrObject.hasModifier(SEALED_KEYWORD) && primary.valueParameters.isNotEmpty() && primary.valueParameters.all { it.defaultValue != null } && classOrObject.allConstructors.none { it.valueParameters.isEmpty() } diff --git a/compiler/testData/asJava/ultraLightClasses/constructors.kt b/compiler/testData/asJava/ultraLightClasses/constructors.kt index b7a10472f8e..ed28301c752 100644 --- a/compiler/testData/asJava/ultraLightClasses/constructors.kt +++ b/compiler/testData/asJava/ultraLightClasses/constructors.kt @@ -11,3 +11,7 @@ class Outer { inner class Inner(x: Int = 1, y: String = "") class Nested(x: Int = 1, y: String = "") } + +sealed class A(val x: String? = null) { + class C : A() +}