Files
kotlin/compiler/testData/diagnostics/tests/callableReference/emptyLhs.kt
Alexander Udalov 661f4efc68 Forbid callable references to members and extensions with empty LHS
This syntax is reserved to be likely used in the future as a shorthand for
"this::foo" where the resulting expression doesn't take the receiver as a
parameter but has "this" already bound to it
2015-10-03 04:37:04 +03:00

41 lines
1.0 KiB
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_EXPRESSION
val topLevelVal = 1
fun topLevelFun() = 2
val A.extensionVal: Int get() = 3
fun A.extensionFun(): Int = 4
class A {
val memberVal = 5
fun memberFun() = 6
val ok1 = ::topLevelVal
val ok2 = ::topLevelFun
fun fail1() {
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>extensionVal<!>
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>extensionFun<!>
}
fun fail2() {
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>memberVal<!>
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>memberFun<!>
}
}
val ok1 = ::topLevelVal
val ok2 = ::topLevelFun
fun A.fail1() {
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>extensionVal<!>
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>extensionFun<!>
}
fun A.fail2() {
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>memberVal<!>
::<!CALLABLE_REFERENCE_TO_MEMBER_OR_EXTENSION_WITH_EMPTY_LHS!>memberFun<!>
}