[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:
committed by
Space Team
parent
e6633d3d92
commit
7541732752
+8
@@ -1,5 +1,13 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, common
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Analysis by contracts with mixed CallsInPlace and Returns effects.
|
||||
*/
|
||||
|
||||
// FILE: contracts.kt
|
||||
|
||||
package contracts
|
||||
|
||||
+8
@@ -1,5 +1,13 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, common
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Analysis by contracts with mixed CallsInPlace and Returns effects.
|
||||
*/
|
||||
|
||||
// FILE: contracts.kt
|
||||
|
||||
package contracts
|
||||
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val value_1: Int
|
||||
funWithAtLeastOnceCallsInPlace { <!VAL_REASSIGNMENT!>value_1<!> = 10 }
|
||||
value_1.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2() {
|
||||
val value_1: Int
|
||||
funWithAtMostOnceCallsInPlace { value_1 = 10 }
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun case_3() {
|
||||
val value_1: Int
|
||||
funWithUnknownCallsInPlace { <!VAL_REASSIGNMENT!>value_1<!> = 10 }
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
fun case_4() {
|
||||
var value_1: Int
|
||||
var value_2: Int
|
||||
funWithAtMostOnceCallsInPlace { value_1 = 10 }
|
||||
funWithUnknownCallsInPlace { value_2 = 10 }
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.div(10)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
class case_5 {
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val value_1: Int<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val value_2: Int<!>
|
||||
val value_3: Int
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var value_4: Int<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var value_5: Int<!>
|
||||
init {
|
||||
funWithAtMostOnceCallsInPlace { value_1 = 1 }
|
||||
funWithUnknownCallsInPlace { <!VAL_REASSIGNMENT!>value_2<!> = 1 }
|
||||
funWithAtLeastOnceCallsInPlace { <!VAL_REASSIGNMENT!>value_3<!> = 1 }
|
||||
funWithAtMostOnceCallsInPlace { value_4 = 2 }
|
||||
funWithUnknownCallsInPlace { value_5 = 3 }
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
fun case_6() {
|
||||
val value_1: Int
|
||||
for (i in 0..1)
|
||||
funWithExactlyOnceCallsInPlace { <!VAL_REASSIGNMENT!>value_1<!> = 10 }
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
fun case_7() {
|
||||
var value_1: Int
|
||||
var i = 0
|
||||
while (i < 10) {
|
||||
funWithExactlyOnceCallsInPlace { value_1 = 10 }
|
||||
i++
|
||||
}
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
fun case_8() {
|
||||
var value_1: Int
|
||||
if (true) funWithAtLeastOnceCallsInPlace { value_1 = 10 }
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, initialization
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: val/var reassignment and/or uninitialized variable usages based on nested CallsInPlace effects with wrong invocation kind
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val value_1: Int
|
||||
|
||||
+12
-1
@@ -1,15 +1,26 @@
|
||||
// LANGUAGE: +WarnAboutNonExhaustiveWhenOnAlgebraicTypes
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, initialization
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: val/var reassignment and/or uninitialized variable usages with compelx control flow inside/outside lambda of contract function with CallsInPlace effect
|
||||
* HELPERS: enumClasses, contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(value_1: EnumClass?) {
|
||||
val value_2: Int
|
||||
|
||||
<!NO_ELSE_IN_WHEN!>when<!> (value_1) {
|
||||
when (value_1) {
|
||||
EnumClass.NORTH -> funWithExactlyOnceCallsInPlace { value_2 = 1 }
|
||||
EnumClass.SOUTH -> funWithExactlyOnceCallsInPlace { value_2 = 2 }
|
||||
EnumClass.EAST -> funWithExactlyOnceCallsInPlace { value_2 = 4 }
|
||||
null -> funWithExactlyOnceCallsInPlace { value_2 = 5 }
|
||||
else -> {}
|
||||
}
|
||||
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.inc()
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, initialization
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: CallsInPlace contract functions with name shadowing and wrong invocation kind
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val value_1: Int
|
||||
|
||||
+16
-14
@@ -1,38 +1,40 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, initialization
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: CallsInPlace contract functions with invalid lambda passing to function parameter.
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val value_1: Int
|
||||
funWithExactlyOnceCallsInPlace({ value_1 = 10 })
|
||||
value_1.inc()
|
||||
var value_1: Int
|
||||
val l = { value_1 = 10 }
|
||||
funWithAtLeastOnceCallsInPlace(l)
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2() {
|
||||
var value_1: Int
|
||||
val l = { value_1 = 10 }
|
||||
val l = fun () { value_1 = 10 }
|
||||
funWithAtLeastOnceCallsInPlace(l)
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun case_3() {
|
||||
var value_1: Int
|
||||
val l = fun () { value_1 = 10 }
|
||||
funWithAtLeastOnceCallsInPlace(l)
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
fun case_4() {
|
||||
var value_1: Int
|
||||
funWithAtLeastOnceCallsInPlace(fun () { value_1 = 10 })
|
||||
value_1.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
fun case_5() {
|
||||
// TESTCASE NUMBER: 4
|
||||
fun case_4() {
|
||||
val value_1: Int
|
||||
val o = object {
|
||||
fun l() { <!CAPTURED_VAL_INITIALIZATION!>value_1<!> = 10 }
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, initialization
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: val/var assignments or subsequent usages with compelx control flow inside/outside lambda of contract function with CallsInPlace effect
|
||||
* HELPERS: enumClasses, contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(value_1: EnumClass?) {
|
||||
val value_2: Int
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, initialization
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: CallsInPlace contract functions with name shadowing
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val value_1: Int
|
||||
|
||||
+8
@@ -1,5 +1,13 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, initialization
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: Smart initialization with correspond contract function with default value before lambda.
|
||||
* ISSUES: KT-26444
|
||||
*/
|
||||
|
||||
// FILE: contracts.kt
|
||||
|
||||
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
// FILE: contracts.kt
|
||||
|
||||
package contracts
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
inline fun case_3(block1: () -> Unit, block2: () -> Unit, block3: () -> Unit) {
|
||||
contract {
|
||||
callsInPlace(block1, InvocationKind.EXACTLY_ONCE)
|
||||
callsInPlace(block2, InvocationKind.AT_LEAST_ONCE)
|
||||
callsInPlace(block3, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
block1()
|
||||
block2()
|
||||
block2()
|
||||
block3()
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
import contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
val value_1: Int
|
||||
funWithExactlyOnceCallsInPlace({ value_1 = 11 })
|
||||
value_1.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2() {
|
||||
var value_1: Int
|
||||
funWithAtLeastOnceCallsInPlace({ value_1 = 11 })
|
||||
value_1.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun case_3() {
|
||||
val value_1: Int
|
||||
var value_2: Int
|
||||
val value_3: Int
|
||||
contracts.case_3({ value_1 = 1 }, { value_2 = 2 }, { value_3 = 3 })
|
||||
value_1.inc()
|
||||
value_2.inc()
|
||||
value_3.inc()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
// LANGUAGE: -BreakContinueInInlineLambdas
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(value_1: Boolean) {
|
||||
while (value_1) {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
<!UNSUPPORTED_FEATURE!>break<!>
|
||||
}
|
||||
println("1")
|
||||
}
|
||||
|
||||
loop@ for (i in 0..10) {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
<!UNSUPPORTED_FEATURE!>break@loop<!>
|
||||
}
|
||||
println("1")
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2(value_1: Boolean) {
|
||||
for (i in 0..10) {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
<!UNSUPPORTED_FEATURE!>continue<!>
|
||||
}
|
||||
println("1")
|
||||
}
|
||||
|
||||
loop@ while (value_1) {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
<!UNSUPPORTED_FEATURE!>continue@loop<!>
|
||||
}
|
||||
println("1")
|
||||
}
|
||||
}
|
||||
+2
@@ -1,3 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// LANGUAGE: -BreakContinueInInlineLambdas
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+9
@@ -2,6 +2,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Unreachable code detection using contract function with CallsInPlace effect
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: Unreachable code detection using local functions or labdas combined with contract functions with CallsInPlace effect
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: Unreachable code detection using nested contract functions with CallsInPlace effect
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1() {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: Unreachable code detection using contract functions with complex control flow inside
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(b: Boolean?) {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
|
||||
* NUMBER: 6
|
||||
* DESCRIPTION: Check for lack of unreachable code report when in complex control flow of contract function lambda not all branches are doing non-local return
|
||||
* HELPERS: contractFunctions
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(b: Boolean?, c: Boolean) {
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
|
||||
* NUMBER: 7
|
||||
* DESCRIPTION: Smart initialization with correspond contract function with default value before lambda.
|
||||
* ISSUES: KT-26444
|
||||
*/
|
||||
|
||||
// FILE: contracts.kt
|
||||
|
||||
package contracts
|
||||
|
||||
Vendored
+12
-3
@@ -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
|
||||
|
||||
Vendored
+10
@@ -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
|
||||
|
||||
Vendored
+9
@@ -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
|
||||
|
||||
Vendored
+10
@@ -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
|
||||
|
||||
Vendored
+9
@@ -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
|
||||
|
||||
Vendored
+9
@@ -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
|
||||
|
||||
Vendored
+10
@@ -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
|
||||
|
||||
Vendored
+9
@@ -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)
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+12
-1
@@ -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 -> {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
-28
@@ -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
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
Vendored
+9
@@ -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)
|
||||
|
||||
Vendored
+10
@@ -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
|
||||
|
||||
Vendored
+10
@@ -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
|
||||
|
||||
Vendored
+11
@@ -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!! }
|
||||
|
||||
Vendored
+10
@@ -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
|
||||
|
||||
Vendored
+10
@@ -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
|
||||
|
||||
Vendored
+9
@@ -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)
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+8
@@ -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
|
||||
|
||||
Vendored
+12
-1
@@ -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 -> {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+9
@@ -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
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Contract isn't first statement.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 10
|
||||
* DESCRIPTION: Contract with label after 'contract' keyword.
|
||||
* ISSUES: KT-26153
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 11
|
||||
* DESCRIPTION: Functions with contracts and external contract builder.
|
||||
* ISSUES: KT-26186
|
||||
*/
|
||||
|
||||
// FILE: builder.kt
|
||||
|
||||
package builder
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 12
|
||||
* DESCRIPTION: Functions with contracts and external effect builder.
|
||||
* ISSUES: KT-26186
|
||||
*/
|
||||
|
||||
// FILE: builder.kt
|
||||
|
||||
package builder
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 13
|
||||
* DESCRIPTION: Contract function with CallsInPlace effect with not allowed implies.
|
||||
* ISSUES: KT-26409
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+10
@@ -1,6 +1,16 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 14
|
||||
* DESCRIPTION: Contract is first statement in control flow terms, but not in tokens order terms.
|
||||
* ISSUES: KT-26153
|
||||
* HELPERS: functions
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+10
@@ -1,6 +1,16 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 17
|
||||
* DESCRIPTION: contracts with Nothing expressions in implies.
|
||||
* DISCUSSION
|
||||
* ISSUES: KT-25948
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: contracts with not allowed simple conditions in implies
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: contracts with not allowed complex conditions in implies.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: contracts with not allowed conditions with constants in implies.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: contracts with not allowed expressions in implies.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -2,6 +2,15 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 6
|
||||
* DESCRIPTION: contracts with not function parameters in implies.
|
||||
* HELPERS: typesProvider
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+10
@@ -1,6 +1,16 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 7
|
||||
* DESCRIPTION: Contract function with 'this' labeled by not current extensible object
|
||||
* ISSUES: KT-26149
|
||||
* HELPERS: typesProvider
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 8
|
||||
* DESCRIPTION: Not allowed empty contract.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -UNREACHABLE_CODE -UNUSED_EXPRESSION
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 9
|
||||
* DESCRIPTION: Function with contract as returned expression.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+7
@@ -1,5 +1,12 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, common
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Functions with simple contracts.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, callsInPlace
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: contract functions with CallsInPlace with dynamic InvocationKind.
|
||||
* ISSUES: KT-26152
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1, 2, 3, 4
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, callsInPlace
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: functions with contract and duplicate CallsInPlace.
|
||||
* ISSUES: KT-26150
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, common
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Indirect effect functions call.
|
||||
* ISSUES: KT-26175
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, returns
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Using equality with expressions in implies.
|
||||
* ISSUES: KT-26178
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,5 +1,13 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, returns
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: Using equality with not labeled 'this' in implies.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+10
@@ -1,5 +1,15 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, returns
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: Using reference equality in implies.
|
||||
* ISSUES: KT-26177
|
||||
* HELPERS: objects
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, returns
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: Using equality with literals in implies.
|
||||
* ISSUES: KT-26178
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,5 +1,14 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, returns
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: Contract on the extension function with Boolean upper bound (Boolean or Nothing) or smartcast to Boolean.
|
||||
* DISCUSSION
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,5 +1,13 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, returns
|
||||
* NUMBER: 6
|
||||
* DESCRIPTION: Contract on the extension function with smartcast to Boolean.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !LANGUAGE: +AllowContractsForNonOverridableMembers +AllowReifiedGenericsInContracts
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractBuilder, effects, returns
|
||||
* NUMBER: 7
|
||||
* DESCRIPTION: Returns effect with type checking with generic parameter
|
||||
* ISSUES: KT-26296
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
-76
@@ -1,76 +0,0 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// !DIAGNOSTICS: -FINAL_UPPER_BOUND
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case_1(value_1: Boolean) {
|
||||
contract { returns() implies (value_1) }
|
||||
if (!value_1) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
fun case_2(value_1: Boolean): Boolean {
|
||||
contract { returns(false) implies (!value_1) }
|
||||
return value_1
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun Boolean.case_3() {
|
||||
contract { returns() implies (!this@case_3) }
|
||||
if (this@case_3) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
fun case_5(value_1: Any?) {
|
||||
contract { returns() implies (value_1 is String) }
|
||||
if (value_1 !is String) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
fun case_6(value_1: Any?) {
|
||||
contract { returns() implies (value_1 !is String?) }
|
||||
if (value_1 is String?) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
fun Any?.case_7() {
|
||||
contract { returns() implies (this@case_7 is Number) }
|
||||
if (this !is Number) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
fun <T>T?.case_8() {
|
||||
contract { returns() implies (this@case_8 !is ClassLevel3?) }
|
||||
if (this is ClassLevel3?) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
fun <T : Number?>T.case_9(): Boolean? {
|
||||
contract { returns(null) implies (this@case_9 is Byte?) }
|
||||
return if (this is Byte?) null else true
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
fun case_10(value_1: Any?) {
|
||||
contract { returns() implies (value_1 == null) }
|
||||
if (value_1 != null) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
fun case_11(value_1: Any?): Boolean? {
|
||||
contract { returns(null) implies (value_1 != null) }
|
||||
return if (value_1 != null) null else true
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
fun Char.case_12() {
|
||||
contract { returns() implies (<!SENSELESS_COMPARISON!>this@case_12 == null<!>) }
|
||||
if (<!SENSELESS_COMPARISON!>this@case_12 != null<!>) throw Exception()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
fun <T : Number>T?.case_13() {
|
||||
contract { returns() implies (this@case_13 == null) }
|
||||
if (this != null) throw Exception()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
// !DIAGNOSTICS: -FINAL_UPPER_BOUND
|
||||
|
||||
|
||||
+8
@@ -1,5 +1,13 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractFunction
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Check that recursion isn't allowed in contract functions with CallsInPlace effect.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+10
@@ -1,6 +1,16 @@
|
||||
// !LANGUAGE: +AllowContractsForNonOverridableMembers +AllowReifiedGenericsInContracts
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractFunction
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: Check report about use contracts in literal functions, lambdas or not top-level functions.
|
||||
* ISSUES: KT-26149
|
||||
* HELPERS: classes
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractFunction
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: Check that fun with contract and CallsInPlace effect is an inline function.
|
||||
* ISSUES: KT-27090
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+8
@@ -1,5 +1,13 @@
|
||||
// !OPT_IN: kotlin.contracts.ExperimentalContracts
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SECTIONS: contracts, declarations, contractFunction
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Use a contract function before the declaration it.
|
||||
*/
|
||||
|
||||
import kotlin.contracts.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
Reference in New Issue
Block a user