[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:
committed by
Space Team
parent
18b9cf3bc6
commit
8edb1842a5
+7650
File diff suppressed because it is too large
Load Diff
+6
@@ -26,6 +26,12 @@ abstract class AbstractFirDiagnosticTestSpecBase(parser: FirParser) : AbstractFi
|
||||
}
|
||||
|
||||
abstract class AbstractFirPsiDiagnosticTestSpec : AbstractFirDiagnosticTestSpecBase(FirParser.Psi)
|
||||
abstract class AbstractFirLightTreeDiagnosticTestSpec : AbstractFirDiagnosticTestSpecBase(FirParser.LightTree) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.useAdditionalService { LightTreeSyntaxDiagnosticsReporterHolder() }
|
||||
}
|
||||
}
|
||||
|
||||
fun TestConfigurationBuilder.baseFirSpecDiagnosticTestConfiguration(baseDir: String = ".") {
|
||||
defaultDirectives {
|
||||
|
||||
+77
@@ -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
-1
@@ -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)
|
||||
|
||||
Vendored
+2
-1
@@ -1,5 +1,6 @@
|
||||
// !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)
|
||||
@@ -71,4 +72,4 @@ fun case6() {
|
||||
} catch (e: ExcA)<!SYNTAX!><!>
|
||||
catch (e: ExcB) {
|
||||
}
|
||||
}
|
||||
}<!SYNTAX{LT}!><!>
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// !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)
|
||||
|
||||
Vendored
+2
-1
@@ -1,5 +1,6 @@
|
||||
// !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)
|
||||
@@ -33,7 +34,7 @@ fun case2() {
|
||||
throwException()
|
||||
} catch (e: ExcB) {
|
||||
} finally
|
||||
<!SYNTAX!><!>}<!SYNTAX!><!>
|
||||
<!SYNTAX!><!>}<!SYNTAX{PSI}!><!>
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// !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)
|
||||
|
||||
Vendored
+9
-8
@@ -1,5 +1,6 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
@@ -31,8 +32,8 @@ fun case_3() {
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
fun case_4() {
|
||||
val <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T><!> y1: Number where __UNRESOLVED__: __UNRESOLVED__ = 1
|
||||
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T><!> y2: Number where __UNRESOLVED__: __UNRESOLVED__ = 1
|
||||
val <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T><!> y1: Number where <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER{LT}!>__UNRESOLVED__<!>: __UNRESOLVED__ = 1
|
||||
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T><!> y2: Number where <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER{LT}!>__UNRESOLVED__<!>: __UNRESOLVED__ = 1
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
@@ -46,8 +47,8 @@ fun case_5() {
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
*/
|
||||
fun case_6() {
|
||||
val <T : __UNRESOLVED__> (x1, y1) = Pair(1, 2)
|
||||
var <T : __UNRESOLVED__> (x2, y2) = Pair(1, 2)
|
||||
val <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x1, y1) = Pair(1, 2)
|
||||
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x2, y2) = Pair(1, 2)
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -55,8 +56,8 @@ fun case_6() {
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
*/
|
||||
fun case_7() {
|
||||
val <T : __UNRESOLVED__> (x1, y1) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
|
||||
var <T : __UNRESOLVED__> (x2, y2) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
|
||||
val <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x1, y1) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
|
||||
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x2, y2) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
@@ -93,8 +94,8 @@ fun case_12() {
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
fun case_13() {
|
||||
val <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T : <!UNRESOLVED_REFERENCE!>__UNRESOLVED__<!>><!> <!REDECLARATION!>x<!>: Int where __UNRESOLVED__: __UNRESOLVED__
|
||||
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T : <!UNRESOLVED_REFERENCE!>__UNRESOLVED__<!>><!> <!REDECLARATION!>x<!>: Int where __UNRESOLVED__: __UNRESOLVED__
|
||||
val <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T : <!UNRESOLVED_REFERENCE!>__UNRESOLVED__<!>><!> <!REDECLARATION!>x<!>: Int where <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER{LT}!>__UNRESOLVED__<!>: __UNRESOLVED__
|
||||
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS!><T : <!UNRESOLVED_REFERENCE!>__UNRESOLVED__<!>><!> <!REDECLARATION!>x<!>: Int where <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER{LT}!>__UNRESOLVED__<!>: __UNRESOLVED__
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
|
||||
Vendored
+1
@@ -1,5 +1,6 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.spec.utils.GeneralConfiguration.SPEC_TEST_PATH
|
||||
import org.jetbrains.kotlin.spec.utils.GeneralConfiguration.TESTS_MAP_FILENAME
|
||||
import org.jetbrains.kotlin.spec.utils.SectionsJsonMapGenerator
|
||||
import org.jetbrains.kotlin.spec.utils.TestsJsonMapGenerator
|
||||
import org.jetbrains.kotlin.test.runners.AbstractFirLightTreeDiagnosticTestSpec
|
||||
import org.jetbrains.kotlin.test.runners.AbstractFirPsiDiagnosticTestSpec
|
||||
import org.jetbrains.kotlin.test.utils.CUSTOM_TEST_DATA_EXTENSION_PATTERN
|
||||
import java.io.File
|
||||
@@ -72,6 +73,13 @@ fun generateTests() {
|
||||
excludedPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN
|
||||
)
|
||||
}
|
||||
testClass<AbstractFirLightTreeDiagnosticTestSpec> {
|
||||
model(
|
||||
"diagnostics",
|
||||
excludeDirs = listOf("helpers") + detectDirsWithTestsMapFileOnly("diagnostics"),
|
||||
excludedPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user