Do not build no-arg constructor overload for inner KtUltraLightClass

This commit is contained in:
Denis Zharkov
2018-11-01 14:46:17 +03:00
parent 8999a21764
commit 34f9a1e70e
2 changed files with 7 additions and 1 deletions
@@ -276,6 +276,7 @@ class KtUltraLightClass(classOrObject: KtClassOrObject, private val support: Ult
private fun shouldGenerateNoArgOverload(primary: KtPrimaryConstructor): Boolean {
return !primary.hasModifier(PRIVATE_KEYWORD) &&
!classOrObject.hasModifier(INNER_KEYWORD) &&
primary.valueParameters.isNotEmpty() &&
primary.valueParameters.all { it.defaultValue != null } &&
classOrObject.allConstructors.none { it.valueParameters.isEmpty() }
+6 -1
View File
@@ -5,4 +5,9 @@ class A(vararg a: Int, f: () -> Unit) {}
class B {
@Deprecated("", level = DeprecationLevel.HIDDEN)
constructor()
}
}
class Outer {
inner class Inner(x: Int = 1, y: String = "")
class Nested(x: Int = 1, y: String = "")
}