[NI] Turn off KnownTypeParameterSubstitutor for NI
The main consequence of it is that TYPE_MISMATCH range for control structures became wider. Also, for extra safety, don't change behaviour of OI.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
//KT-2146 Nullability casts in when.
|
||||
package kt2146
|
||||
|
||||
@@ -9,46 +10,46 @@ fun f1(s: Int?): Int {
|
||||
}
|
||||
|
||||
fun f2(s: Int?): Int {
|
||||
return when (s) {
|
||||
!is Int -> <!TYPE_MISMATCH!>s<!>
|
||||
return <!NI;TYPE_MISMATCH!>when (s) {
|
||||
!is Int -> <!OI;TYPE_MISMATCH!>s<!>
|
||||
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun f3(s: Int?): Int {
|
||||
return when (s) {
|
||||
return <!NI;TYPE_MISMATCH!>when (s) {
|
||||
is Int -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
else -> <!TYPE_MISMATCH!>s<!>
|
||||
}
|
||||
else -> <!OI;TYPE_MISMATCH!>s<!>
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun f4(s: Int?): Int {
|
||||
return when {
|
||||
return <!NI;TYPE_MISMATCH!>when {
|
||||
s == 4 -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
s == null -> <!TYPE_MISMATCH, DEBUG_INFO_CONSTANT!>s<!>
|
||||
s == null -> <!OI;TYPE_MISMATCH, DEBUG_INFO_CONSTANT!>s<!>
|
||||
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun f5(s: Int?): Int {
|
||||
return when (s) {
|
||||
s -> <!TYPE_MISMATCH!>s<!>
|
||||
return <!NI;TYPE_MISMATCH!>when (s) {
|
||||
s -> <!OI;TYPE_MISMATCH!>s<!>
|
||||
s!! -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
s -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
else -> 0
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun f6(s: Int?): Int {
|
||||
return when {
|
||||
return <!NI;TYPE_MISMATCH!>when {
|
||||
s is Int -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
else -> <!TYPE_MISMATCH!>s<!>
|
||||
}
|
||||
else -> <!OI;TYPE_MISMATCH!>s<!>
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun f7(s: Int?): Int {
|
||||
return when {
|
||||
s !is Int -> <!TYPE_MISMATCH!>s<!>
|
||||
return <!NI;TYPE_MISMATCH!>when {
|
||||
s !is Int -> <!OI;TYPE_MISMATCH!>s<!>
|
||||
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user