From f1fcb14f4478cd30407fc845f53f13e52cb19194 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 15 Sep 2015 16:49:29 +0300 Subject: [PATCH] Suppress warning intention fix: now multi declaration is not a possible intention target but its initializer is, relevant test fixes --- .../highlighter/KotlinSuppressableWarningProblemGroup.kt | 9 +++++---- .../quickfix/suppress/declarationKinds/multiVal.kt | 2 +- .../quickfix/suppress/declarationKinds/multiVal.kt.after | 6 +++--- .../quickfix/suppress/declarationKinds/multiVar.kt | 2 +- .../quickfix/suppress/declarationKinds/multiVar.kt.after | 6 +++--- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt index 4988b5af9cc..47a984a0e40 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt @@ -54,7 +54,7 @@ fun createSuppressWarningActions(element: PsiElement, diagnosticFactory: Diagnos var current: PsiElement? = element var suppressAtStatementAllowed = true while (current != null) { - if (current is JetDeclaration) { + if (current is JetDeclaration && current !is JetMultiDeclaration) { val declaration = current val kind = DeclarationKindDetector.detect(declaration) if (kind != null) { @@ -64,14 +64,15 @@ fun createSuppressWarningActions(element: PsiElement, diagnosticFactory: Diagnos } else if (current is JetExpression && suppressAtStatementAllowed) { // Add suppress action at first statement - if (current.getParent() is JetBlockExpression) { + if (current.parent is JetBlockExpression || current.parent is JetMultiDeclaration) { + val kind = if (current.parent is JetBlockExpression) "statement" else "initializer" actions.add(KotlinSuppressIntentionAction(current, diagnosticFactory, - AnnotationHostKind("statement", "", true))) + AnnotationHostKind(kind, "", true))) suppressAtStatementAllowed = false } } - current = current.getParent() + current = current.parent } return actions } diff --git a/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt b/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt index 9eda17844b7..4625eb19ce6 100644 --- a/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt +++ b/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt @@ -1,4 +1,4 @@ -// "Suppress 'REDUNDANT_NULLABLE' for val (a, b)" "true" +// "Suppress 'REDUNDANT_NULLABLE' for initializer " "true" fun foo() { val (a, b) = Pair?, String>("", "") diff --git a/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt.after b/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt.after index bd724ef0469..8f5ab09d46f 100644 --- a/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt.after +++ b/idea/testData/quickfix/suppress/declarationKinds/multiVal.kt.after @@ -1,8 +1,8 @@ -// "Suppress 'REDUNDANT_NULLABLE' for val (a, b)" "true" +// "Suppress 'REDUNDANT_NULLABLE' for initializer " "true" fun foo() { - @Suppress("REDUNDANT_NULLABLE") - val (a, b) = Pair?, String>("", "") + val (a, b) = @Suppress("REDUNDANT_NULLABLE") + Pair("", "") } data class Pair(val a: A, val b: B) \ No newline at end of file diff --git a/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt b/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt index f09ea4dd436..0f9b7084556 100644 --- a/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt +++ b/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt @@ -1,4 +1,4 @@ -// "Suppress 'REDUNDANT_NULLABLE' for var (a, b)" "true" +// "Suppress 'REDUNDANT_NULLABLE' for initializer " "true" fun foo() { var (a, b) = Pair?, String>("", "") diff --git a/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt.after b/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt.after index dad8d2ad98d..daf0bed6345 100644 --- a/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt.after +++ b/idea/testData/quickfix/suppress/declarationKinds/multiVar.kt.after @@ -1,8 +1,8 @@ -// "Suppress 'REDUNDANT_NULLABLE' for var (a, b)" "true" +// "Suppress 'REDUNDANT_NULLABLE' for initializer " "true" fun foo() { - @Suppress("REDUNDANT_NULLABLE") - var (a, b) = Pair?, String>("", "") + var (a, b) = @Suppress("REDUNDANT_NULLABLE") + Pair("", "") } data class Pair(val a: A, val b: B) \ No newline at end of file