[FIR] Fix TEST SPEC tests

Ensure the test data contents for both the frontends
are identical. This is needed for proper analysis of
K2-differences.
This commit is contained in:
Nikolay Lunyak
2023-06-12 15:20:46 +03:00
committed by Space Team
parent e6633d3d92
commit 7541732752
583 changed files with 4053 additions and 5418 deletions
@@ -1,6 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 1
* DESCRIPTION: Smartcasts using Returns effects with simple type checking, not-null conditions and custom condition (condition for smartcast outside contract).
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
fun case_1(value_1: Any?) {
funWithReturns(value_1 !is String)
@@ -10,14 +19,14 @@ fun case_1(value_1: Any?) {
// TESTCASE NUMBER: 2
fun case_2(value_1: Int?) {
funWithReturnsAndInvertCondition(value_1 != null)
println(value_1.inc()) // inc resolves to compiler/tests-spec/testData/diagnostics/helpers/classes.kt which accepts `Class?`
println(value_1.inc())
println(value_1<!UNSAFE_CALL!>.<!>unaryPlus())
}
// TESTCASE NUMBER: 3
fun case_3(value_1: Int?) {
funWithReturns(value_1 == null)
println(value_1.inc()) // inc resolves to compiler/tests-spec/testData/diagnostics/helpers/classes.kt which accepts `Class?`
println(value_1.inc())
println(value_1<!UNSAFE_CALL!>.<!>unaryPlus())
}
@@ -45,7 +54,7 @@ object case_7_object {
}
fun case_7() {
funWithReturns(case_7_object.prop_1 == null)
case_7_object.prop_1.inc() // inc resolves to compiler/tests-spec/testData/diagnostics/helpers/classes.kt which accepts `Class?`
case_7_object.prop_1.inc()
}
// TESTCASE NUMBER: 8
@@ -1,5 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 10
* DESCRIPTION: Check smartcasts using double negation (returnsFalse/invert type checking/not operator).
* ISSUES: KT-26176
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,14 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 11
* DESCRIPTION: Smartcast using many of the various Returns effects on the same values.
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 12
* DESCRIPTION: Check smartcast to upper bound of the types in disjunction.
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-1982
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,14 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 13
* DESCRIPTION: Smartcast using many of the various Returns effects on the same values.
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,14 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 14
* DESCRIPTION: Smartcast using many of the various Returns effects on the same values.
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 15
* DESCRIPTION: Check smartcasts working if type checking for contract function is used
* ISSUES: KT-27241
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -1,6 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 2
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions outside contract (custom condition).
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
fun case_1(value_1: Any?, value_2: Any?) {
funWithReturns(value_1 !is String || value_2 !is Number)
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 3
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 4
* DESCRIPTION: Smartcasts using Returns effects with simple type checking and not-null conditions on receiver inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 5
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions on receiver inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 6
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions on receiver and some values (mixed) inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 7
* DESCRIPTION: Smartcasts using Returns effects with nested or subsequent contract function calls.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,15 @@
// LANGUAGE: +WarnAboutNonExhaustiveWhenOnAlgebraicTypes
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 8
* DESCRIPTION: Smartcasts using some Returns effects.
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -100,7 +110,7 @@ fun case_4(value_1: Number, value_2: (() -> Unit)?) {
// TESTCASE NUMBER: 5
fun case_5(value_1: Number?, value_2: String?) {
<!NO_ELSE_IN_WHEN!>when<!> (value_2.case_5(value_1)) {
when (value_2.case_5(value_1)) {
true -> {
println(value_2<!UNSAFE_CALL!>.<!>length)
println(value_1.toByte())
@@ -109,6 +119,7 @@ fun case_5(value_1: Number?, value_2: String?) {
println(value_2<!UNSAFE_CALL!>.<!>length)
println(value_1.inv())
}
else -> {}
}
}
@@ -1,28 +0,0 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// SKIP_TXT
// TESTCASE NUMBER: 1
fun case_1(arg: Int?) {
funWithAtMostOnceCallsInPlace { arg!! }
arg<!UNSAFE_CALL!>.<!>inc()
}
// TESTCASE NUMBER: 2
fun case_2(arg: Int?) {
funWithUnknownCallsInPlace { arg!! }
arg<!UNSAFE_CALL!>.<!>inc()
}
// TESTCASE NUMBER: 3
fun case_3() {
val value_1: Boolean?
funWithAtMostOnceCallsInPlace { value_1 = false }
<!UNINITIALIZED_VARIABLE!>value_1<!><!UNSAFE_CALL!>.<!>not()
}
// TESTCASE NUMBER: 4
fun case_4() {
val value_1: Boolean?
funWithUnknownCallsInPlace { <!VAL_REASSIGNMENT!>value_1<!> = true }
<!UNINITIALIZED_VARIABLE!>value_1<!><!UNSAFE_CALL!>.<!>not()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// SKIP_TXT
@@ -1,6 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 1
* DESCRIPTION: Smartcasts using Returns effects with simple type checking, not-null conditions and custom condition (condition for smartcast outside contract).
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
fun case_1(value_1: Any?) {
funWithReturns(value_1 is String)
@@ -1,6 +1,16 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 10
* DESCRIPTION: Smartcasts with correspond contract function with default value in last parameter.
* ISSUES: KT-26444
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 11
* DESCRIPTION: Check smartcasts with passing same fields of instances of the same class in contract function with conjunction not-null condition.
* ISSUES: KT-26300
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -1,6 +1,17 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 12
* DESCRIPTION: Smartcasts after non-null assertions or not-null value assignment in lambdas of contract function with 'exactly once' or 'at least once' CallsInPlace effects.
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-26148
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
fun case_1(arg: Int?) {
funWithExactlyOnceCallsInPlace { arg!! }
@@ -1,5 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 13
* DESCRIPTION: Check smartcast to upper bound of the types in disjunction.
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-1982
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 14
* DESCRIPTION: Check smartcast with non-null assertion for a contract function.
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-26856
*/
// FILE: contracts.kt
package contracts
@@ -1,6 +1,15 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 2
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions outside contract (custom condition).
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
fun case_1(value_1: Any?, value_2: Any?) {
funWithReturns(value_1 is String && value_2 is Number)
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 3
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 4
* DESCRIPTION: Smartcasts using Returns effects with simple type checking and not-null conditions on receiver inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 5
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions on receiver inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 6
* DESCRIPTION: Smartcasts using Returns effects with complex (conjunction/disjunction) type checking and not-null conditions on receiver and some values (mixed) inside contract.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,13 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 7
* DESCRIPTION: Smartcasts using Returns effects with nested or subsequent contract function calls.
*/
// FILE: contracts.kt
package contracts
@@ -1,5 +1,15 @@
// LANGUAGE: +WarnAboutNonExhaustiveWhenOnAlgebraicTypes
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 8
* DESCRIPTION: Smartcasts using some Returns effects.
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
package contracts
@@ -104,7 +114,7 @@ fun case_4(value_1: Number, value_2: (() -> Unit)?) {
* ISSUES: KT-26612
*/
fun case_5(value_1: Number?, value_2: String?) {
<!NO_ELSE_IN_WHEN!>when<!> (value_2.case_5(value_1)) {
when (value_2.case_5(value_1)) {
true -> {
println(value_2.length)
println(value_1.toByte())
@@ -113,6 +123,7 @@ fun case_5(value_1: Number?, value_2: String?) {
println(value_2.length)
println(value_1.inv())
}
else -> {}
}
}
@@ -1,5 +1,14 @@
// !OPT_IN: kotlin.contracts.ExperimentalContracts
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: contracts, analysis, smartcasts
* NUMBER: 9
* DESCRIPTION: Smartcast using complex condition with some contract functions (Returns effect).
* HELPERS: typesProvider, contractFunctions
*/
// FILE: contracts.kt
package contracts