From e6d76a9b713acfdca4913943c9336192d3776cf4 Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Sun, 14 Aug 2016 14:23:02 +0300 Subject: [PATCH] Allow suppressing warnings for secondary constructor (KT-12627) (cherry picked from commit 41cf868) #KT-12627 Fixed --- ChangeLog.md | 1 + .../highlighter/KotlinSuppressableWarningProblemGroup.kt | 4 +++- .../suppress/declarationKinds/secondaryConstructor.kt | 5 +++++ .../suppress/declarationKinds/secondaryConstructor.kt.after | 6 ++++++ .../kotlin/idea/quickfix/QuickFixTestGenerated.java | 6 ++++++ 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt create mode 100644 idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt.after diff --git a/ChangeLog.md b/ChangeLog.md index 43e9b63b295..ef33dcca904 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -215,6 +215,7 @@ These artifacts include extensions for the types available in the latter JDKs, s - [`KT-13170`](https://youtrack.jetbrains.com/issue/KT-13170) "Declaration has platform type" inspection: by default should not be reported for platform type arguments - [`KT-13262`](https://youtrack.jetbrains.com/issue/KT-13262) "Wrap with safe let call" quickfix produces wrong result for qualified function - [`KT-13364`](https://youtrack.jetbrains.com/issue/KT-13364) Do not suggest creating annotations/enum classes for unresolved type parameter bounds +- [`KT-12627`](https://youtrack.jetbrains.com/issue/KT-12627) Allow warnings suppression for secondary constructor ##### New features 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 b40351c33c7..85d47407343 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 @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.idea.quickfix.AnnotationHostKind import org.jetbrains.kotlin.idea.quickfix.KotlinSuppressIntentionAction import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType -import java.util.Collections +import java.util.* class KotlinSuppressableWarningProblemGroup( private val diagnosticFactory: DiagnosticFactory<*> @@ -110,6 +110,8 @@ private object DeclarationKindDetector : KtVisitor() override fun visitParameter(d: KtParameter, data: Unit?) = detect(d, "parameter", newLineNeeded = false) + override fun visitSecondaryConstructor(constructor: KtSecondaryConstructor, data: Unit?) = detect(constructor, "secondary constructor of") + override fun visitObjectDeclaration(d: KtObjectDeclaration, data: Unit?): AnnotationHostKind? { if (d.isCompanion()) return detect(d, "companion object", name = "${d.name} of ${d.getStrictParentOfType()?.name}") if (d.parent is KtObjectLiteralExpression) return null diff --git a/idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt b/idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt new file mode 100644 index 00000000000..583940edde5 --- /dev/null +++ b/idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt @@ -0,0 +1,5 @@ +// "Suppress 'REDUNDANT_NULLABLE' for secondary constructor of C" "true" + +class C { + constructor(s: String??) +} \ No newline at end of file diff --git a/idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt.after b/idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt.after new file mode 100644 index 00000000000..7ea6d51e1d3 --- /dev/null +++ b/idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt.after @@ -0,0 +1,6 @@ +// "Suppress 'REDUNDANT_NULLABLE' for secondary constructor of C" "true" + +class C { + @Suppress("REDUNDANT_NULLABLE") + constructor(s: String??) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 2a79ac14784..3e85fae5652 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -7476,6 +7476,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("secondaryConstructor.kt") + public void testSecondaryConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/suppress/declarationKinds/secondaryConstructor.kt"); + doTest(fileName); + } + @TestMetadata("trait.kt") public void testTrait() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/suppress/declarationKinds/trait.kt");