[NI] Fix completion for ILT when Nothing constraint is present

Full completion should not be done if lower `Nothing`
is the only proper constraint when constraint with ILT type is present.
ILT will be selected as a resulting type and transformed into `Int`
without attention to possible restrictions from outer calls.
This commit is contained in:
Pavel Kirpichenkov
2020-02-14 13:37:12 +03:00
parent 208c06516b
commit 4a7b4d655c
9 changed files with 136 additions and 13 deletions
@@ -0,0 +1,44 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE
fun test(boolean: Boolean) {
val expectedLong: Long = if (boolean) {
if (boolean) {
42
} else {
return
}
} else {
return
}
val expectedInt: Int = if (boolean) {
if (boolean) {
42
} else {
return
}
} else {
return
}
val expectedShort: Short = if (boolean) {
if (boolean) {
42
} else {
return
}
} else {
return
}
val expectedByte: Byte = if (boolean) {
if (boolean) {
42
} else {
return
}
} else {
return
}
}