[Spec tests] Add spec tests for kotlin.Nothing, kotlin.Unit, reference equality and cast expressions
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* PLACE: expressions, equality-expressions, reference-equality-expressions -> paragraph 1 -> sentence 2
|
||||
* RELEVANT PLACES: expressions, built-in-types-and-their-semantics, kotlin.unit -> paragraph 1 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: check if two values are equal (===) by reference
|
||||
*/
|
||||
|
||||
fun box(): String {
|
||||
val u1 = foo1()
|
||||
val u2 = foo2()
|
||||
if (u1 === u2) {
|
||||
return ("OK")
|
||||
}
|
||||
return ("NOK")
|
||||
}
|
||||
|
||||
fun foo1() {
|
||||
return Unit
|
||||
}
|
||||
|
||||
fun foo2(): Unit {
|
||||
return Unit
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* PLACE: expressions, equality-expressions, reference-equality-expressions -> paragraph 1 -> sentence 2
|
||||
* RELEVANT PLACES: expressions, built-in-types-and-their-semantics, kotlin.unit -> paragraph 1 -> sentence 1,
|
||||
* expressions, equality-expressions, reference-equality-expressions -> paragraph 3 -> sentence 3
|
||||
* expressions, equality-expressions, reference-equality-expressions -> paragraph 2 -> sentence 1
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: check if two values are equal (===) by reference
|
||||
*/
|
||||
|
||||
fun box(): String {
|
||||
val u1 = "foo"
|
||||
val u2 = "foo"
|
||||
if (u1 === u2) {
|
||||
return ("OK")
|
||||
}
|
||||
return ("NOK")
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* PLACE: expressions, equality-expressions, reference-equality-expressions -> paragraph 1 -> sentence 2
|
||||
* RELEVANT PLACES: expressions, built-in-types-and-their-semantics, kotlin.unit -> paragraph 1 -> sentence 1
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: check if two values are non-equal (!==) by reference
|
||||
*/
|
||||
|
||||
fun box(): String {
|
||||
val u1 = "boo"
|
||||
val u2 = "foo"
|
||||
if (u1 !== u2) {
|
||||
return ("OK")
|
||||
}
|
||||
return ("NOK")
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* PLACE: expressions, equality-expressions, reference-equality-expressions -> paragraph 1 -> sentence 2
|
||||
* RELEVANT PLACES: expressions, built-in-types-and-their-semantics, kotlin.unit -> paragraph 1 -> sentence 1
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: check if values are non-equal (!==) by reference
|
||||
*/
|
||||
|
||||
fun box(): String {
|
||||
val u1 = "foo"
|
||||
val byteArray = "foo".toByteArray(Charsets.UTF_8)
|
||||
val u2 = byteArray.toString()
|
||||
val u3 = byteArray.toString()
|
||||
if (u1 !== u2 && u1 !== u3 && u2 !== u3 &&
|
||||
u2 !== u1 && u3 !== u1 && u3 !== u2
|
||||
) {
|
||||
return ("OK")
|
||||
}
|
||||
return ("NOK")
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* PLACE: expressions, equality-expressions, reference-equality-expressions -> paragraph 1 -> sentence 2
|
||||
* RELEVANT PLACES: expressions, built-in-types-and-their-semantics, kotlin.unit -> paragraph 1 -> sentence 1
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: two values are equal (===) or non-equal (!==) by reference
|
||||
*/
|
||||
|
||||
fun box(): String {
|
||||
val c1 = c
|
||||
val c2 = c
|
||||
val v1 = v
|
||||
val v2 = v
|
||||
if (c2 === c1 && c1 === c2 && c1 === c && c2 === c &&
|
||||
v2 === v1 && v1 === v2 && v1 === v && v2 === v &&
|
||||
v2 === c1 && v1 === c2 && v1 === c && v2 === c &&
|
||||
c2 === v1 && c1 === v2 && c1 === v && c2 === v
|
||||
) {
|
||||
return ("OK")
|
||||
}
|
||||
return ("NOK")
|
||||
}
|
||||
|
||||
const val c = 1000
|
||||
const val v = 1000
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* PLACE: expressions, equality-expressions, reference-equality-expressions -> paragraph 1 -> sentence 3
|
||||
* RELEVANT PLACES: expressions, built-in-types-and-their-semantics, kotlin.unit -> paragraph 1 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: check equallity by refference via constructor
|
||||
*/
|
||||
|
||||
fun box(): String {
|
||||
val u2 = mutableListOf<Int>(1, 2, 3)
|
||||
val u3 = u1
|
||||
if (u1 !== u2 && u1 === u3
|
||||
) {
|
||||
return ("OK")
|
||||
}
|
||||
return ("NOK")
|
||||
}
|
||||
|
||||
val u1 = mutableListOf<Int>(1, 2, 3)
|
||||
|
||||
Reference in New Issue
Block a user