Recognize possible generic property call chain ('a.b<T>.c') on '::' LHS.
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
package test
|
||||
|
||||
object Wrong
|
||||
object Right
|
||||
|
||||
class a {
|
||||
class b<T> {
|
||||
class c {
|
||||
fun foo() = Wrong
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Int.foo() = Right
|
||||
|
||||
class Test {
|
||||
val a: List<Int> = null!!
|
||||
|
||||
val <T> List<T>.b: Int get() = 42
|
||||
|
||||
val Int.c: Int get() = 42
|
||||
|
||||
val test1: () -> Right = <!RESERVED_SYNTAX_IN_CALLABLE_REFERENCE_LHS!><!DEBUG_INFO_MISSING_UNRESOLVED!>a<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>b<!><<!DEBUG_INFO_MISSING_UNRESOLVED!>Int<!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>c<!><!>::<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>
|
||||
val test1a: () -> Right = a.b.c::foo
|
||||
|
||||
val test2: () -> Right = <!RESERVED_SYNTAX_IN_CALLABLE_REFERENCE_LHS!><!DEBUG_INFO_MISSING_UNRESOLVED!>a<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>b<!><<!DEBUG_INFO_MISSING_UNRESOLVED!>Int<!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>c<!><!>?::<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public fun kotlin.Int.foo(): test.Right
|
||||
|
||||
public object Right {
|
||||
private constructor Right()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Test {
|
||||
public constructor Test()
|
||||
public final val a: kotlin.collections.List<kotlin.Int>
|
||||
public final val test1: () -> test.Right
|
||||
public final val test1a: () -> test.Right
|
||||
public final val test2: () -> test.Right
|
||||
public final val </*0*/ T> kotlin.collections.List<T>.b: kotlin.Int
|
||||
public final val kotlin.Int.c: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public object Wrong {
|
||||
private constructor Wrong()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class a {
|
||||
public constructor a()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final class b</*0*/ T> {
|
||||
public constructor b</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final class c {
|
||||
public constructor c()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): test.Wrong
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user