diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt index 73705b84a94..eaf4e965e43 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/RemoveRedundantQualifierNameInspection.kt @@ -59,7 +59,7 @@ class RemoveRedundantQualifierNameInspection : AbstractKotlinInspection(), Clean } private tailrec fun KtDotQualifiedExpression.firstExpressionWithoutReceiver(): KtDotQualifiedExpression? = - if ((getQualifiedElementSelector()?.mainReference?.resolve() as? KtFunction)?.receiverTypeReference == null) this + if ((getQualifiedElementSelector()?.mainReference?.resolve() as? KtCallableDeclaration)?.receiverTypeReference == null) this else (receiverExpression as? KtDotQualifiedExpression)?.firstExpressionWithoutReceiver() private tailrec fun T.firstApplicableExpression(validator: T.() -> T?, generator: T.() -> T?): T? = diff --git a/idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiverProperty.kt b/idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiverProperty.kt new file mode 100644 index 00000000000..7f052056b2d --- /dev/null +++ b/idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiverProperty.kt @@ -0,0 +1,11 @@ +package inspector.p30879 +import inspector.p30879.C.G + +val T.letVar: Int; get() = 0 + +fun test() { + C.G.letVar +} + +class B { object G } +class C { object G } diff --git a/idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiverProperty.kt.after b/idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiverProperty.kt.after new file mode 100644 index 00000000000..e8b3275addc --- /dev/null +++ b/idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiverProperty.kt.after @@ -0,0 +1,11 @@ +package inspector.p30879 +import inspector.p30879.C.G + +val T.letVar: Int; get() = 0 + +fun test() { + G.letVar +} + +class B { object G } +class C { object G } diff --git a/idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableAsReceiverProperty.kt b/idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableAsReceiverProperty.kt new file mode 100644 index 00000000000..d7c50ad1bf9 --- /dev/null +++ b/idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableAsReceiverProperty.kt @@ -0,0 +1,13 @@ +// PROBLEM: none + +package inspector.p30879 +import inspector.p30879.B.G + +val T.letVar: Int; get() = 0 + +fun test() { + C.G.letVar +} + +class B { object G } +class C { object G } diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index c54aff720c2..a16d6288a45 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -6275,6 +6275,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiver.kt"); } + @TestMetadata("asReceiverProperty.kt") + public void testAsReceiverProperty() throws Exception { + runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/asReceiverProperty.kt"); + } + @TestMetadata("companionCollision.kt") public void testCompanionCollision() throws Exception { runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/companionCollision.kt"); @@ -6400,6 +6405,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableAsReceiver.kt"); } + @TestMetadata("notApplicableAsReceiverProperty.kt") + public void testNotApplicableAsReceiverProperty() throws Exception { + runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableAsReceiverProperty.kt"); + } + @TestMetadata("notApplicableCollisionTopLevelClass.kt") public void testNotApplicableCollisionTopLevelClass() throws Exception { runTest("idea/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableCollisionTopLevelClass.kt");