mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] KTIJ-30904 Fix false positive in KotlinConstantConditionsInspection for qualified constants
GitOrigin-RevId: 116902b3da8b68d3a36c74ecadea341dfa286933
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f7fa4abd8c
commit
14d9bd4852
+4
-11
@@ -31,15 +31,7 @@ import com.intellij.util.ThreeState
|
||||
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.components.KaDiagnosticCheckerFilter
|
||||
import org.jetbrains.kotlin.analysis.api.components.evaluate
|
||||
import org.jetbrains.kotlin.analysis.api.components.expectedType
|
||||
import org.jetbrains.kotlin.analysis.api.components.expressionType
|
||||
import org.jetbrains.kotlin.analysis.api.components.isMarkedNullable
|
||||
import org.jetbrains.kotlin.analysis.api.components.isNothingType
|
||||
import org.jetbrains.kotlin.analysis.api.components.isUsedAsExpression
|
||||
import org.jetbrains.kotlin.analysis.api.components.resolveToCall
|
||||
import org.jetbrains.kotlin.analysis.api.components.resolveToSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.components.*
|
||||
import org.jetbrains.kotlin.analysis.api.resolution.KaFunctionCall
|
||||
import org.jetbrains.kotlin.analysis.api.resolution.singleFunctionCallOrNull
|
||||
import org.jetbrains.kotlin.analysis.api.resolution.symbol
|
||||
@@ -706,8 +698,9 @@ class KotlinConstantConditionsInspection : AbstractKotlinInspection() {
|
||||
|
||||
else -> {}
|
||||
}
|
||||
if (expression is KtSimpleNameExpression) {
|
||||
val target = expression.mainReference.resolve()
|
||||
val targetExpression = (expression as? KtDotQualifiedExpression)?.selectorExpression ?: expression
|
||||
if (targetExpression is KtSimpleNameExpression) {
|
||||
val target = targetExpression.mainReference.resolve()
|
||||
if (target is KtProperty && !target.isVar && target.initializer is KtConstantExpression) {
|
||||
// suppress warnings uses of boolean constant like 'val b = true'
|
||||
return true
|
||||
|
||||
@@ -6,6 +6,15 @@ fun doNotWarnAtZero(x: Int) {
|
||||
if (x > ZERO) return
|
||||
assert(x == ZERO)
|
||||
}
|
||||
|
||||
object Constants {
|
||||
const val FALSE = false
|
||||
}
|
||||
|
||||
fun doNotWarnAtFalse(flag: Boolean?): Boolean {
|
||||
return flag ?: Constants.FALSE
|
||||
}
|
||||
|
||||
fun returnInReturn(a: Boolean, b: Boolean): Boolean {
|
||||
// KTIJ-23768
|
||||
return a || return b
|
||||
|
||||
@@ -6,6 +6,15 @@ fun doNotWarnAtZero(x: Int) {
|
||||
if (x > ZERO) return
|
||||
assert(x == ZERO)
|
||||
}
|
||||
|
||||
object Constants {
|
||||
const val FALSE = false
|
||||
}
|
||||
|
||||
fun doNotWarnAtFalse(flag: Boolean?): Boolean {
|
||||
return flag ?: Constants.FALSE
|
||||
}
|
||||
|
||||
fun returnInReturn(a: Boolean, b: Boolean): Boolean {
|
||||
// KTIJ-23768
|
||||
return a || return b
|
||||
|
||||
Reference in New Issue
Block a user