[NI] Complete call if return type has proper lower or equal constraints

There was a silly bug: equal constraint is actually a lower and an upper
 constraint, but we checked only presence of lower constraints.

 Test is important as here we have one equal constraint and should
 complete inner call `foo<Int>()` without propagating it to `bar` to
 avoid using `NoInfer` annotation multiple times
This commit is contained in:
Mikhail Zarechenskiy
2019-05-08 02:45:24 +03:00
parent 6c9394f0b2
commit 61bd3a8d03
4 changed files with 19 additions and 3 deletions
@@ -0,0 +1,10 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
fun <T> foo(): @kotlin.internal.NoInfer T = TODO()
fun <K> bar(k: K) {}
fun test() {
bar(foo<Int>())
}
@@ -0,0 +1,5 @@
package
public fun </*0*/ K> bar(/*0*/ k: K): kotlin.Unit
@kotlin.Suppress(names = {"INVISIBLE_MEMBER", "INVISIBLE_REFERENCE"}) public fun </*0*/ T> foo(): T
public fun test(): kotlin.Unit