Report error if fun interface method has JVM name getFunctionDelegate

This is needed so that it wouldn't clash with the corresponding member
from the kotlin/jvm/internal/FunctionAdapter interface, which all fun
interface wrappers will implement to get proper equals/hashCode. The
workaround is to rename the fun interface method.

 #KT-33455
This commit is contained in:
Alexander Udalov
2020-04-22 18:21:49 +02:00
parent 55934ff63a
commit b77e5a21ec
10 changed files with 165 additions and 1 deletions
@@ -0,0 +1,32 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun interface F1 {
val <!FUNCTION_DELEGATE_MEMBER_NAME_CLASH!>functionDelegate<!>: Function<*>? get() = null
fun invoke()
}
fun interface F2 {
fun <!FUNCTION_DELEGATE_MEMBER_NAME_CLASH!>getFunctionDelegate<!>(): Function<*>? = null
fun invoke()
}
fun interface F3 {
val getFunctionDelegate: Function<*>? get() = null
fun invoke()
}
fun interface F4 {
fun functionDelegate(): Function<*>? = null
fun invoke()
}
fun interface F5 {
val <!FUNCTION_DELEGATE_MEMBER_NAME_CLASH!>functionDelegate<!>: Any? get() = null
fun invoke()
}
fun interface F6 {
val String.functionDelegate: Function<*>? get() = null
fun getFunctionDelegate(x: Any?): Function<*>? = null
fun invoke()
}