diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/modifierListModifactor.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/modifierListModifactor.kt index 51815acf6df..875723fa129 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/modifierListModifactor.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/modifierListModifactor.kt @@ -24,10 +24,11 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode fun KtModifierListOwner.addAnnotation( - annotationFqName: FqName, - annotationInnerText: String? = null, - whiteSpaceText: String = "\n", - addToExistingAnnotation: ((KtAnnotationEntry) -> Boolean)? = null): Boolean { + annotationFqName: FqName, + annotationInnerText: String? = null, + whiteSpaceText: String = "\n", + addToExistingAnnotation: ((KtAnnotationEntry) -> Boolean)? = null +): Boolean { val annotationText = when (annotationInnerText) { null -> "@${annotationFqName.asString()}" else -> "@${annotationFqName.asString()}($annotationInnerText)" @@ -37,14 +38,8 @@ fun KtModifierListOwner.addAnnotation( val modifierList = modifierList if (modifierList == null) { - // create a modifier list from scratch - val newModifierList = psiFactory.createModifierList(annotationText) - val replaced = KtPsiUtil.replaceModifierList(this, newModifierList)!! - val whiteSpace = psiFactory.createWhiteSpace(whiteSpaceText) - addAfter(whiteSpace, replaced) - - ShortenReferences.DEFAULT.process(replaced) - + val addedAnnotation = addAnnotationEntry(psiFactory.createAnnotationEntry(annotationText)) + ShortenReferences.DEFAULT.process(addedAnnotation) return true } @@ -57,7 +52,6 @@ fun KtModifierListOwner.addAnnotation( modifierList.addAfter(whiteSpace, addedAnnotation) ShortenReferences.DEFAULT.process(addedAnnotation) - return true } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddAnnotationFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddAnnotationFix.kt index 5fec160e630..e50c4b9e879 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddAnnotationFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddAnnotationFix.kt @@ -7,11 +7,10 @@ package org.jetbrains.kotlin.idea.quickfix import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.idea.core.ShortenReferences +import org.jetbrains.kotlin.idea.util.addAnnotation import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.KtPsiFactory open class AddAnnotationFix( element: KtDeclaration, @@ -27,13 +26,6 @@ open class AddAnnotationFix( override fun getFamilyName(): String = "Add annotation" override fun invoke(project: Project, editor: Editor?, file: KtFile) { - val factory = KtPsiFactory(project) - val annotationInnerText = argumentClassFqName?.let { "$it::class" } - val annotationText = when (annotationInnerText) { - null -> "@${annotationFqName.asString()}" - else -> "@${annotationFqName.asString()}($annotationInnerText)" - } - val addedAnnotation = element?.addAnnotationEntry(factory.createAnnotationEntry(annotationText)) - addedAnnotation?.let { ShortenReferences.DEFAULT.process(it) } + element?.addAnnotation(annotationFqName, annotationInnerText = argumentClassFqName?.let { "$it::class" }) } } \ No newline at end of file diff --git a/idea/testData/quickfix/suppress/availability/localValSuppressForVal.kt.after b/idea/testData/quickfix/suppress/availability/localValSuppressForVal.kt.after index 62bdb1999a6..c854f602f55 100644 --- a/idea/testData/quickfix/suppress/availability/localValSuppressForVal.kt.after +++ b/idea/testData/quickfix/suppress/availability/localValSuppressForVal.kt.after @@ -1,6 +1,5 @@ // "Suppress 'REDUNDANT_NULLABLE' for val a" "true" fun foo() { - @Suppress("REDUNDANT_NULLABLE") - val a: String?? = null + @Suppress("REDUNDANT_NULLABLE") val a: String?? = null }