From 985f2b839c2470c0202b0ba1a9e1fc502ccff4db Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Thu, 17 Sep 2020 11:54:18 +0200 Subject: [PATCH] Add regression tests to cover Unused symbol with private anonymous object property ^KT-39454 Fixed --- .../unusedSymbol/privateProperty.kt | 8 ++++++++ .../unusedSymbol/privateProperty.kt.after | 8 ++++++++ .../unusedSymbol/privatePropertyViaGetter.kt | 13 +++++++++++++ .../unusedSymbol/privatePropertyViaSetter.kt | 12 ++++++++++++ .../inspections/LocalInspectionTestGenerated.java | 15 +++++++++++++++ 5 files changed, 56 insertions(+) create mode 100644 idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt create mode 100644 idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt.after create mode 100644 idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaGetter.kt create mode 100644 idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaSetter.kt diff --git a/idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt b/idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt new file mode 100644 index 00000000000..f9a143dd3e4 --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt @@ -0,0 +1,8 @@ +// WITH_RUNTIME +// PROBLEM: Property "bar" is never used + +class Foo { + private val foo = object { + var bar: Int = 42 + } +} \ No newline at end of file diff --git a/idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt.after b/idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt.after new file mode 100644 index 00000000000..e4ab5653a1d --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt.after @@ -0,0 +1,8 @@ +// WITH_RUNTIME +// PROBLEM: Property "bar" is never used + +class Foo { + private val foo = object { + var bar: Int = 42 + } +} \ No newline at end of file diff --git a/idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaGetter.kt b/idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaGetter.kt new file mode 100644 index 00000000000..9d8ac99a711 --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaGetter.kt @@ -0,0 +1,13 @@ +// WITH_RUNTIME +// PROBLEM: none + +class Foo { + private val foo = object { + var bar: Int = 42 + } + + fun baz(): Int { + val z = foo.bar + return z + } +} \ No newline at end of file diff --git a/idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaSetter.kt b/idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaSetter.kt new file mode 100644 index 00000000000..b8bcbcbeda5 --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaSetter.kt @@ -0,0 +1,12 @@ +// WITH_RUNTIME +// PROBLEM: none + +class Foo { + private val foo = object { + var bar: Int = 42 + } + + fun baz(value: Int) { + foo.bar = value + } +} \ 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 f9408c2aae6..5607503a3f8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -14285,6 +14285,21 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/unusedSymbol/jsExport.kt"); } + @TestMetadata("privateProperty.kt") + public void testPrivateProperty() throws Exception { + runTest("idea/testData/inspectionsLocal/unusedSymbol/privateProperty.kt"); + } + + @TestMetadata("privatePropertyViaGetter.kt") + public void testPrivatePropertyViaGetter() throws Exception { + runTest("idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaGetter.kt"); + } + + @TestMetadata("privatePropertyViaSetter.kt") + public void testPrivatePropertyViaSetter() throws Exception { + runTest("idea/testData/inspectionsLocal/unusedSymbol/privatePropertyViaSetter.kt"); + } + @TestMetadata("propertyOfInlineClassType.kt") public void testPropertyOfInlineClassType() throws Exception { runTest("idea/testData/inspectionsLocal/unusedSymbol/propertyOfInlineClassType.kt");