[NI] Discard DefNotNull types inside invariant positions

#KT-30297 Fixed
 #KT-32168 Fixed
 #KT-27722 Fixed (actually, it was fixed with addition of DefNotNullTypes, and now test was added to save this behavior)
 #KT-32345 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2019-10-31 14:51:30 +03:00
parent 4fc1bd9ec5
commit 5582fd4056
16 changed files with 251 additions and 10 deletions
@@ -0,0 +1,9 @@
// !WITH_NEW_INFERENCE
fun <T> foo(resources: List<T>) {
resources.map { runCatching { it } }.<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>mapNotNull<!> { it.getOrNull() }
}
fun <T: Any> bar(resources: List<T>) {
resources.map { runCatching { it } }.mapNotNull { it.getOrNull() }
}