FIR checker: support DUPLICATE_LABEL_IN_WHEN
Changes from FE1.0: 1. As discussed previously, no expression evaluation happens during this check. 2. FE1.0 doesn't check redundant object comparisons.
This commit is contained in:
committed by
Mikhail Glukhikh
parent
7c6326856b
commit
4915d8dda3
Vendored
+4
-4
@@ -26,7 +26,7 @@ fun case1() {
|
||||
val z = JavaEnum.Val_1
|
||||
val when2 = <!NO_ELSE_IN_WHEN!>when<!> (z) {
|
||||
JavaEnum.Val_1 -> { }
|
||||
JavaEnum.Val_1 -> { }
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>JavaEnum.Val_1<!> -> { }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -37,7 +37,7 @@ fun case2() {
|
||||
val b = false
|
||||
val when2: Any = <!NO_ELSE_IN_WHEN!>when<!> (b) {
|
||||
false -> { }
|
||||
false -> { }
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>false<!> -> { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ fun case3() {
|
||||
val a = false
|
||||
val when2: Any = <!NO_ELSE_IN_WHEN!>when<!> (a) {
|
||||
true -> { }
|
||||
true -> { }
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>true<!> -> { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ fun case4() {
|
||||
val when2 = <!NO_ELSE_IN_WHEN!>when<!> (x){
|
||||
is SClass.A ->{ }
|
||||
is SClass.B ->{ }
|
||||
is SClass.B ->{ }
|
||||
is <!DUPLICATE_LABEL_IN_WHEN!>SClass.B<!> ->{ }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+4
-4
@@ -37,7 +37,7 @@ fun case1() {
|
||||
val when3 = when (z) {
|
||||
JavaEnum.Val_1 -> { }
|
||||
JavaEnum.Val_2 -> { }
|
||||
JavaEnum.Val_2 -> { }
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>JavaEnum.Val_2<!> -> { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ fun case2() {
|
||||
}
|
||||
val when3: Any = <!NO_ELSE_IN_WHEN!>when<!> (b) {
|
||||
false -> { }
|
||||
false -> { }
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>false<!> -> { }
|
||||
!false -> { }
|
||||
}
|
||||
}
|
||||
@@ -78,7 +78,7 @@ fun case3() {
|
||||
val when3: Any = when (a) {
|
||||
true -> { }
|
||||
false -> { }
|
||||
false -> { }
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>false<!> -> { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ fun case4() {
|
||||
val when3 = when (x){
|
||||
is SClass.A ->{ }
|
||||
is SClass.B ->{ }
|
||||
is SClass.B ->{ }
|
||||
is <!DUPLICATE_LABEL_IN_WHEN!>SClass.B<!> ->{ }
|
||||
is SClass.C ->{ }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user