[FE 1.0] Support proper DUPLICATE_LABEL_IN_WHEN reporting for deprecated complex boolean expressions

^KT-50385
^KT-39883
This commit is contained in:
Dmitriy Novozhilov
2021-12-19 22:43:42 +03:00
committed by teamcity
parent eb753eac83
commit 8a58e98530
12 changed files with 162 additions and 12 deletions
@@ -0,0 +1,20 @@
// LANGUAGE: -ProhibitSimplificationOfNonTrivialConstBooleanExpressions
const val myF = false
const val myT = true
fun test(someBoolean: Boolean) {
val s = when (someBoolean) {
<!CONFUSING_BRANCH_CONDITION_WARNING!>true || true<!> -> 1
<!CONFUSING_BRANCH_CONDITION_WARNING!>false && false<!> -> 2
true -> 3
false -> 4
}
}
fun test_2(someBoolean: Boolean) {
val s = <!NO_ELSE_IN_WHEN!>when<!> (someBoolean) {
<!CONFUSING_BRANCH_CONDITION_WARNING!>true || true<!> -> 1
<!CONFUSING_BRANCH_CONDITION_WARNING!>false && false<!> -> 2
}
}
@@ -0,0 +1,20 @@
// LANGUAGE: -ProhibitSimplificationOfNonTrivialConstBooleanExpressions
const val myF = false
const val myT = true
fun test(someBoolean: Boolean) {
val s = when (someBoolean) {
<!CONFUSING_BRANCH_CONDITION_WARNING, DUPLICATE_LABEL_IN_WHEN, NON_TRIVIAL_BOOLEAN_CONSTANT!>true || true<!> -> 1
<!CONFUSING_BRANCH_CONDITION_WARNING, DUPLICATE_LABEL_IN_WHEN, NON_TRIVIAL_BOOLEAN_CONSTANT!>false && false<!> -> 2
true -> 3
false -> 4
}
}
fun test_2(someBoolean: Boolean) {
val s = when (someBoolean) {
<!CONFUSING_BRANCH_CONDITION_WARNING, NON_TRIVIAL_BOOLEAN_CONSTANT!>true || true<!> -> 1
<!CONFUSING_BRANCH_CONDITION_WARNING, NON_TRIVIAL_BOOLEAN_CONSTANT!>false && false<!> -> 2
}
}
@@ -0,0 +1,7 @@
package
public const val myF: kotlin.Boolean = false
public const val myT: kotlin.Boolean = true
public fun test(/*0*/ someBoolean: kotlin.Boolean): kotlin.Unit
public fun test_2(/*0*/ someBoolean: kotlin.Boolean): kotlin.Unit
@@ -0,0 +1,21 @@
// FIR_IDENTICAL
// LANGUAGE: +ProhibitSimplificationOfNonTrivialConstBooleanExpressions
const val myF = false
const val myT = true
fun test(someBoolean: Boolean) {
val s = when (someBoolean) {
<!CONFUSING_BRANCH_CONDITION_WARNING!>true || true<!> -> 1
<!CONFUSING_BRANCH_CONDITION_WARNING!>false && false<!> -> 2
true -> 3
false -> 4
}
}
fun test_2(someBoolean: Boolean) {
val s = <!NO_ELSE_IN_WHEN!>when<!> (someBoolean) {
<!CONFUSING_BRANCH_CONDITION_WARNING!>true || true<!> -> 1
<!CONFUSING_BRANCH_CONDITION_WARNING!>false && false<!> -> 2
}
}
@@ -0,0 +1,7 @@
package
public const val myF: kotlin.Boolean = false
public const val myT: kotlin.Boolean = true
public fun test(/*0*/ someBoolean: kotlin.Boolean): kotlin.Unit
public fun test_2(/*0*/ someBoolean: kotlin.Boolean): kotlin.Unit