diff --git a/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidViewConstructorFix.kt b/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidViewConstructorFix.kt index 18fc1bd8dc1..7f5fb6be0ce 100644 --- a/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidViewConstructorFix.kt +++ b/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidViewConstructorFix.kt @@ -52,18 +52,15 @@ class KotlinAndroidViewConstructorFix(element: KtSuperTypeEntry) : KotlinQuickFi val factory = KtPsiFactory(element) - val newPrimaryConstructor = factory.createDeclarationByPattern( - "class A constructor(\n $0, $1, $2\n)", - factory.createParameter("context: android.content.Context"), - factory.createParameter("attrs: android.util.AttributeSet? = null"), - factory.createParameter("defStyleAttr: Int = 0") - ).primaryConstructor ?: return + val newPrimaryConstructor = factory.createPrimaryConstructor( + """( + context: android.content.Context, attrs: android.util.AttributeSet? = null, defStyleAttr: Int = 0 + )""".trimIndent() + ) val primaryConstructor = ktClass.createPrimaryConstructorIfAbsent().replaced(newPrimaryConstructor) primaryConstructor.valueParameterList?.let { ShortenReferences.DEFAULT.process(it) } - - primaryConstructor.addAnnotation(fqNameAnnotation, whiteSpaceText = " ") - primaryConstructor.addAfter(factory.createWhiteSpace(" "), primaryConstructor.modifierList) + primaryConstructor.addAnnotation(fqNameAnnotation) element.replace(factory.createSuperTypeCallEntry(element.text + "(context, attrs, defStyleAttr)")) } @@ -73,7 +70,7 @@ class KotlinAndroidViewConstructorFix(element: KtSuperTypeEntry) : KotlinQuickFi private val fqNameAnnotation = FqName("kotlin.jvm.JvmOverloads") private val requiredConstructorParameterTypes = - listOf("android.content.Context", "android.util.AttributeSet", "kotlin.Int") + listOf("android.content.Context", "android.util.AttributeSet", "kotlin.Int") override fun createAction(diagnostic: Diagnostic): IntentionAction? { val superTypeEntry = SUPERTYPE_NOT_INITIALIZED.cast(diagnostic).psiElement @@ -99,7 +96,7 @@ class KotlinAndroidViewConstructorFix(element: KtSuperTypeEntry) : KotlinQuickFi private fun KotlinType.constructorParameters(): List>? { val classDescriptor = constructor.declarationDescriptor as? ClassDescriptor ?: return null return classDescriptor.constructors.map { - it.valueParameters.map { it.type.getFqNameAsString() } + it.valueParameters.map { parameter -> parameter.type.getFqNameAsString() } } } }