Record resolution results for ambiguous callable references

#KT-34282 Fixed
This commit is contained in:
Pavel Kirpichenkov
2019-10-14 10:50:55 +03:00
parent 352a4dc836
commit d886d48cf0
18 changed files with 50 additions and 19 deletions
@@ -12,5 +12,5 @@ fun <V, T : V?> G<T>.foo(vararg values: V2<V?>) = build()
fun forReference(ref: Any?) {}
fun test() {
forReference(G<Int?>::<!NI;CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY, NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;CANNOT_COMPLETE_RESOLVE!>foo<!>)
forReference(G<Int?>::<!NI;CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY, OI;CANNOT_COMPLETE_RESOLVE!>foo<!>)
}
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: +NewInference
// !WITH_NEW_INFERENCE
fun foo(s: String) {}
@@ -8,5 +7,5 @@ fun foo(i: Long) {}
fun bar(f: (Boolean) -> Unit) {}
fun test() {
bar(::<!NI;CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY, NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;NONE_APPLICABLE!>foo<!>)
bar(::<!NI;CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY, OI;NONE_APPLICABLE!>foo<!>)
}
@@ -0,0 +1,10 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun bar(y: (Int) -> Int) = 1
fun foo(x: Float) = 10f
fun foo(x: String) = ""
fun main() {
bar(::<!CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY!>foo<!>) // no report about unresolved callable reference for `foo`
}
@@ -0,0 +1,6 @@
package
public fun bar(/*0*/ y: (kotlin.Int) -> kotlin.Int): kotlin.Int
public fun foo(/*0*/ x: kotlin.Float): kotlin.Float
public fun foo(/*0*/ x: kotlin.String): kotlin.String
public fun main(): kotlin.Unit