Do not generate no-arg constructor for sealed ultra-light class
This commit is contained in:
@@ -377,6 +377,7 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor
|
|||||||
private fun shouldGenerateNoArgOverload(primary: KtPrimaryConstructor): Boolean {
|
private fun shouldGenerateNoArgOverload(primary: KtPrimaryConstructor): Boolean {
|
||||||
return !primary.hasModifier(PRIVATE_KEYWORD) &&
|
return !primary.hasModifier(PRIVATE_KEYWORD) &&
|
||||||
!classOrObject.hasModifier(INNER_KEYWORD) && !isEnum &&
|
!classOrObject.hasModifier(INNER_KEYWORD) && !isEnum &&
|
||||||
|
!classOrObject.hasModifier(SEALED_KEYWORD) &&
|
||||||
primary.valueParameters.isNotEmpty() &&
|
primary.valueParameters.isNotEmpty() &&
|
||||||
primary.valueParameters.all { it.defaultValue != null } &&
|
primary.valueParameters.all { it.defaultValue != null } &&
|
||||||
classOrObject.allConstructors.none { it.valueParameters.isEmpty() }
|
classOrObject.allConstructors.none { it.valueParameters.isEmpty() }
|
||||||
|
|||||||
@@ -11,3 +11,7 @@ class Outer {
|
|||||||
inner class Inner(x: Int = 1, y: String = "")
|
inner class Inner(x: Int = 1, y: String = "")
|
||||||
class Nested(x: Int = 1, y: String = "")
|
class Nested(x: Int = 1, y: String = "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sealed class A(val x: String? = null) {
|
||||||
|
class C : A()
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user