Support "::foo" as a short-hand for "this::foo"

#KT-15667 Fixed
This commit is contained in:
Alexander Udalov
2017-08-24 17:15:42 +03:00
parent d2ff821a3b
commit 2877314313
24 changed files with 195 additions and 116 deletions
@@ -0,0 +1,28 @@
// !LANGUAGE: -CallableReferencesToClassMembersWithEmptyLHS
class A {
fun memberFunction() {}
val memberProperty: Int get() = 42
fun test() {
(::<!UNSUPPORTED_FEATURE!>memberFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>memberProperty<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionProperty<!>)()
}
inner class B {
fun memberFunction() { }
val memberProperty: Int get() = 43
fun test() {
(::<!UNSUPPORTED_FEATURE!>memberFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>memberProperty<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionProperty<!>)()
}
}
}
fun A.extensionFunction() {}
val A.extensionProperty: Int get() = 44
@@ -0,0 +1,24 @@
package
public val A.extensionProperty: kotlin.Int
public fun A.extensionFunction(): kotlin.Unit
public final class A {
public constructor A()
public final val memberProperty: 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 final fun memberFunction(): kotlin.Unit
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final inner class B {
public constructor B()
public final val memberProperty: 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 final fun memberFunction(): kotlin.Unit
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}