Add spec tests for 'Type system' (introduction and 'kotlin.Any' type)
This commit is contained in:
+3
-2
@@ -1,9 +1,10 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-draft
|
||||
* PLACE: type-system, introduction -> paragraph 5 -> sentence 2
|
||||
* SPEC VERSION: 0.1-100
|
||||
* PLACE: type-system, introduction-1 -> paragraph 5 -> sentence 2
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
* NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"5": {
|
||||
"pos": {
|
||||
"2": [
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 0,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-draft
|
||||
* PLACE: type-system, introduction -> paragraph 5 -> sentence 2
|
||||
* 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.
|
||||
*/
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-draft
|
||||
* PLACE: type-system, introduction -> paragraph 5 -> sentence 2
|
||||
* 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.
|
||||
*/
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-draft
|
||||
* PLACE: type-system, introduction -> paragraph 5 -> sentence 2
|
||||
* 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.
|
||||
*/
|
||||
+3
-3
@@ -5,9 +5,9 @@
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-draft
|
||||
* PLACE: type-system, introduction -> paragraph 7 -> sentence 1
|
||||
* RELEVANT PLACES: expressions, constant-literals, real-literals -> paragraph 1 -> sentence 1
|
||||
* SPEC VERSION: 0.1-100
|
||||
* 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
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-draft
|
||||
* PLACE: type-system, introduction -> paragraph 7 -> sentence 2
|
||||
* 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
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"7": {
|
||||
"pos": {
|
||||
"1": [
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 11,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
},
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 9,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"neg": {
|
||||
"2": [
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 11,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
},
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 5,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
},
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 15,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"pos": {
|
||||
"2": [
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 15,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
}
|
||||
],
|
||||
"1": [
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 13,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
// !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-100
|
||||
* 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: 1
|
||||
* DESCRIPTION: The use of Boolean literals as the identifier (with backtick) in the class.
|
||||
* HELPERS: checkType, functions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1
|
||||
|
||||
fun case_1(x: Case1) {
|
||||
checkSubtype<Any>(x)
|
||||
val z: Any = Case1()
|
||||
funWithAnyArg(Case1())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
interface Case2
|
||||
|
||||
fun case_2(x: Case2) {
|
||||
checkSubtype<Any>(x)
|
||||
fun z(): Any = x
|
||||
funWithAnyArg(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
data class Case3(val x: Int)
|
||||
val case_3_1: Any = Case3(11)
|
||||
|
||||
fun case_3(x: Case3) {
|
||||
checkSubtype<Any>(x)
|
||||
funWithAnyArg(Case3(10))
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
sealed class Case4
|
||||
|
||||
fun case_4(x: Case4) {
|
||||
checkSubtype<Any>(x)
|
||||
funWithAnyArg(x)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
annotation class Case5 {
|
||||
class Case5 {}
|
||||
}
|
||||
|
||||
fun case_5(x: Case5, y: Case5.Case5) {
|
||||
checkSubtype<Any>(x)
|
||||
checkSubtype<Any>(y)
|
||||
val z1: Any = x
|
||||
val z2: Any = y
|
||||
funWithAnyArg(x)
|
||||
funWithAnyArg(Case5.Case5())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
enum class Case6 {TEST;
|
||||
inner class Case6 {}
|
||||
}
|
||||
val case_6_1: Any = Case6.TEST.Case6()
|
||||
|
||||
fun case_6(x: Case6.Case6) {
|
||||
checkSubtype<Any>(x)
|
||||
funWithAnyArg(case_6_1)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
enum class Case7 {;
|
||||
data class Case7(val x: Int) {}
|
||||
}
|
||||
|
||||
fun case_7(x: Case7.Case7) {
|
||||
checkSubtype<Any>(x)
|
||||
val z: Any = Case7.Case7(10)
|
||||
funWithAnyArg(Case7.Case7(10))
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
enum class Case8 {;
|
||||
data class Case8(val x: Int) {}
|
||||
}
|
||||
|
||||
typealias Case8_1 = Case8.Case8
|
||||
|
||||
fun case_8(x: Case8_1) {
|
||||
checkSubtype<Any>(x)
|
||||
val z: Any = Case8_1(10)
|
||||
funWithAnyArg(Case8_1(10))
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
interface Case9 {;
|
||||
data class Case9(val x: Int) {
|
||||
interface Case9
|
||||
}
|
||||
}
|
||||
|
||||
val case_9_1: Any = object : Case9.Case9.Case9 {}
|
||||
fun case_9(x: Case9.Case9.Case9) {
|
||||
checkSubtype<Any>(x)
|
||||
funWithAnyArg(object : Case9.Case9.Case9 {})
|
||||
}
|
||||
+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-100
|
||||
* 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() {
|
||||
<!UNREACHABLE_CODE!>checkSubtype<Any>(<!>throw Exception()<!UNREACHABLE_CODE!>)<!>
|
||||
<!UNREACHABLE_CODE!>var z1: Any = return@case_4<!>
|
||||
<!UNREACHABLE_CODE!>while (true) {
|
||||
funWithAnyArg(break)
|
||||
}<!>
|
||||
<!UNREACHABLE_CODE!>checkSubtype<Any>(null!!)<!>
|
||||
<!UNREACHABLE_CODE!>fun z2(): Any = null!!<!>
|
||||
<!UNREACHABLE_CODE!>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@ <!UNUSED_LAMBDA_EXPRESSION!>{
|
||||
<!UNREACHABLE_CODE!>funWithAnyArg(<!>return@label<!UNREACHABLE_CODE!>)<!>
|
||||
}<!>
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
fun case_11() {
|
||||
checkSubtype<Any>(Any())
|
||||
val z: Any = if (true) Any() else Any()
|
||||
funWithAnyArg(Any())
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"1": {
|
||||
"pos": {
|
||||
"1": [
|
||||
{
|
||||
"specVersion": "0.1-100",
|
||||
"casesNumber": 13,
|
||||
"description": "The use of Boolean literals as the identifier (with backtick) in the class.",
|
||||
"unexpectedBehaviour": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* This file is generated by {@link org.jetbrains.kotlin.spec.tasks.generateTests}. DO NOT MODIFY MANUALLY.
|
||||
* This file is used in the HTML version of the Kotlin Specification (https://kotlin.github.io/kotlin-spec) to show tests coverage for sentences.
|
||||
*
|
||||
* Content format:
|
||||
*
|
||||
* {paragraphNumber}
|
||||
* {testType: neg|pos}: {sentenceNumber}-{numberOfTests|testPathToAnotherSection}, ...
|
||||
*/
|
||||
|
||||
1
|
||||
pos: 1-2, 1-type-system/introduction-1/7/pos/1.1.kt
|
||||
Reference in New Issue
Block a user