FIR: Adjust testData for spec tests: type-system
This commit is contained in:
Vendored
+69
@@ -0,0 +1,69 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER
|
||||
// !LANGUAGE: +NewInference
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-100
|
||||
* PLACE: type-system, introduction-1 -> paragraph 6 -> sentence 2
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val x: Int = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2() {
|
||||
val x: Any = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun case_3() {
|
||||
val x: Nothing = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
fun case_4() {
|
||||
var x: Int = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
fun case_5() {
|
||||
var x: Any = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
fun case_6() {
|
||||
var x: Nothing = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
fun case_7() {
|
||||
val x: Int
|
||||
x = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
fun case_8() {
|
||||
var x: Int = 10
|
||||
x = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
fun case_9() {
|
||||
val x = null
|
||||
val y: Int = x
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
fun case_10(x: Int?) {
|
||||
var y = 10
|
||||
y = x
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
fun case_11(x: Int?, y: Int = x) = null
|
||||
Vendored
+101
@@ -0,0 +1,101 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE
|
||||
// !LANGUAGE: +NewInference
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-100
|
||||
* PLACE: type-system, introduction-1 -> paragraph 6 -> sentence 2
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(x: Int = null) {
|
||||
println(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2(x: Any = null) {
|
||||
println(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun case_3(x: Nothing = null) {
|
||||
<!AMBIGUITY!>println<!>(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
class Case4(x: Int = null)
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
class Case5 constructor(x: Any = null)
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
class Case6 {
|
||||
fun foo(x: Nothing = null) {}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
class Case7 {
|
||||
val x: Int get() = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
class Case8 {
|
||||
var x: Any = 0
|
||||
get() = 0
|
||||
set(value) {
|
||||
field = null
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
fun case_9(): Any = null
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
fun case_10(x: Int, y: Boolean): Any = if (y) x else null
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
fun case_11(x: Int, y: Boolean): Any = if (y) x else null
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
class Case12 {
|
||||
val x: Any
|
||||
var y: Any
|
||||
var z: Any
|
||||
init {
|
||||
x = null
|
||||
y = null
|
||||
z = 10
|
||||
z = null
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
open class Case13_1 {
|
||||
open val x: Int = 10
|
||||
}
|
||||
|
||||
class Case13: Case13_1() {
|
||||
override val x = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
abstract class Case14_1 {
|
||||
abstract val x: Int
|
||||
}
|
||||
|
||||
class Case14: Case14_1() {
|
||||
override val x = null
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 15
|
||||
interface Case15_1 {
|
||||
fun foo(): Int = 10
|
||||
}
|
||||
|
||||
class Case15(): Case15_1 {
|
||||
override fun foo() = null
|
||||
}
|
||||
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE
|
||||
// !LANGUAGE: +NewInference
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-100
|
||||
* PLACE: type-system, introduction-1 -> paragraph 6 -> sentence 2
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun <T: Any> case_1(x: T = null) {
|
||||
println(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun <T: K, K: Number> case_2(x: T = null) {
|
||||
println(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun <K: Number> case_3() {
|
||||
class Case4<T: K> (x: T = null)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
fun <T> case_4() {
|
||||
class Case4(x: T = null)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
fun <T, K> case_5(x: T) where T: Number?, K: Number {
|
||||
if (x == null) {
|
||||
class Case5 constructor(y: K = x)
|
||||
}
|
||||
}
|
||||
Vendored
+84
@@ -0,0 +1,84 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER
|
||||
// !LANGUAGE: +NewInference
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-296
|
||||
* PLACE: type-system, introduction-1 -> paragraph 8 -> sentence 1
|
||||
* RELEVANT PLACES: type-system, type-kinds, built-in-types, kotlin.any -> paragraph 1 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
checkSubtype<Any?>(10)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2(x: String) {
|
||||
checkSubtype<Any?>(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
class Case3(val x: String, val y: Any? = checkSubtype<Any?>(x))
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
class Case4(val x: String, val y: Any? = checkSubtype<Any?>(throw Exception()))
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
fun case_5() {
|
||||
checkSubtype<Any?>(return)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
fun case_6() {
|
||||
while (true) {
|
||||
checkSubtype<Any?>(break)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
fun case_7(x: Boolean) {
|
||||
while (x) {
|
||||
checkSubtype<Any?>(continue)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
fun case_8(x: Boolean) {
|
||||
checkSubtype<Any?>({}())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
fun case_9(x: Boolean) {
|
||||
checkSubtype<Any?>(kotlin.Unit)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
fun case_10(x: Boolean) {
|
||||
checkSubtype<Any?>({while (true) {}}())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
fun <T> case_11(x: T) {
|
||||
checkSubtype<Any?>(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
class Case12<K> {
|
||||
inline fun <reified T: K> case_12(x: T) {
|
||||
checkSubtype<Any?>(x)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
class Case13<K> {
|
||||
inline fun <reified T: K> case_12(x: T) {
|
||||
x!!
|
||||
checkSubtype<Any?>(x)
|
||||
}
|
||||
}
|
||||
Vendored
+87
@@ -0,0 +1,87 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNREACHABLE_CODE
|
||||
// !LANGUAGE: +NewInference
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-100
|
||||
* PLACE: type-system, introduction-1 -> paragraph 8 -> sentence 2
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
checkSubtype<Any?>(return)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2(x: Nothing) {
|
||||
checkSubtype<Nothing>(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
class Case3(val x: Any? = checkSubtype<Nothing?>(throw Exception()))
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
class Case4(val x: Nothing, val y: Any? = checkSubtype<Int>(x))
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
fun case_5() {
|
||||
checkSubtype<Unit>(null!!)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
fun <T> case_6() {
|
||||
while (true) {
|
||||
checkSubtype<Comparable<T>>(break)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
fun <T> case_7(x: Boolean) {
|
||||
while (x) {
|
||||
checkSubtype<T>(continue)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
class Case8<K> {
|
||||
inline fun <reified T: K, L: Nothing?> case_12(x: L) {
|
||||
x!!
|
||||
checkSubtype<K>(x)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
inline fun <reified L: Nothing?> case_9(x: L) = x!! as Int
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
fun <K> case_10(x: Nothing) = x as Iterable<K>
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
fun case_11() {
|
||||
return as Nothing?
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
fun case_12() = (throw Exception()) as String
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
fun case_13() = null as Float?
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
inline fun <reified T, K> case_14() {
|
||||
while (true) {
|
||||
break as Map<T, K>
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 15
|
||||
inline fun <reified T> case_15() {
|
||||
while (true) {
|
||||
continue as T
|
||||
}
|
||||
}
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER
|
||||
// !LANGUAGE: +NewInference
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-296
|
||||
* PLACE: type-system, type-kinds, built-in-types, kotlin.any -> paragraph 1 -> sentence 1
|
||||
* RELEVANT PLACES: type-system, introduction-1 -> paragraph 7 -> sentence 1
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
* HELPERS: checkType, functions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
checkSubtype<Any>("")
|
||||
val x: Any = ""
|
||||
funWithAnyArg("")
|
||||
checkSubtype<Any>("""
|
||||
………
|
||||
""")
|
||||
val y: Any = """0"""
|
||||
funWithAnyArg("""
|
||||
=====
|
||||
""".trimIndent())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2() {
|
||||
checkSubtype<Any>(0)
|
||||
fun z(): Any = 0
|
||||
funWithAnyArg(0)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun case_3() {
|
||||
checkSubtype<Any>(-0f)
|
||||
fun z(): Any = -.10000e1
|
||||
funWithAnyArg(10.1)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
fun case_4() {
|
||||
checkSubtype<Any>(throw Exception())
|
||||
var z1: Any = return@case_4
|
||||
while (true) {
|
||||
funWithAnyArg(break)
|
||||
}
|
||||
checkSubtype<Any>(null!!)
|
||||
fun z2(): Any = null!!
|
||||
funWithAnyArg(null!!)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
fun case_5() {
|
||||
checkSubtype<Any>('1')
|
||||
var z: Any = 'a'
|
||||
funWithAnyArg('…')
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
fun case_6() {
|
||||
checkSubtype<Any>({})
|
||||
val z: Any = { x: Any -> println(x) }
|
||||
funWithAnyArg {}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
fun case_7() {
|
||||
checkSubtype<Any>(object {})
|
||||
val z: Any = { x: Any -> object { val y = x } }(10)
|
||||
funWithAnyArg(object : Comparable<Any> {
|
||||
override fun compareTo(other: Any) = TODO()
|
||||
})
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
fun case_8() {
|
||||
checkSubtype<Any>(object {}::class)
|
||||
val z: Any = {}::class
|
||||
funWithAnyArg(0E0::class)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
fun case_9() {
|
||||
checkSubtype<Any>(object {}::class)
|
||||
val z: Any = {}::class
|
||||
funWithAnyArg(0E0::class)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
fun case_10() {
|
||||
checkSubtype<Any>(0 + 0.0)
|
||||
val z: Any = if (true) "" else '"'
|
||||
label@ {
|
||||
funWithAnyArg(return@label)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
fun case_11() {
|
||||
checkSubtype<Any>(Any())
|
||||
val z: Any = if (true) Any() else Any()
|
||||
funWithAnyArg(Any())
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* PLACE: type-system, type-kinds, built-in-types, kotlin.nothing -> paragraph 1 -> sentence 2
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Check of Nothing type
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1(val nothing: Nothing)
|
||||
|
||||
fun case1() {
|
||||
val res = Case1(<!INAPPLICABLE_CANDIDATE!>Nothing<!>())
|
||||
}
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2 {
|
||||
var data: String? = null
|
||||
}
|
||||
|
||||
fun case2(c: Case2) {
|
||||
val testValue = c.data ?: throw IllegalArgumentException("data required")
|
||||
testValue checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Nothing>() }
|
||||
}
|
||||
Reference in New Issue
Block a user