Skip to content

Commit d78a7e9

Browse files
committed
SONARKT-400 Migrate StreamNotConsumedCheck to kotlin-analysis-api
1 parent a2e2889 commit d78a7e9

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

sonar-kotlin-checks/src/main/java/org/sonarsource/kotlin/checks/StreamNotConsumedCheck.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
*/
1717
package org.sonarsource.kotlin.checks
1818

19+
import org.jetbrains.kotlin.analysis.api.resolution.KaFunctionCall
1920
import org.jetbrains.kotlin.psi.KtCallExpression
20-
import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsStatement
21-
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
2221
import org.sonar.check.Rule
2322
import org.sonarsource.kotlin.api.checks.CallAbstractCheck
2423
import org.sonarsource.kotlin.api.checks.FunMatcher
2524
import org.sonarsource.kotlin.api.checks.FunMatcherImpl
2625
import org.sonarsource.kotlin.api.frontend.KotlinFileContext
26+
import org.sonarsource.kotlin.api.visiting.withKaSession
2727

2828
private const val STREAM_MESSAGE = "Refactor the code so this stream pipeline is used."
2929

@@ -44,7 +44,6 @@ private val SEQUENCE_MATCHER = FunMatcher(qualifier = "kotlin.sequences") {
4444
)
4545
}
4646

47-
@org.sonarsource.kotlin.api.frontend.K1only
4847
@Rule(key = "S3958")
4948
class StreamNotConsumedCheck : CallAbstractCheck() {
5049

@@ -73,11 +72,11 @@ class StreamNotConsumedCheck : CallAbstractCheck() {
7372

7473
override fun visitFunctionCall(
7574
callExpression: KtCallExpression,
76-
resolvedCall: ResolvedCall<*>,
75+
resolvedCall: KaFunctionCall<*>,
7776
matchedFun: FunMatcherImpl,
7877
kotlinFileContext: KotlinFileContext,
79-
) {
80-
if (callExpression.isUsedAsStatement(kotlinFileContext.bindingContext)) {
78+
) = withKaSession {
79+
if (!callExpression.isUsedAsExpression) {
8180
val message = if (matchedFun == SEQUENCE_MATCHER) SEQUENCE_MESSAGE else STREAM_MESSAGE;
8281
kotlinFileContext.reportIssue(callExpression.calleeExpression!!, message)
8382
}

0 commit comments

Comments
 (0)