[Tests] Add spec tests in FIR + LightTree configuration

In some tests PSI and LT differ. Test data was fixed accordingly.

In the following tests I consider that difference is acceptable:
- compiler/tests-spec/testData/diagnostics/linked/expressions/try-expression/p-1/neg/3.1.kt
- compiler/tests-spec/testData/diagnostics/linked/expressions/try-expression/p-1/neg/4.1.kt

This is because:
- It only happens when recovering from syntax errors happened above in
code. I was unable to reproduce it in valid code.
- It doesn't break parsing further, the rest of the errors in file are
reported identically.

The rest of the tests will be fixed in subsequent commits.

^KT-62704 Fixed
This commit is contained in:
Roman Efremov
2024-01-25 17:06:57 +01:00
committed by Space Team
parent 18b9cf3bc6
commit 8edb1842a5
11 changed files with 7758 additions and 11 deletions
@@ -0,0 +1,77 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// COMPARE_WITH_LIGHT_TREE
/*
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-213
* MAIN LINK: declarations, classifier-declaration, class-declaration, abstract-classes -> paragraph 2 -> sentence 1
* NUMBER: 3
* DESCRIPTION: attempt to implement abstract members with invalid types
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package testPackCase1
abstract class Base {
abstract val a: CharSequence
abstract var b: CharSequence
abstract fun foo(): CharSequence
}
class Case1 : Base() {
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Any<!>
{
return ""
}
override val a: <!PROPERTY_TYPE_MISMATCH_ON_OVERRIDE!>Any?<!>
get() = TODO()
override var b: <!VAR_TYPE_MISMATCH_ON_OVERRIDE!>String<!>
get() = TODO()
set(value)
{}
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package testPackCase2
abstract class Base {
abstract val a: CharSequence
abstract var b: CharSequence
abstract fun foo(): CharSequence
}
class Case2(override val a: String, <!VAR_TYPE_MISMATCH_ON_OVERRIDE{LT}!>override var b: <!VAR_TYPE_MISMATCH_ON_OVERRIDE{PSI}!>String<!><!>) : Base() {
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>CharSequence?<!> {
return ""
}
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package testPackCase3
abstract class Base {
abstract val a: CharSequence
abstract var b: CharSequence
abstract fun foo(): CharSequence
}
class Case3 {
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class ImplBase1<!> : MainClass.Base1() {}
}
class MainClass {
abstract class Base1() {
abstract val a: CharSequence
abstract var b: CharSequence
abstract fun foo(): CharSequence
}
}
@@ -1,6 +1,6 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// COMPARE_WITH_LIGHT_TREE
/*
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)