[FIR] Improve diagnostic reporting & don't use error symbol for candidate if possible
Also introduce few new diagnostics: - NONE_APPLICABLE more many inapplicable candidates - HIDDEN for visible candidates
This commit is contained in:
committed by
Mikhail Glukhikh
parent
5c0528b61e
commit
f283f2db43
+4
-4
@@ -5,9 +5,9 @@ import JavaClass
|
||||
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.somethingPublic
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE!>somethingProtected<!>
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE!>somethingPrivate<!>
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE!>somethingPackage<!>
|
||||
javaClass.<!HIDDEN!>somethingProtected<!>
|
||||
javaClass.<!HIDDEN!>somethingPrivate<!>
|
||||
javaClass.<!HIDDEN!>somethingPackage<!>
|
||||
javaClass.somethingPublic = 1
|
||||
}
|
||||
|
||||
@@ -19,4 +19,4 @@ public class JavaClass {
|
||||
int getSomethingPackage() { return 1; }
|
||||
|
||||
protected void setSomethingPublic(int value) {}
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+4
-4
@@ -4,13 +4,13 @@ package k
|
||||
import JavaClass
|
||||
|
||||
fun foo(javaClass: JavaClass) {
|
||||
val v = javaClass.<!INAPPLICABLE_CANDIDATE!>something<!>
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE!>something<!> = 1
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE, INAPPLICABLE_CANDIDATE!>something<!><!UNRESOLVED_REFERENCE!>++<!>
|
||||
val v = javaClass.<!HIDDEN!>something<!>
|
||||
javaClass.<!HIDDEN!>something<!> = 1
|
||||
javaClass.<!HIDDEN, HIDDEN!>something<!>++
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
protected int getSomething() { return 1; }
|
||||
public void setSomething(int value) {}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ package k
|
||||
import JavaClass
|
||||
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE!>doSomething<!> { }
|
||||
javaClass.<!HIDDEN!>doSomething<!> { }
|
||||
}
|
||||
|
||||
// FILE: KotlinFile2.kt
|
||||
@@ -15,4 +15,4 @@ fun foo(javaClass: JavaClass) {
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
void doSomething(Runnable runnable) { runnable.run(); }
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE!>doSomething<!> { }
|
||||
javaClass.<!HIDDEN!>doSomething<!> { }
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
private void doSomething(Runnable runnable) { runnable.run(); }
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ package k
|
||||
import JavaClass
|
||||
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.<!INAPPLICABLE_CANDIDATE!>doSomething<!> {
|
||||
javaClass.<!HIDDEN!>doSomething<!> {
|
||||
bar()
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -32,5 +32,5 @@ fun x(a: A, r: Runnable) {
|
||||
a.bar(null as CharSequence?) checkType { _<String>() }
|
||||
|
||||
a.bar("") checkType { _<String>() }
|
||||
a.<!INAPPLICABLE_CANDIDATE!>bar<!>(123)
|
||||
a.<!NONE_APPLICABLE!>bar<!>(123)
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -32,5 +32,5 @@ fun x(r: Runnable) {
|
||||
A.bar(null as CharSequence?) checkType { _<String>() }
|
||||
|
||||
A.bar("") checkType { _<String>() }
|
||||
A.<!INAPPLICABLE_CANDIDATE!>bar<!>(123)
|
||||
A.<!NONE_APPLICABLE!>bar<!>(123)
|
||||
}
|
||||
|
||||
+1
-1
@@ -33,5 +33,5 @@ fun x(r: Runnable) {
|
||||
A.bar(null as CharSequence?) checkType { _<String>() }
|
||||
|
||||
A.bar("") checkType { _<String>() }
|
||||
A.<!INAPPLICABLE_CANDIDATE!>bar<!>(123)
|
||||
A.<!NONE_APPLICABLE!>bar<!>(123)
|
||||
}
|
||||
|
||||
+1
-1
@@ -33,5 +33,5 @@ fun x(a: A, r: Runnable) {
|
||||
a.bar(null as CharSequence?) checkType { _<String>() }
|
||||
|
||||
a.bar("") checkType { _<String>() }
|
||||
a.<!INAPPLICABLE_CANDIDATE!>bar<!>(123)
|
||||
a.<!NONE_APPLICABLE!>bar<!>(123)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user