File tree Expand file tree Collapse file tree 2 files changed +5
-4
lines changed
sonar-kotlin-api/src/main/java/org/sonarsource/kotlin/api/checks
sonar-kotlin-checks/src/main/java/org/sonarsource/kotlin/checks Expand file tree Collapse file tree 2 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ import com.intellij.psi.PsiElement
21
21
import com.intellij.psi.PsiWhiteSpace
22
22
import com.intellij.psi.impl.source.tree.LeafPsiElement
23
23
import com.intellij.psi.util.PsiTreeUtil
24
+ import org.jetbrains.kotlin.analysis.api.KaIdeApi
24
25
import org.jetbrains.kotlin.analysis.api.resolution.KaCall
25
26
import org.jetbrains.kotlin.analysis.api.resolution.KaExplicitReceiverValue
26
27
import org.jetbrains.kotlin.analysis.api.resolution.KaFunctionCall
@@ -883,8 +884,9 @@ fun SensorContext.hasCacheEnabled(): Boolean {
883
884
isCacheEnabled
884
885
}
885
886
886
- fun KtWhenExpression.isExhaustive (context : KotlinFileContext ): Boolean {
887
- return entries.any { it.isElse } || context.bindingContext[BindingContext .EXHAUSTIVE_WHEN , this ] == true
887
+ @OptIn(KaIdeApi ::class )
888
+ fun KtWhenExpression.isExhaustive (): Boolean = withKaSession {
889
+ return entries.any { it.isElse } || computeMissingCases().isEmpty()
888
890
}
889
891
890
892
val PropertyDescriptor .unwrappedGetMethod: FunctionDescriptor ?
Original file line number Diff line number Diff line change @@ -27,7 +27,6 @@ import org.sonarsource.kotlin.api.checks.AbstractCheck
27
27
import org.sonarsource.kotlin.api.checks.isExhaustive
28
28
import org.sonarsource.kotlin.api.frontend.KotlinFileContext
29
29
30
- @org.sonarsource.kotlin.api.frontend.K1only
31
30
@Rule(key = " S6510" )
32
31
class LiftReturnStatementCheck : AbstractCheck () {
33
32
@@ -47,7 +46,7 @@ class LiftReturnStatementCheck : AbstractCheck() {
47
46
isReturnOrReturnBlock(it.expression!! )
48
47
}
49
48
50
- if (isAllBranchesReturn && expression.isExhaustive(context )) {
49
+ if (isAllBranchesReturn && expression.isExhaustive()) {
51
50
reportIssue(expression.whenKeyword, context)
52
51
}
53
52
}
You can’t perform that action at this time.
0 commit comments