f283f2db43
Also introduce few new diagnostics: - NONE_APPLICABLE more many inapplicable candidates - HIDDEN for visible candidates
47 lines
1.1 KiB
Kotlin
Vendored
47 lines
1.1 KiB
Kotlin
Vendored
// FILE: JavaClass.java
|
|
public class JavaClass {
|
|
public static int bar(String x) { return 0; }
|
|
public int bar(CharSequence x) { return 0; }
|
|
}
|
|
|
|
// FILE: main.kt
|
|
|
|
class KotlinClass : JavaClass() {
|
|
fun baz(x: CharSequence): Int = 1
|
|
companion object {
|
|
fun baz(x: String): Int = 1
|
|
}
|
|
}
|
|
|
|
class KotlinClass2 : JavaClass() {
|
|
override fun bar(x: CharSequence): Int = 1
|
|
companion object {
|
|
fun bar(x: String): Int = 1
|
|
}
|
|
}
|
|
|
|
fun foo1(x: (String) -> Int) {}
|
|
|
|
fun foo2(x: (KotlinClass, CharSequence) -> Int) {}
|
|
|
|
fun foo3(x: (KotlinClass, CharSequence) -> Int) {}
|
|
fun foo3(x: (String) -> Int) {}
|
|
|
|
fun main() {
|
|
foo1(KotlinClass::baz)
|
|
foo2(KotlinClass::baz)
|
|
// Ambiguity (companion/class)
|
|
<!AMBIGUITY!>foo3<!>(KotlinClass::baz)
|
|
|
|
// Type mismatch
|
|
<!INAPPLICABLE_CANDIDATE!>foo1<!>(<!UNRESOLVED_REFERENCE!>KotlinClass::bar<!>)
|
|
foo2(KotlinClass::bar)
|
|
foo3(KotlinClass::bar)
|
|
|
|
foo1(KotlinClass2::bar)
|
|
// Type mismatch
|
|
<!INAPPLICABLE_CANDIDATE!>foo2<!>(<!UNRESOLVED_REFERENCE!>KotlinClass2::bar<!>)
|
|
foo3(KotlinClass2::bar)
|
|
}
|
|
|