diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/destructuringDeclarationUsages.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/destructuringDeclarationUsages.kt index 4d912b1ba2f..11fbb19ee26 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/destructuringDeclarationUsages.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/destructuringDeclarationUsages.kt @@ -257,6 +257,12 @@ private class Processor( return true } } + + is KtContainerNode -> { + if (parent.node.elementType == KtNodeTypes.LABEL_QUALIFIER) { + return true // this@ClassName - it will be handled anyway because members and extensions are processed with plain search + } + } } if (element.getStrictParentOfType() != null) return true // ignore usage in import diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt b/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt index b2f8e1e83ae..314e81f6282 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt @@ -2,7 +2,13 @@ // OPTIONS: usages package pack -data class A(val n: Int, val s: String, val o: Any) +data class A(val n: Int, val s: String, val o: Any) { + fun f() { + "a".apply { + this@A.toString() + } + } +} fun A.ext1() { val (x, y) = getThis() diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt b/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt index 0b2e7cce5cd..9b30d96c0b5 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt @@ -1,5 +1,5 @@ -[dataClass.0.kt] Value read 16 val (x, y) = get(0) -[dataClass.0.kt] Value read 8 val (x, y) = getThis() +[dataClass.0.kt] Value read 14 val (x, y) = getThis() +[dataClass.0.kt] Value read 22 val (x, y) = get(0) [dataClass.1.kt] Value read 4 for ((x, y, z) in arrayOf()) { [dataClass.1.kt] Value read 8 val (x, y) = a [dataClass.2.kt] Function call 6 a.component1()