From 3ebad2acecf5641567baf2e81073dc94e402ca52 Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Thu, 30 Jan 2020 19:54:36 +0900 Subject: [PATCH] "Constructor has non-null self reference parameter": don't report for vararg parameter #KT-36160 Fixed --- .../SelfReferenceConstructorParameterInspection.kt | 1 + .../selfReferenceConstructorParameter/vararg.kt | 6 ++++++ .../idea/inspections/LocalInspectionTestGenerated.java | 5 +++++ 3 files changed, 12 insertions(+) create mode 100644 idea/testData/inspectionsLocal/selfReferenceConstructorParameter/vararg.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/SelfReferenceConstructorParameterInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/SelfReferenceConstructorParameterInspection.kt index 5cb8a4b61af..df8ef495692 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/SelfReferenceConstructorParameterInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/SelfReferenceConstructorParameterInspection.kt @@ -37,6 +37,7 @@ class SelfReferenceConstructorParameterInspection : AbstractKotlinInspection() { val containingClass = this.containingClass() ?: return null val className = containingClass.name ?: return null val parameter = this.parameters.firstOrNull { it.typeReference?.text == className } ?: return null + if (parameter.isVarArg) return null val typeReference = parameter.typeReference ?: return null val context = analyze(BodyResolveMode.PARTIAL) diff --git a/idea/testData/inspectionsLocal/selfReferenceConstructorParameter/vararg.kt b/idea/testData/inspectionsLocal/selfReferenceConstructorParameter/vararg.kt new file mode 100644 index 00000000000..ad2169d95d7 --- /dev/null +++ b/idea/testData/inspectionsLocal/selfReferenceConstructorParameter/vararg.kt @@ -0,0 +1,6 @@ +// PROBLEM: none +class Foo(vararg children: Foo) + +fun test() { + Foo() +} \ 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 a5dca070b87..18eaf6c09e0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -11441,6 +11441,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { public void testNullable() throws Exception { runTest("idea/testData/inspectionsLocal/selfReferenceConstructorParameter/nullable.kt"); } + + @TestMetadata("vararg.kt") + public void testVararg() throws Exception { + runTest("idea/testData/inspectionsLocal/selfReferenceConstructorParameter/vararg.kt"); + } } @TestMetadata("idea/testData/inspectionsLocal/setterBackingFieldAssignment")