From e752dd0a8069e29cf36fcabfb5d04a3e378872c8 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 19 Mar 2015 22:09:06 +0300 Subject: [PATCH] Classified usages in "is" of when entry correctly. #KT-7047 fixed --- .../org/jetbrains/kotlin/idea/findUsages/UsageTypeUtils.kt | 3 ++- .../kotlin/findClassUsages/kotlinClassAllUsages.1.kt | 3 +++ .../kotlin/findClassUsages/kotlinClassAllUsages.results.txt | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/findUsages/UsageTypeUtils.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/findUsages/UsageTypeUtils.kt index e62635c8f20..e0753924c12 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/findUsages/UsageTypeUtils.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/findUsages/UsageTypeUtils.kt @@ -103,7 +103,8 @@ public object UsageTypeUtils { refExpr.getParentOfTypeAndBranch(){ getTypeReference() } != null -> VALUE_PARAMETER_TYPE - refExpr.getParentOfTypeAndBranch(){ getTypeReference() } != null -> + refExpr.getParentOfTypeAndBranch(){ getTypeReference() } != null + || refExpr.getParentOfTypeAndBranch(){ getTypeReference() } != null -> IS with(refExpr.getParentOfTypeAndBranch(){ getRight() }) { diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.1.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.1.kt index 7968f64081a..078d27cf306 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.1.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.1.kt @@ -38,5 +38,8 @@ fun Client.hasNextServer(): Boolean { } fun Any.asServer(): Server? { + when (this) { + is Server -> println("Server!") + } return if (this is Server) this as Server else null } \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.results.txt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.results.txt index f081baf0c12..27afd19aceb 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.results.txt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages.results.txt @@ -11,6 +11,7 @@ Super type qualifier (19: 15) super.work() Supertype (23: 23) companion object: Server() { Supertype (28: 22) object ClientObject: Server() { Supertype (5: 43) class Client(name: String = Server.NAME): Server() { -Target type of 'is' operation (41: 24) return if (this is Server) this as Server else null -Usage in cast target type (41: 40) return if (this is Server) this as Server else null +Target type of 'is' operation (42: 12) is Server -> println("Server!") +Target type of 'is' operation (44: 24) return if (this is Server) this as Server else null +Usage in cast target type (44: 40) return if (this is Server) this as Server else null Usage in import (3: 15) import server.Server