From 34f9a1e70eedb6ce23003c715fd1bd8cb57fe500 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 1 Nov 2018 14:46:17 +0300 Subject: [PATCH] Do not build no-arg constructor overload for inner KtUltraLightClass --- .../org/jetbrains/kotlin/asJava/classes/ultraLightPsi.kt | 1 + compiler/testData/asJava/ultraLightClasses/constructors.kt | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) 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 7ca13af26c4..ae2bd42f42f 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 @@ -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() } diff --git a/compiler/testData/asJava/ultraLightClasses/constructors.kt b/compiler/testData/asJava/ultraLightClasses/constructors.kt index 4c2c30179a8..b7a10472f8e 100644 --- a/compiler/testData/asJava/ultraLightClasses/constructors.kt +++ b/compiler/testData/asJava/ultraLightClasses/constructors.kt @@ -5,4 +5,9 @@ class A(vararg a: Int, f: () -> Unit) {} class B { @Deprecated("", level = DeprecationLevel.HIDDEN) constructor() -} \ No newline at end of file +} + +class Outer { + inner class Inner(x: Int = 1, y: String = "") + class Nested(x: Int = 1, y: String = "") +}