From 8271e85dbb27709b67c34ac9b3646e458e9407a1 Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Mon, 7 May 2018 18:44:34 +0300 Subject: [PATCH] ReplaceArrayOfWithLiteralInspection: Remove unnecessary parentheses #KT-21878 Fixed --- .../psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java | 2 ++ .../replaceArrayOfWithLiteral/kclass.kt | 11 +++++++++++ .../replaceArrayOfWithLiteral/kclass.kt.after | 11 +++++++++++ .../inspections/LocalInspectionTestGenerated.java | 5 +++++ 4 files changed, 29 insertions(+) create mode 100644 idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt create mode 100644 idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt.after diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java index 5ef982b79cc..92cfd5fa654 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java @@ -449,6 +449,8 @@ public class KtPsiUtil { return false; } + if (parentElement instanceof KtCollectionLiteralExpression) return false; + if (innerExpression instanceof KtIfExpression) { if (parentElement instanceof KtQualifiedExpression) return true; diff --git a/idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt b/idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt new file mode 100644 index 00000000000..fe3716b9e53 --- /dev/null +++ b/idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt @@ -0,0 +1,11 @@ +// LANGUAGE_VERSION: 1.2 + +import kotlin.reflect.KClass + +class Foo +class Bar + +annotation class Ann(val values: Array>) + +@Ann(values = arrayOf(Foo::class, Bar::class)) +class Test \ No newline at end of file diff --git a/idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt.after b/idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt.after new file mode 100644 index 00000000000..a6ac4fc0240 --- /dev/null +++ b/idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt.after @@ -0,0 +1,11 @@ +// LANGUAGE_VERSION: 1.2 + +import kotlin.reflect.KClass + +class Foo +class Bar + +annotation class Ann(val values: Array>) + +@Ann(values = [Foo::class, Bar::class]) +class Test \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 4497b2e1921..f0a84772a1b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -3755,6 +3755,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/intArray.kt"); } + @TestMetadata("kclass.kt") + public void testKclass() throws Exception { + runTest("idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/kclass.kt"); + } + @TestMetadata("noAnnotation.kt") public void testNoAnnotation() throws Exception { runTest("idea/testData/inspectionsLocal/replaceArrayOfWithLiteral/noAnnotation.kt");