Condition of 'if' expression is constant: report enum entries comparison

#KT-28803 Fixed
This commit is contained in:
Toshiaki Kameyama
2018-12-25 12:50:22 +03:00
committed by Mikhail Glukhikh
parent 662c1b6d4a
commit 301b3aad06
26 changed files with 293 additions and 1 deletions
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.A == Enum.A) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,5 @@
package test
enum class Enum {
A, B, C
}
@@ -0,0 +1,5 @@
package test
enum class Enum {
A, B, C
}
@@ -0,0 +1,6 @@
// PROBLEM: Condition is always 'true'
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>test.Enum.A == test.Enum.A) 1 else 2)
}
@@ -0,0 +1,6 @@
// PROBLEM: Condition is always 'true'
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,5 @@
package test
enum class Enum {
A, B, C
}
@@ -0,0 +1,5 @@
package test
enum class Enum {
A, B, C
}
@@ -0,0 +1,8 @@
// PROBLEM: Condition is always 'true'
import test.Enum.*
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>A == A) 1 else 2)
}
@@ -0,0 +1,8 @@
// PROBLEM: Condition is always 'true'
import test.Enum.*
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.B > Enum.A) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.B >= Enum.A) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.B >= Enum.B) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.B < Enum.C) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.B <= Enum.C) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.B <= Enum.B) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'true'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(1)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'false'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(if (<caret>Enum.A != Enum.A) 1 else 2)
}
@@ -0,0 +1,10 @@
// PROBLEM: Condition is always 'false'
enum class Enum {
A, B, C
}
fun foo(x: Int) {}
fun bar() {
foo(2)
}