Introduce FIR_IDENTICAL for FIR vs old frontend tests #KT-36879 Fixed
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
fun foo(a: Int) {
|
||||
@ann
|
||||
when (a) {
|
||||
1 -> {}
|
||||
}
|
||||
}
|
||||
|
||||
annotation class ann
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun foo(a: Int) {
|
||||
@ann
|
||||
when (a) {
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
// EA-68871: empty when condition
|
||||
fun foo(arg: Int): Int {
|
||||
when (arg) {
|
||||
0 -> return 0
|
||||
<!SYNTAX!><!>-> return 4
|
||||
else -> return -1
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// EA-68871: empty when condition
|
||||
fun foo(arg: Int): Int {
|
||||
when (arg) {
|
||||
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
// EA-68871: empty when condition
|
||||
enum class My { FIRST, SECOND }
|
||||
fun foo(arg: My): Int {
|
||||
when (arg) {
|
||||
My.FIRST -> return 0
|
||||
<!SYNTAX!><!>-> return 4
|
||||
else -> return -1
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// EA-68871: empty when condition
|
||||
enum class My { FIRST, SECOND }
|
||||
fun foo(arg: My): Int {
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
// See also: KT-3743
|
||||
fun foo(arg: Boolean): String {
|
||||
// Must be exhaustive
|
||||
return when(arg) {
|
||||
true -> "truth"
|
||||
false -> "falsehood"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See also: KT-3743
|
||||
fun foo(arg: Boolean): String {
|
||||
// Must be exhaustive
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
fun foo(arg: Boolean): String {
|
||||
// Must be exhaustive
|
||||
return when(arg) {
|
||||
(true) -> "truth"
|
||||
((false)) -> "falsehood"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun foo(arg: Boolean): String {
|
||||
// Must be exhaustive
|
||||
return when(arg) {
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
// See also: KT-3743
|
||||
fun foo(arg: Boolean): String {
|
||||
// Must be exhaustive
|
||||
return when(arg) {
|
||||
2 == 2 -> "truth"
|
||||
2 == 1 -> "falsehood"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See also: KT-3743
|
||||
fun foo(arg: Boolean): String {
|
||||
// Must be exhaustive
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
// See also: KT-3743
|
||||
fun foo(arg: Boolean?): String {
|
||||
// Must be exhaustive
|
||||
return when(arg) {
|
||||
true -> "truth"
|
||||
false -> "falsehood"
|
||||
null -> "unknown"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See also: KT-3743
|
||||
fun foo(arg: Boolean?): String {
|
||||
// Must be exhaustive
|
||||
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
// See KT-6399: exhaustive whens on platform enums
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
public enum J {
|
||||
A, B;
|
||||
|
||||
@NotNull public static J create() {
|
||||
return J.A;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: K.kt
|
||||
|
||||
fun foo(): Int {
|
||||
// When is exhaustive (count a platform enum as a special case)
|
||||
return when (J.create()) {
|
||||
J.A -> 1
|
||||
J.B -> 2
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See KT-6399: exhaustive whens on platform enums
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
// See KT-6399: exhaustive whens on platform enums
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
public enum J {
|
||||
A, B;
|
||||
|
||||
public static J create() {
|
||||
return J.A;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: K.kt
|
||||
|
||||
fun foo(): Int {
|
||||
return when (J.create()) {
|
||||
J.A -> 1
|
||||
J.B -> 2
|
||||
else -> 0
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See KT-6399: exhaustive whens on platform enums
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
// See KT-6399: exhaustive whens on platform enums
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
public enum J {
|
||||
A, B;
|
||||
|
||||
public static J create() {
|
||||
return J.A;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: K.kt
|
||||
|
||||
fun foo(): Int {
|
||||
// When is exhaustive including null
|
||||
return when (J.create()) {
|
||||
J.A -> 1
|
||||
J.B -> 2
|
||||
null -> 0
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See KT-6399: exhaustive whens on platform enums
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
fun foo(x: Int) {
|
||||
when (x) {
|
||||
2 -> {}
|
||||
3 -> {}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun foo(x: Int) {
|
||||
when (x) {
|
||||
2 -> {}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
// Base for KT-6227
|
||||
enum class X { A, B, C, D }
|
||||
|
||||
fun foo(arg: X): String {
|
||||
val res: String
|
||||
when (arg) {
|
||||
X.A -> res = "A"
|
||||
X.B -> res = "B"
|
||||
else -> res = "CD"
|
||||
}
|
||||
return res
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// Base for KT-6227
|
||||
enum class X { A, B, C, D }
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
// Base for KT-6227
|
||||
enum class X { A, B, C, D }
|
||||
|
||||
fun foo(arg: X?): String {
|
||||
var res = "XXX"
|
||||
// Should we report something here? Probably not, null is not an enum entry
|
||||
when (arg) {
|
||||
X.A -> res = "A"
|
||||
X.B -> res = "B"
|
||||
X.C -> res = "C"
|
||||
X.D -> res = "D"
|
||||
}
|
||||
return res
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// Base for KT-6227
|
||||
enum class X { A, B, C, D }
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
interface Maybe<T>
|
||||
class Some<T>(val value: T) : Maybe<T>
|
||||
class None<T> : Maybe<T>
|
||||
|
||||
fun <T> none() : None<T> = TODO()
|
||||
|
||||
fun test1() : Maybe<String?> = if (true) none() else Some("")
|
||||
|
||||
fun test2() : Maybe<String?> = when {
|
||||
true -> none()
|
||||
else -> Some("")
|
||||
}
|
||||
|
||||
fun test3() : Maybe<String?> = when {
|
||||
true -> none()
|
||||
else -> Some<String?>("")
|
||||
}
|
||||
|
||||
fun test4() : Maybe<String?> {
|
||||
when ("") {
|
||||
"a" -> return none()
|
||||
else -> return Some<String?>("")
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
interface Maybe<T>
|
||||
class Some<T>(val value: T) : Maybe<T>
|
||||
class None<T> : Maybe<T>
|
||||
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
fun foo(): Any = 42
|
||||
|
||||
fun test(x: Any) {
|
||||
val z1 = when (val y = foo()) {
|
||||
42 -> "Magic: $y, $x"
|
||||
else -> {
|
||||
"Not magic: $y, $x"
|
||||
}
|
||||
}
|
||||
val z2 = "Anyway, it was $<!UNRESOLVED_REFERENCE!>y<!>"
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
|
||||
|
||||
fun testNoSubjectVariableName(x: Int?) {
|
||||
val y = when (val<!SYNTAX!><!> = 42) {
|
||||
0 -> "0"
|
||||
else -> "not 0"
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
|
||||
fun test(data: String) =
|
||||
when (data.length) {
|
||||
0 -> -1
|
||||
else -> 42
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
|
||||
fun test(data: String) =
|
||||
|
||||
Vendored
-8
@@ -1,8 +0,0 @@
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
|
||||
fun test(x: Any) {
|
||||
when (val y = x) {
|
||||
is String -> {}
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
|
||||
|
||||
Reference in New Issue
Block a user