From 5d427d8d2ea722509329fa9d946e58363674039b Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 25 Aug 2016 01:13:05 +0300 Subject: [PATCH] Support for 'as' and temporary support for 'is' --- .../usagesSearch/destructuringDeclarationUsages.kt | 9 +++++++++ .../kotlin/conventions/components/dataClass.2.kt | 11 +++++++++++ .../conventions/components/dataClass.results.txt | 2 ++ 3 files changed, 22 insertions(+) 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 9421de94a79..07ff9a73543 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 @@ -198,6 +198,15 @@ private class Processor( return true } } + + is KtIsExpression -> { + return true //TODO! + } + + is KtBinaryExpressionWithTypeRHS -> { + processSuspiciousExpression(typeRefParent) + return true + } } } diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClass.2.kt b/idea/testData/findUsages/kotlin/conventions/components/dataClass.2.kt index dbea985d1b9..b5f949e2922 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClass.2.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClass.2.kt @@ -20,3 +20,14 @@ fun g() = A() fun h() = g() fun listOfA() = listOf(A(1, "", "")) + +fun x(o: Any) { + if (o is A) { + val (x, y) = o + } +} + +fun y(o: Any) { + val list = o as List + val (x, y) = list[0] +} diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt b/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt index 5c9d69add8c..526015837be 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt @@ -5,6 +5,8 @@ [dataClass.2.kt] Value read 11 val (x3, y3, z3) = h() [dataClass.2.kt] Value read 13 val (x4, y4, z4) = listOfA()[0] [dataClass.2.kt] Value read 15 val (x5, y5, z5) = javaClass.getA()[0] +[dataClass.2.kt] Value read 26 val (x, y) = o +[dataClass.2.kt] Value read 32 val (x, y) = list[0] [dataClass.2.kt] Value read 5 a.n [dataClass.2.kt] Value read 8 val (x, y, z) = a [dataClass.2.kt] Value read 9 val (x1, y1, z1) = f() \ No newline at end of file