Relax rules about inferring to Nothing for special calls

#KT-37388 Fixed
 #KT-38427 Fixed
 #KT-39953 Fixed
 #KT-38899 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-07-15 10:59:10 +03:00
parent e45cd02b01
commit 100a6f70ca
55 changed files with 424 additions and 264 deletions
@@ -25,11 +25,11 @@ fun <T> bind2(r: Option<T>): Option<T> {
}
fun <T, R> bind3(r: Option<T>): Option<T> {
return <!NI;TYPE_MISMATCH!>if (r is Some) {
return if (r is Some) <!NI;TYPE_MISMATCH!>{
// Diagnoses an error correctly
if (true) <!OI;TYPE_MISMATCH!>None<R>()<!> else r
}
else r<!>
}<!>
else r
}
fun <T> bindWhen(r: Option<T>): Option<T> {