FIR checker: skip error named reference if receiver is unresolved

Currently, FIR reports errors caused by previous resolution failure. For
example with unresolved `a` and `b` in code `a.b`, both `a` and `b` are
highlighted. FE1.0 only highlights `a` since it's the root cause. This
change applies this heuristics when reporting FirDiagnostics.
This commit is contained in:
Tianyu Geng
2021-03-25 12:20:18 -07:00
committed by Dmitriy Novozhilov
parent d6907222cd
commit fb14b03824
73 changed files with 209 additions and 228 deletions
@@ -6,8 +6,8 @@ fun test(c : Char) {
<!UNRESOLVED_REFERENCE!>test<!>(<!ILLEGAL_CONST_EXPRESSION!>'<!>
<!UNRESOLVED_REFERENCE!>test<!>(0<!ILLEGAL_CONST_EXPRESSION!><!SYNTAX!><!>'<!>
<!UNRESOLVED_REFERENCE!>test<!>('\n')
<!UNRESOLVED_REFERENCE!>test<!>('\\')
<!UNRESOLVED_REFERENCE!>test<!>(<!ILLEGAL_CONST_EXPRESSION!>''<!><!ILLEGAL_CONST_EXPRESSION!><!SYNTAX!><!>''<!>)
test('\\')
test(<!ILLEGAL_CONST_EXPRESSION!>''<!><!ILLEGAL_CONST_EXPRESSION!><!SYNTAX!><!>''<!>)
test('\'')
test('\"')
}
@@ -1,6 +1,6 @@
// !WITH_NEW_INFERENCE
fun test() {
if (<!UNRESOLVED_REFERENCE!>x<!> <!UNRESOLVED_REFERENCE!>><!> 0) {
if (<!UNRESOLVED_REFERENCE!>x<!> > 0) {
}
}
+2 -2
View File
@@ -1,5 +1,5 @@
// NI_EXPECTED_FILE
interface T {
val a = <!PROPERTY_INITIALIZER_IN_INTERFACE!><!UNRESOLVED_REFERENCE!>Foo<!>.<!UNRESOLVED_REFERENCE!>bar<!>()<!>
}
val a = <!PROPERTY_INITIALIZER_IN_INTERFACE!><!UNRESOLVED_REFERENCE!>Foo<!>.bar()<!>
}
@@ -25,7 +25,7 @@ package foobar.a
// FILE: d.kt
package foobar
val x1 = <!UNRESOLVED_REFERENCE!>a<!>.<!UNRESOLVED_REFERENCE!>a<!>
val x1 = <!UNRESOLVED_REFERENCE!>a<!>.a
val x2 = foobar.a.a
val y1 = foobar.a.b
+2 -2
View File
@@ -22,11 +22,11 @@ fun testUnresolved() {
is String -> <!UNRESOLVED_REFERENCE!>a<!>
}
<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>for (j in <!UNRESOLVED_REFERENCE!>collection<!>) {
<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>for (j in <!UNRESOLVED_REFERENCE!>collection<!>) {
var i: Int = j
i += 1
foo1(j)
}<!>
}
fun foo1(i: Int) {}
fun foo1(i: Int) {}
@@ -34,7 +34,7 @@ annotation class Ann8(val p1: Array<String>,
val p4: Array<Ann1>)
annotation class Ann9(
val error: <!UNRESOLVED_REFERENCE!>Unresolved<!> = <!UNRESOLVED_REFERENCE!>Unresolved<!>.<!UNRESOLVED_REFERENCE!>VALUE<!>
val error: <!UNRESOLVED_REFERENCE!>Unresolved<!> = <!UNRESOLVED_REFERENCE!>Unresolved<!>.VALUE
)
@@ -28,7 +28,7 @@ abstract class My(@Field arg: Int, @Field val w: Int) {
fun foo() {}
@Field
val v: Int by <!UNRESOLVED_REFERENCE!>Delegates<!>.<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>lazy<!> { 42 }
val v: Int by <!UNRESOLVED_REFERENCE!>Delegates<!>.lazy { 42 }
}
enum class Your {
@@ -1 +1 @@
fun test() = ("").<!UNRESOLVED_REFERENCE!>hashCode<!>::<!UNRESOLVED_REFERENCE!>hashCode<!>
fun test() = ("").<!UNRESOLVED_REFERENCE!>hashCode<!>::hashCode
@@ -1,6 +1,6 @@
class Foo {
fun bar() {}
fun f() = <!UNRESOLVED_REFERENCE!>Unresolved<!>()::<!UNRESOLVED_REFERENCE!>bar<!>
fun f() = <!UNRESOLVED_REFERENCE!>Unresolved<!>()::bar
}
val f: () -> Unit = <!UNRESOLVED_REFERENCE!>Unresolved<!>()::<!UNRESOLVED_REFERENCE!>foo<!>
val f: () -> Unit = <!UNRESOLVED_REFERENCE!>Unresolved<!>()::foo
@@ -10,15 +10,15 @@ fun test1() {
A::<!UNRESOLVED_REFERENCE!>bar<!>
<!UNRESOLVED_REFERENCE!>B<!>::<!UNRESOLVED_REFERENCE!>bar<!>
<!UNRESOLVED_REFERENCE!>B<!>::bar
}
fun test2() {
fun foo(x: Any) {}
fun foo() {}
<!UNRESOLVED_REFERENCE!>Unresolved<!>::<!UNRESOLVED_REFERENCE!>foo<!>
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>Unresolved<!>::<!UNRESOLVED_REFERENCE!>foo<!>)
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>Unresolved<!>::<!UNRESOLVED_REFERENCE!>unresolved<!>)
<!UNRESOLVED_REFERENCE!>Unresolved<!>::foo
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>Unresolved<!>::foo)
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>Unresolved<!>::unresolved)
::<!UNRESOLVED_REFERENCE!>unresolved<!>
}
@@ -4,22 +4,22 @@
fun foo() {}
fun main() {
val x1 = <!UNRESOLVED_REFERENCE!>logger<!>::<!UNRESOLVED_REFERENCE!>info<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x2 = <!UNRESOLVED_REFERENCE!>logger<!>?::<!UNRESOLVED_REFERENCE!>info<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x3 = <!UNRESOLVED_REFERENCE!>logger<!>?::<!UNRESOLVED_REFERENCE!>info<!>::<!UNRESOLVED_REFERENCE!>print<!>
val x4 = <!UNRESOLVED_REFERENCE!>logger<!>?::<!UNRESOLVED_REFERENCE!>info<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x5 = <!UNRESOLVED_REFERENCE!>logger<!>::<!UNRESOLVED_REFERENCE!>info<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x1 = <!UNRESOLVED_REFERENCE!>logger<!>::info?::<!UNRESOLVED_REFERENCE!>print<!>
val x2 = <!UNRESOLVED_REFERENCE!>logger<!>?::info?::<!UNRESOLVED_REFERENCE!>print<!>
val x3 = <!UNRESOLVED_REFERENCE!>logger<!>?::info::<!UNRESOLVED_REFERENCE!>print<!>
val x4 = <!UNRESOLVED_REFERENCE!>logger<!>?::info?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x5 = <!UNRESOLVED_REFERENCE!>logger<!>::info?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x6 = <!UNRESOLVED_REFERENCE!>logger<!>!!::<!UNRESOLVED_REFERENCE!>info<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x7 = <!UNRESOLVED_REFERENCE!>logger<!>::info!!::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x8 = <!UNRESOLVED_REFERENCE!>logger<!>?::info!!::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x9 = <!UNRESOLVED_REFERENCE!>logger<!>!!::<!UNRESOLVED_REFERENCE!>info<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x10 = <!UNRESOLVED_REFERENCE!>logger<!>::<!UNRESOLVED_REFERENCE!>info<!>?::print!!::<!UNRESOLVED_REFERENCE!>print<!>
val x10 = <!UNRESOLVED_REFERENCE!>logger<!>::info?::print!!::<!UNRESOLVED_REFERENCE!>print<!>
val x11 = <!UNRESOLVED_REFERENCE!>logger<!>!!::info!!::print!!::<!UNRESOLVED_REFERENCE!>print<!>
val x12 = <!UNRESOLVED_REFERENCE!>logger<!>?::info!!::print!!::<!UNRESOLVED_REFERENCE!>print<!>
val x13 = 42?::<!UNRESOLVED_REFERENCE!>unresolved<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x14 = <!UNRESOLVED_REFERENCE!>logger<!><!SYNTAX!>?!!::info?::print?::print<!>
val x15 = <!UNRESOLVED_REFERENCE!>logger<!>::<!UNRESOLVED_REFERENCE!>info<!><!SYNTAX!>?!!::print?::print<!>
val x15 = <!UNRESOLVED_REFERENCE!>logger<!>::info<!SYNTAX!>?!!::print?::print<!>
val x16 = <!UNRESOLVED_REFERENCE!>logger<!>!!?::<!UNRESOLVED_REFERENCE!>info<!>?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
val x17 = <!UNRESOLVED_REFERENCE!>logger<!>::info!!?::<!UNRESOLVED_REFERENCE!>print<!>?::<!UNRESOLVED_REFERENCE!>print<!>
@@ -43,7 +43,7 @@ fun f() {
A.Obj
A.Companion.Obj2
A.<!UNRESOLVED_REFERENCE!>Obj2<!>
A.<!UNRESOLVED_REFERENCE!>Obj2<!>.<!UNRESOLVED_REFERENCE!>c<!>
A.<!UNRESOLVED_REFERENCE!>Obj2<!>.c
A.<!UNRESOLVED_REFERENCE!>Nested2<!>
O.O
@@ -38,7 +38,7 @@ fun f() {
C.E2.B()
C.E2.<!UNRESOLVED_REFERENCE!>O<!>
C.E3.<!UNRESOLVED_REFERENCE!>O<!>.<!UNRESOLVED_REFERENCE!>InO<!>
C.E3.<!UNRESOLVED_REFERENCE!>O<!>.InO
C.O
C.O.InO
@@ -38,7 +38,7 @@ fun f() {
C.E2.B()
C.E2.<!UNRESOLVED_REFERENCE!>O<!>
C.E3.<!UNRESOLVED_REFERENCE!>O<!>.<!UNRESOLVED_REFERENCE!>InO<!>
C.E3.<!UNRESOLVED_REFERENCE!>O<!>.InO
C.O
C.O.InO
@@ -24,24 +24,24 @@ fun bar(aInstance: A, bInstance: B) {
foo(bInstance) {
(a, b): A, (c, d) ->
<!UNRESOLVED_REFERENCE!>a<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
<!UNRESOLVED_REFERENCE!>a<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
c checkType { _<Double>() }
d checkType { _<Short>() }
}
foo(bInstance) {
(a, b), (c, d) ->
<!UNRESOLVED_REFERENCE!>a<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
<!UNRESOLVED_REFERENCE!>a<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
c checkType { _<Double>() }
d checkType { _<Short>() }
}
foo<A, B>(bInstance) {
(a, b), (c, d) ->
<!UNRESOLVED_REFERENCE!>a<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
<!UNRESOLVED_REFERENCE!>a<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
c checkType { _<Double>() }
d checkType { _<Short>() }
}
@@ -23,7 +23,7 @@ fun bar() {
}
foo { (a, b), (c, b) ->
<!UNRESOLVED_REFERENCE!>a<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>a<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
b checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
c checkType { <!INAPPLICABLE_CANDIDATE!>_<!><B>() }
}
@@ -36,8 +36,8 @@ fun bar() {
}
foobar { (a, b), (c, d) ->
<!UNRESOLVED_REFERENCE!>a<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
<!UNRESOLVED_REFERENCE!>a<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>b<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
c checkType { _<Double>() }
d checkType { _<Short>() }
}
@@ -8,35 +8,35 @@ fun foo(block: (A) -> Unit) { }
fun bar() {
foo { (_, b) ->
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
b checkType { _<String>() }
}
foo { (a, _) ->
a checkType { _<Int>() }
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
}
foo { (_, _) ->
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
}
foo { (_: Int, b: String) ->
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
b checkType { _<String>() }
}
foo { (a: Int, _: String) ->
a checkType { _<Int>() }
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
}
foo { (_: Int, _: String) ->
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
}
foo { (_, _): A ->
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
}
foo { (`_`, _) ->
@@ -52,12 +52,12 @@ fun bar() {
}
foo { (_: String, b) ->
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
b checkType { _<String>() }
}
<!INAPPLICABLE_CANDIDATE!>foo<!> { (_, b): B ->
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
<!UNRESOLVED_REFERENCE!>_<!>.hashCode()
b checkType { _<Short>() }
}
}
@@ -32,12 +32,12 @@ fun bar() {
}
foobar { (a, b), (c, d) ->
<!UNRESOLVED_REFERENCE!>a<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
<!UNRESOLVED_REFERENCE!>a<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
d checkType { _<Short>() }
}
foobar { (a, b), (c, d) ->
<!UNRESOLVED_REFERENCE!>b<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
<!UNRESOLVED_REFERENCE!>b<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
c checkType { _<Double>() }
}
}
@@ -71,6 +71,6 @@ fun test(b: B) {
val b_3 = B()
b_3.m2()
val b_4 = <!UNRESOLVED_REFERENCE!>a<!>.<!UNRESOLVED_REFERENCE!>B<!>()
val b_4 = <!UNRESOLVED_REFERENCE!>a<!>.B()
b_4.<!UNRESOLVED_REFERENCE!>m2<!>()
}
@@ -3,18 +3,18 @@
fun test1() {
if (<!UNRESOLVED_REFERENCE!>rr<!>) {
if (<!UNRESOLVED_REFERENCE!>l<!>) {
<!UNRESOLVED_REFERENCE!>a<!>.<!UNRESOLVED_REFERENCE!>q<!>()
<!UNRESOLVED_REFERENCE!>a<!>.q()
}
else {
<!UNRESOLVED_REFERENCE!>a<!>.<!UNRESOLVED_REFERENCE!>w<!>()
<!UNRESOLVED_REFERENCE!>a<!>.w()
}
}
else {
if (<!UNRESOLVED_REFERENCE!>n<!>) {
<!UNRESOLVED_REFERENCE!>a<!>.<!UNRESOLVED_REFERENCE!>t<!>()
<!UNRESOLVED_REFERENCE!>a<!>.t()
}
else {
<!UNRESOLVED_REFERENCE!>a<!>.<!UNRESOLVED_REFERENCE!>u<!>()
<!UNRESOLVED_REFERENCE!>a<!>.u()
}
}
}
@@ -4,5 +4,5 @@ package bar
fun main() {
class Some
Some[<!SYNTAX!><!>] <!UNRESOLVED_REFERENCE!>names<!> <!SYNTAX!>=<!> <!NO_GET_METHOD!>["ads"]<!>
Some[<!SYNTAX!><!>] names <!SYNTAX!>=<!> <!NO_GET_METHOD!>["ads"]<!>
}
@@ -1,50 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
fun println(x: String) {
}
fun run(block: () -> Unit) {}
val propertyNameOnTheNextLine = 1
fun foo() {
val<!SYNTAX!><!>
println("abc")
val<!SYNTAX!><!>
run {
println("abc")
}
val<!SYNTAX!><!>
if (1 == 1) {
}
val<!SYNTAX!><!>
(1 + 2)
// `propertyNameOnTheNextLine` parsed as simple name expression
val<!SYNTAX!><!>
propertyNameOnTheNextLine
val<!SYNTAX!><!>
// comment
propertyNameOnTheNextLine
val<!SYNTAX!><!> /* comment */
propertyNameOnTheNextLine
// Correct properties
val
property1 = 1
val
propertyWithBy by <!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>lazy<!> { 1 }
val
propertyWithType: Int
val
(a, b) = <!COMPONENT_FUNCTION_MISSING, COMPONENT_FUNCTION_MISSING!>1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
fun println(x: String) {
@@ -1,7 +1,7 @@
package b
fun foo() {
<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>for (i in <!UNRESOLVED_REFERENCE!>collection<!>) {
<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>for (i in <!UNRESOLVED_REFERENCE!>collection<!>) {
{
break
}
@@ -1,4 +1,4 @@
fun foo(a: Int) {
<!UNRESOLVED_REFERENCE!>!<!><!UNRESOLVED_REFERENCE!>bbb<!>
!<!UNRESOLVED_REFERENCE!>bbb<!>
<!UNRESOLVED_REFERENCE!>bbb<!> + a
}
}
@@ -89,17 +89,17 @@ fun f13(a : A?) {
}
else {
a?.foo()
<!UNRESOLVED_REFERENCE!>c<!>.<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>c<!>.bar()
}
a?.foo()
if (!(a is B)) {
a?.foo()
<!UNRESOLVED_REFERENCE!>c<!>.<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>c<!>.bar()
}
else {
a.foo()
<!UNRESOLVED_REFERENCE!>c<!>.<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>c<!>.bar()
}
a?.foo()
@@ -109,7 +109,7 @@ fun f13(a : A?) {
}
else {
a?.foo()
<!UNRESOLVED_REFERENCE!>c<!>.<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>c<!>.bar()
}
if (!(a is B) || !(a is C)) {
@@ -1,6 +1,6 @@
inline fun foo() {
<!UNRESOLVED_REFERENCE!>unresolved<!>().<!UNRESOLVED_REFERENCE!>another<!>
<!UNRESOLVED_REFERENCE!>unresolved<!>().<!UNRESOLVED_REFERENCE!>another<!>()
<!UNRESOLVED_REFERENCE!>unresolved<!>().another
<!UNRESOLVED_REFERENCE!>unresolved<!>().another()
}
fun main() {
@@ -27,27 +27,27 @@ fun test(with: WithClassObject, without: WithoutClassObject, obj: Obj) {
with.<!UNRESOLVED_REFERENCE!>Nested<!>()
with.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>
with.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>()
with.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
with.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.<!UNRESOLVED_REFERENCE!>A<!>
with.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.foo()
with.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.A
with.<!UNRESOLVED_REFERENCE!>NestedObj<!>
with.<!UNRESOLVED_REFERENCE!>NestedObj<!>()
with.<!UNRESOLVED_REFERENCE!>NestedObj<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
with.<!UNRESOLVED_REFERENCE!>NestedObj<!>.foo()
without.<!UNRESOLVED_REFERENCE!>Nested<!>()
without.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>
without.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>()
without.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
without.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.<!UNRESOLVED_REFERENCE!>A<!>
without.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.foo()
without.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.A
without.<!UNRESOLVED_REFERENCE!>NestedObj<!>
without.<!UNRESOLVED_REFERENCE!>NestedObj<!>()
without.<!UNRESOLVED_REFERENCE!>NestedObj<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
without.<!UNRESOLVED_REFERENCE!>NestedObj<!>.foo()
obj.<!UNRESOLVED_REFERENCE!>Nested<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>
obj.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.<!UNRESOLVED_REFERENCE!>A<!>
obj.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.foo()
obj.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.A
obj.<!UNRESOLVED_REFERENCE!>NestedObj<!>
obj.<!UNRESOLVED_REFERENCE!>NestedObj<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedObj<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedObj<!>.foo()
}
@@ -22,5 +22,5 @@ fun main(x: A) {
x.b().<!UNRESOLVED_REFERENCE!>bar<!>()
x.f().<!UNRESOLVED_REFERENCE!>foobaz<!>()
<!UNRESOLVED_REFERENCE!>D<!>().<!UNRESOLVED_REFERENCE!>baz<!>()
<!UNRESOLVED_REFERENCE!>D<!>().baz()
}
@@ -22,6 +22,6 @@ fun test() {
bar(1, z = "", y = 2)
<!INAPPLICABLE_CANDIDATE!>bar<!>(z = "", 1)
<!INAPPLICABLE_CANDIDATE!>bar<!>(1, zz = "",
<!UNRESOLVED_REFERENCE!>zz<!>.<!UNRESOLVED_REFERENCE!>foo<!>
<!UNRESOLVED_REFERENCE!>zz<!>.foo
)
}
}
@@ -22,4 +22,4 @@ fun test() {
B.foo()
}
val bb = <!UNRESOLVED_REFERENCE!>B<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
val bb = <!UNRESOLVED_REFERENCE!>B<!>.foo()
@@ -26,4 +26,4 @@ val a = A
val b = B
val c = A.B
val d = A.B.A
val e = B.<!UNRESOLVED_REFERENCE!>A<!>.<!UNRESOLVED_REFERENCE!>B<!>
val e = B.<!UNRESOLVED_REFERENCE!>A<!>.B
@@ -115,28 +115,28 @@ class C : O.B() {
val n = FromCompanionC::foo
// INVISIBLE: direct superclasses themselves.
val a = <!UNRESOLVED_REFERENCE!>A<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val b = <!UNRESOLVED_REFERENCE!>A<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val a = <!UNRESOLVED_REFERENCE!>A<!>::foo
val b = <!UNRESOLVED_REFERENCE!>A<!>::foo
// DEPRECATED: Classifiers from companions of direct superclasses
val e = <!UNRESOLVED_REFERENCE!>FromCompanionA<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val f = <!UNRESOLVED_REFERENCE!>FromCompanionB<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val e = <!UNRESOLVED_REFERENCE!>FromCompanionA<!>::foo
val f = <!UNRESOLVED_REFERENCE!>FromCompanionB<!>::foo
// INVISIBLE: "cousin" supertypes themselves
val g = <!UNRESOLVED_REFERENCE!>Alpha<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val h = <!UNRESOLVED_REFERENCE!>Beta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val i = <!UNRESOLVED_REFERENCE!>Gamma<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val g = <!UNRESOLVED_REFERENCE!>Alpha<!>::foo
val h = <!UNRESOLVED_REFERENCE!>Beta<!>::foo
val i = <!UNRESOLVED_REFERENCE!>Gamma<!>::foo
// DEPRECATED: classifiers from "cousin" superclasses
val k = <!UNRESOLVED_REFERENCE!>FromAlpha<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val l = <!UNRESOLVED_REFERENCE!>FromBeta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val m = <!UNRESOLVED_REFERENCE!>FromGamma<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val k = <!UNRESOLVED_REFERENCE!>FromAlpha<!>::foo
val l = <!UNRESOLVED_REFERENCE!>FromBeta<!>::foo
val m = <!UNRESOLVED_REFERENCE!>FromGamma<!>::foo
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
val o = <!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val p = <!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val q = <!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val o = <!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::foo
val p = <!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::foo
val q = <!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::foo
// DEPRECATED: Classifiers from supertypes of our own companion
val r = <!UNRESOLVED_REFERENCE!>FromDelta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val r = <!UNRESOLVED_REFERENCE!>FromDelta<!>::foo
}
@@ -115,28 +115,28 @@ class C : O.B() {
val n = FromCompanionC::foo
// INVISIBLE: direct superclasses themselves.
val a = <!UNRESOLVED_REFERENCE!>A<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val b = <!UNRESOLVED_REFERENCE!>A<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val a = <!UNRESOLVED_REFERENCE!>A<!>::foo
val b = <!UNRESOLVED_REFERENCE!>A<!>::foo
// DEPRECATED: Classifiers from companions of direct superclasses
val e = <!UNRESOLVED_REFERENCE!>FromCompanionA<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val f = <!UNRESOLVED_REFERENCE!>FromCompanionB<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val e = <!UNRESOLVED_REFERENCE!>FromCompanionA<!>::foo
val f = <!UNRESOLVED_REFERENCE!>FromCompanionB<!>::foo
// INVISIBLE: "cousin" supertypes themselves
val g = <!UNRESOLVED_REFERENCE!>Alpha<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val h = <!UNRESOLVED_REFERENCE!>Beta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val i = <!UNRESOLVED_REFERENCE!>Gamma<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val g = <!UNRESOLVED_REFERENCE!>Alpha<!>::foo
val h = <!UNRESOLVED_REFERENCE!>Beta<!>::foo
val i = <!UNRESOLVED_REFERENCE!>Gamma<!>::foo
// DEPRECATED: classifiers from "cousin" superclasses
val k = <!UNRESOLVED_REFERENCE!>FromAlpha<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val l = <!UNRESOLVED_REFERENCE!>FromBeta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val m = <!UNRESOLVED_REFERENCE!>FromGamma<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val k = <!UNRESOLVED_REFERENCE!>FromAlpha<!>::foo
val l = <!UNRESOLVED_REFERENCE!>FromBeta<!>::foo
val m = <!UNRESOLVED_REFERENCE!>FromGamma<!>::foo
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
val o = <!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val p = <!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val q = <!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val o = <!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::foo
val p = <!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::foo
val q = <!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::foo
// DEPRECATED: Classifiers from supertypes of our own companion
val r = <!UNRESOLVED_REFERENCE!>FromDelta<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val r = <!UNRESOLVED_REFERENCE!>FromDelta<!>::foo
}
@@ -12,7 +12,7 @@ object A {
}
class Derived : Base() {
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::foo
}
}
@@ -30,7 +30,7 @@ object B {
}
class Derived : Base() {
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::foo
}
}
@@ -48,7 +48,7 @@ object C {
}
class Derived : Base() {
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::foo
}
}
@@ -64,6 +64,6 @@ object D {
}
class Derived : Base() {
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::<!UNRESOLVED_REFERENCE!>foo<!>
val a = <!UNRESOLVED_REFERENCE!>FromBaseCompanion<!>::foo
}
}
@@ -61,7 +61,7 @@ fun test() {
takeNotNull(J.getNAny() ?: J())
val x = <!UNRESOLVED_REFERENCE!>unresolved<!> ?: null
val y = <!UNRESOLVED_REFERENCE!>unresolved<!>.<!UNRESOLVED_REFERENCE!>foo<!> ?: return
val y = <!UNRESOLVED_REFERENCE!>unresolved<!>.foo ?: return
}
fun takeNotNull(s: J) {}
@@ -19,5 +19,5 @@ class C(p: Any, val v: Any) {
var test5
get() { return <!UNRESOLVED_REFERENCE!>p<!> }
set(nv) { <!UNRESOLVED_REFERENCE!>p<!>.<!INAPPLICABLE_CANDIDATE!>let<!> {} }
}
set(nv) { <!UNRESOLVED_REFERENCE!>p<!>.let {} }
}
@@ -1,2 +1,2 @@
// !WITH_NEW_INFERENCE
val unwrapped = <!UNRESOLVED_REFERENCE!>some<!><!UNRESOLVED_REFERENCE!><<!><!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>sdf<!>()<!>()<!><out Any>::<!UNRESOLVED_REFERENCE!>unwrap<!>
val unwrapped = <!UNRESOLVED_REFERENCE!>some<!><<!UNRESOLVED_REFERENCE!>sdf<!>()()<out Any>::unwrap
@@ -1,6 +1,6 @@
// !WITH_NEW_INFERENCE
fun import() {
<!UNRESOLVED_REFERENCE!>import<!> <!UNRESOLVED_REFERENCE!>a<!><!SYNTAX!>.<!><!UNRESOLVED_REFERENCE!>*<!><!SYNTAX!><!>
<!UNRESOLVED_REFERENCE!>import<!> a<!SYNTAX!>.<!><!UNRESOLVED_REFERENCE!>*<!><!SYNTAX!><!>
}
fun composite() {
@@ -8,9 +8,9 @@ fun composite() {
}
fun html() {
<!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>html<!><!UNRESOLVED_REFERENCE!>><!><!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>/<!><!UNRESOLVED_REFERENCE!>html<!>><!SYNTAX!><!>
<!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>html<!>><!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>/<!><!UNRESOLVED_REFERENCE!>html<!>><!SYNTAX!><!>
}
fun html1() {
<!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>html<!><!UNRESOLVED_REFERENCE!>><!><!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>/<!><!UNRESOLVED_REFERENCE!>html<!>><!UNRESOLVED_REFERENCE!>html<!>
<!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>html<!>><!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>/<!><!UNRESOLVED_REFERENCE!>html<!>><!UNRESOLVED_REFERENCE!>html<!>
}
@@ -3,5 +3,5 @@
fun foo() {
val text: List<Any> = null!!
text.<!UNRESOLVED_REFERENCE!>map<!> <!UNRESOLVED_REFERENCE!>Any<!><!SYNTAX!>?<!>::<!UNRESOLVED_REFERENCE!>toString<!>
text.<!UNRESOLVED_REFERENCE!>map<!> Any<!SYNTAX!>?<!>::<!UNRESOLVED_REFERENCE!>toString<!>
}
@@ -59,7 +59,7 @@ fun test(a: A, b: B) {
b.(foo)()
(<!UNRESOLVED_REFERENCE!>b.<!UNRESOLVED_REFERENCE!>foo<!><!>)()
(b.<!UNRESOLVED_REFERENCE!>foo<!>)()
foo(b)
(foo)(b)
@@ -1,4 +1,4 @@
fun foo() {
<!UNRESOLVED_REFERENCE!>x<!>.<!UNRESOLVED_REFERENCE!>yyy<!><<!UNRESOLVED_REFERENCE!>XXX<!>>()
<!UNRESOLVED_REFERENCE!>x<!>.<!UNRESOLVED_REFERENCE!>yyy<!><Int>()
}
<!UNRESOLVED_REFERENCE!>x<!>.yyy<<!UNRESOLVED_REFERENCE!>XXX<!>>()
<!UNRESOLVED_REFERENCE!>x<!>.yyy<Int>()
}
@@ -22,9 +22,9 @@ public interface J {
// FILE: 1.kt
fun test(j: J) {
j.<!AMBIGUITY!>foo<!>({ <!UNRESOLVED_REFERENCE!>it<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" }, "") <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
j.<!AMBIGUITY!>foo<!>({ <!UNRESOLVED_REFERENCE!>it<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" }, "") <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
j.<!AMBIGUITY!>bas<!>({ <!UNRESOLVED_REFERENCE!>it<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" }, "") <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
j.<!AMBIGUITY!>bas<!>({ <!UNRESOLVED_REFERENCE!>it<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" }, "") <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
// NI: TODO
j.bar { it checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" } checkType { _<Int>() }
@@ -21,9 +21,9 @@ interface K {
}
fun test(k: K) {
k.<!AMBIGUITY!>foo<!> { <!UNRESOLVED_REFERENCE!>it<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" } <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
k.<!AMBIGUITY!>foo<!> { <!UNRESOLVED_REFERENCE!>it<!> checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" } <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
k.<!AMBIGUITY!>bas<!> { <!UNRESOLVED_REFERENCE!>it<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { _<Any?>() }; "" } <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
k.<!AMBIGUITY!>bas<!> { <!UNRESOLVED_REFERENCE!>it<!> checkType { _<Any?>() }; "" } <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
// NI: TODO
k.bar { it checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Any>() }; "" } checkType { _<Int>() }
@@ -28,7 +28,7 @@ open class A {
class Simple: A() {
init {
Y().A_Y()
<!UNRESOLVED_REFERENCE!>Z<!>().<!UNRESOLVED_REFERENCE!>A_C_Z<!>()
<!UNRESOLVED_REFERENCE!>Z<!>().A_C_Z()
}
}
@@ -42,6 +42,6 @@ class Y: C() {
init {
Y().A_Y()
<!UNRESOLVED_REFERENCE!>Z<!>().<!UNRESOLVED_REFERENCE!>A_C_Z<!>()
<!UNRESOLVED_REFERENCE!>Z<!>().A_C_Z()
}
}
+3 -3
View File
@@ -5,11 +5,11 @@ package a
fun foo() {
val b : <!UNRESOLVED_REFERENCE!>B<!> = <!UNRESOLVED_REFERENCE!>B<!>() //only B() is unresolved, but in ": B" and "B.foo()" B should also be unresolved
<!UNRESOLVED_REFERENCE!>B<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
<!UNRESOLVED_REFERENCE!>B<!>.foo()
<!UNRESOLVED_REFERENCE!>P<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
<!UNRESOLVED_REFERENCE!>P<!>.foo()
<!UNRESOLVED_REFERENCE!>M<!>.<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>M<!>.bar()
}
class A() {
@@ -6,6 +6,6 @@ class Outer {
}
constructor(x: Int)
constructor(x: Int, y: Int, z: Int = x + Inner().prop <!AMBIGUITY!>+<!> <!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.<!UNRESOLVED_REFERENCE!>Inner<!>().<!UNRESOLVED_REFERENCE!>prop<!>) :
this(x + Inner().prop <!AMBIGUITY!>+<!> <!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.<!UNRESOLVED_REFERENCE!>Inner<!>().<!UNRESOLVED_REFERENCE!>prop<!>)
constructor(x: Int, y: Int, z: Int = x + Inner().prop <!AMBIGUITY!>+<!> <!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.<!UNRESOLVED_REFERENCE!>Inner<!>().prop) :
this(x + Inner().prop <!AMBIGUITY!>+<!> <!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.<!UNRESOLVED_REFERENCE!>Inner<!>().prop)
}
@@ -33,6 +33,6 @@ fun test() {
x.baz(1).checkType { _<Unit>() }
x.<!INAPPLICABLE_CANDIDATE!>baz<!>(1, 2)
x.<!UNRESOLVED_REFERENCE!>foobar<!>().<!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
x.<!UNRESOLVED_REFERENCE!>foobar<!>().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
}
}
@@ -12,4 +12,4 @@ typealias CA = C
val test1 = CA
val test2 = CA.<!UNRESOLVED_REFERENCE!>Companion<!>
val test3 = CA.x
val test4 = CA.<!UNRESOLVED_REFERENCE!>Companion<!>.<!UNRESOLVED_REFERENCE!>x<!>
val test4 = CA.<!UNRESOLVED_REFERENCE!>Companion<!>.x
@@ -7,5 +7,5 @@ val <T : Any> KClass<T>.java: Class<T> get() = null!!
val <T : Any> KClass<T>.javaObjectType: Class<T>
get() {
return java.<!UNRESOLVED_REFERENCE!>lang<!>.<!UNRESOLVED_REFERENCE!>Class<!>::class.<!INAPPLICABLE_CANDIDATE!>java<!> as Class<T>
return java.<!UNRESOLVED_REFERENCE!>lang<!>.Class::class.<!INAPPLICABLE_CANDIDATE!>java<!> as Class<T>
}
@@ -6,5 +6,5 @@ val <T : Any> KClass<T>.java: Class<T> get() = null!!
val <T : Any> KClass<T>.foo: Any?
get() {
return java.<!UNRESOLVED_REFERENCE!>lang<!>.<!UNRESOLVED_REFERENCE!>Integer<!>::<!UNRESOLVED_REFERENCE!>hashCode<!>
return java.<!UNRESOLVED_REFERENCE!>lang<!>.Integer::hashCode
}
@@ -7,7 +7,7 @@ interface A : MutableCollection<String> {
}
fun foo(x: MutableCollection<Int>, y: Collection<String>, z: A) {
x.<!UNRESOLVED_REFERENCE!>nonExistingMethod<!>(1).<!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
x.<!UNRESOLVED_REFERENCE!>nonExistingMethod<!>(1).checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
y.<!UNRESOLVED_REFERENCE!>nonExistingMethod<!>("")
z.nonExistingMethod("")
}
@@ -13,9 +13,9 @@ class C {
}
}
val c = C.<!UNRESOLVED_REFERENCE!>Self<!>.<!UNRESOLVED_REFERENCE!>Self<!>()
val n = C.<!UNRESOLVED_REFERENCE!>Self<!>.<!UNRESOLVED_REFERENCE!>Nested<!>()
val x = C.<!UNRESOLVED_REFERENCE!>Self<!>.<!UNRESOLVED_REFERENCE!>X<!>
val n2 = C.Nested.<!UNRESOLVED_REFERENCE!>Root<!>.<!UNRESOLVED_REFERENCE!>Nested<!>.<!UNRESOLVED_REFERENCE!>N2<!>()
val ic = C.<!UNRESOLVED_REFERENCE!>Self<!>.<!UNRESOLVED_REFERENCE!>InCompanion<!>()
val ok = C.<!UNRESOLVED_REFERENCE!>Self<!>.<!UNRESOLVED_REFERENCE!>ok<!>
val c = C.<!UNRESOLVED_REFERENCE!>Self<!>.Self()
val n = C.<!UNRESOLVED_REFERENCE!>Self<!>.Nested()
val x = C.<!UNRESOLVED_REFERENCE!>Self<!>.X
val n2 = C.Nested.<!UNRESOLVED_REFERENCE!>Root<!>.Nested.N2()
val ic = C.<!UNRESOLVED_REFERENCE!>Self<!>.InCompanion()
val ok = C.<!UNRESOLVED_REFERENCE!>Self<!>.ok
@@ -53,7 +53,7 @@ fun foo(
test.ClassAlias::func
test.ClassSample.Nested::func
test.ClassAlias.<!UNRESOLVED_REFERENCE!>Nested<!>::<!UNRESOLVED_REFERENCE!>func<!>
test.ClassAlias.<!UNRESOLVED_REFERENCE!>Nested<!>::func
test.ObjectSample::Nested
test.ObjectAlias::Nested
@@ -62,7 +62,7 @@ fun foo(
test.ObjectAlias::func
test.ObjectSample.Nested::func
test.ObjectAlias.<!UNRESOLVED_REFERENCE!>Nested<!>::<!UNRESOLVED_REFERENCE!>func<!>
test.ObjectAlias.<!UNRESOLVED_REFERENCE!>Nested<!>::func
test.EnumSample::Nested
test.EnumAlias::Nested
@@ -71,5 +71,5 @@ fun foo(
test.EnumAlias::func
test.EnumSample.Nested::func
test.EnumAlias.<!UNRESOLVED_REFERENCE!>Nested<!>::<!UNRESOLVED_REFERENCE!>func<!>
test.EnumAlias.<!UNRESOLVED_REFERENCE!>Nested<!>::func
}