Alphabetical sort wrapped intersection types for rendered diagnostics

This commit is contained in:
victor.petukhov
2018-12-28 15:34:42 +03:00
parent acd6d354dc
commit ec8a6cbe9c
118 changed files with 1387 additions and 937 deletions
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, initialization
* NUMBER: 1
* DESCRIPTION: val/var reassignment and/or uninitialized variable usages based on CallsInPlace effect with wrong invocation kind
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* 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
@@ -1,6 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// !WITH_ENUM_CLASSES
// SKIP_TXT
/*
@@ -9,16 +7,17 @@
* 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?) {
fun case_1(value_1: EnumClass?) {
val value_2: Int
<!NON_EXHAUSTIVE_WHEN!>when<!> (value_1) {
_EnumClass.NORTH -> funWithExactlyOnceCallsInPlace { value_2 = 1 }
_EnumClass.SOUTH -> funWithExactlyOnceCallsInPlace { value_2 = 2 }
_EnumClass.EAST -> funWithExactlyOnceCallsInPlace { value_2 = 4 }
EnumClass.NORTH -> funWithExactlyOnceCallsInPlace { value_2 = 1 }
EnumClass.SOUTH -> funWithExactlyOnceCallsInPlace { value_2 = 2 }
EnumClass.EAST -> funWithExactlyOnceCallsInPlace { value_2 = 4 }
null -> funWithExactlyOnceCallsInPlace { value_2 = 5 }
}
@@ -62,12 +61,12 @@ class case_3(value_1: Any?) {
}
// TESTCASE NUMBER: 4
fun case_4(value_1: _EnumClassSingle?) {
fun case_4(value_1: EnumClassSingle?) {
var value_2: Int
funWithAtMostOnceCallsInPlace {
when (value_1) {
_EnumClassSingle.EVERYTHING -> {
EnumClassSingle.EVERYTHING -> {
funWithExactlyOnceCallsInPlace { value_2 = 1 }
++value_2
}
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, initialization
* NUMBER: 4
* DESCRIPTION: CallsInPlace contract functions with name shadowing and wrong invocation kind
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, initialization
* NUMBER: 5
* DESCRIPTION: CallsInPlace contract functions with invalid lambda passing to function parameter.
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -10,6 +9,7 @@
* DESCRIPTION: Check the lack of CallsInPlace effect on the lambda in the parentheses.
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-26229
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, initialization
* NUMBER: 1
* DESCRIPTION: val/var assignments using contract functions with CallsInPlace effect
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, initialization
* NUMBER: 2
* DESCRIPTION: Nested val/var assignments using contract functions with CallsInPlace effect
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,6 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// !WITH_ENUM_CLASSES
// SKIP_TXT
/*
@@ -9,17 +7,18 @@
* 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?) {
fun case_1(value_1: EnumClass?) {
val value_2: Int
<!DEBUG_INFO_IMPLICIT_EXHAUSTIVE!>when (value_1) {
_EnumClass.NORTH -> funWithExactlyOnceCallsInPlace { value_2 = 1 }
_EnumClass.SOUTH -> funWithExactlyOnceCallsInPlace { value_2 = 2 }
_EnumClass.WEST -> funWithExactlyOnceCallsInPlace { value_2 = 3 }
_EnumClass.EAST -> funWithExactlyOnceCallsInPlace { value_2 = 4 }
EnumClass.NORTH -> funWithExactlyOnceCallsInPlace { value_2 = 1 }
EnumClass.SOUTH -> funWithExactlyOnceCallsInPlace { value_2 = 2 }
EnumClass.WEST -> funWithExactlyOnceCallsInPlace { value_2 = 3 }
EnumClass.EAST -> funWithExactlyOnceCallsInPlace { value_2 = 4 }
null -> funWithExactlyOnceCallsInPlace { value_2 = 5 }
}<!>
@@ -63,12 +62,12 @@ class case_3(value_1: Any?) {
}
// TESTCASE NUMBER: 4
fun case_4(value_1: _EnumClassSingle?) {
fun case_4(value_1: EnumClassSingle?) {
var value_2: Int
funWithAtMostOnceCallsInPlace {
<!DEBUG_INFO_IMPLICIT_EXHAUSTIVE!>when (value_1) {
_EnumClassSingle.EVERYTHING -> {
EnumClassSingle.EVERYTHING -> {
funWithExactlyOnceCallsInPlace { value_2 = 1 }
++value_2
}
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, initialization
* NUMBER: 4
* DESCRIPTION: CallsInPlace contract functions with name shadowing
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
@@ -9,6 +8,7 @@
* DESCRIPTION: Check the lack of CallsInPlace effect on the lambda in the parentheses.
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-26229
* HELPERS: contractFunctions
*/
// FILE: contracts.kt
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
* NUMBER: 1
* DESCRIPTION: Using not allowed break and continue inside lambda of contract function
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,6 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -9,6 +8,7 @@
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
* NUMBER: 1
* DESCRIPTION: Unreachable code detection using contract function with CallsInPlace effect
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
* NUMBER: 2
* DESCRIPTION: Check for lack of unreachable code report when 'at most once' and 'unknown' invokations in CallsInPlace effect used.
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* 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
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
* NUMBER: 4
* DESCRIPTION: Unreachable code detection using nested contract functions with CallsInPlace effect
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* SECTIONS: contracts, analysis, controlFlow, unreachableCode
* NUMBER: 5
* DESCRIPTION: Unreachable code detection using contract functions with complex control flow inside
* HELPERS: contractFunctions
*/
// TESTCASE NUMBER: 1
@@ -1,5 +1,4 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
// SKIP_TXT
/*
@@ -8,6 +7,7 @@
* 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