From 905d0c10167c8711d4db16a7ecfdefaf64b4c615 Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Wed, 29 Jan 2020 16:15:19 +0900 Subject: [PATCH] Unused symbol: do not report for @JsName annotated declarations #KT-17368 Fixed --- .../idea/inspections/UnusedSymbolInspection.kt | 2 +- .../testData/inspectionsLocal/unusedSymbol/jsName.kt | 12 ++++++++++++ .../inspections/LocalInspectionTestGenerated.java | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 idea/testData/inspectionsLocal/unusedSymbol/jsName.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt index dfea43cdcf4..0d9a5566b3c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt @@ -98,7 +98,7 @@ class UnusedSymbolInspection : AbstractKotlinInspection() { private val javaInspection = UnusedDeclarationInspection() - private val KOTLIN_ADDITIONAL_ANNOTATIONS = listOf("kotlin.test.*") + private val KOTLIN_ADDITIONAL_ANNOTATIONS = listOf("kotlin.test.*", "kotlin.js.JsName") private val KOTLIN_BUILTIN_ENUM_FUNCTIONS = listOf(FqName("kotlin.enumValues"), FqName("kotlin.enumValueOf")) diff --git a/idea/testData/inspectionsLocal/unusedSymbol/jsName.kt b/idea/testData/inspectionsLocal/unusedSymbol/jsName.kt new file mode 100644 index 00000000000..7889c682435 --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedSymbol/jsName.kt @@ -0,0 +1,12 @@ +// PROBLEM: none +// JS +class Person(val name: String) { + fun hello() { + println("Hello $name!") + } + + @JsName("helloWithGreeting") + fun hello(greeting: String) { + println("$greeting $name!") + } +} \ 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 ff4b28b277c..6ed77b40014 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -13521,6 +13521,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/unusedSymbol/internal.kt"); } + @TestMetadata("jsName.kt") + public void testJsName() throws Exception { + runTest("idea/testData/inspectionsLocal/unusedSymbol/jsName.kt"); + } + @TestMetadata("propertyOfInlineClassType.kt") public void testPropertyOfInlineClassType() throws Exception { runTest("idea/testData/inspectionsLocal/unusedSymbol/propertyOfInlineClassType.kt");