Error on using extension function type as an upper bound

This commit is contained in:
Michael Nedzelsky
2015-10-28 18:46:09 +03:00
parent ee46ec1126
commit c318a13e6c
10 changed files with 70 additions and 5 deletions
@@ -1,13 +1,13 @@
fun <E : String?, T : ((CharSequence).() -> Unit)?> foo(x: E, y: T) {
fun <E : String?, T : ((CharSequence) -> Unit)?> foo(x: E, y: T) {
if (x != null) {
<!DEBUG_INFO_SMARTCAST!>x<!>.<!UNSAFE_CALL, INVOKE_EXTENSION_ON_NOT_EXTENSION_FUNCTION!>y<!>()
<!UNSAFE_CALL!>y<!>(<!DEBUG_INFO_SMARTCAST!>x<!>)
}
if (y != null) {
x<!UNSAFE_CALL!>.<!><!INVOKE_EXTENSION_ON_NOT_EXTENSION_FUNCTION, DEBUG_INFO_SMARTCAST!>y<!>()
<!DEBUG_INFO_SMARTCAST!>y<!>(<!TYPE_MISMATCH!>x<!>)
}
if (x != null && y != null) {
<!DEBUG_INFO_SMARTCAST!>x<!>.<!INVOKE_EXTENSION_ON_NOT_EXTENSION_FUNCTION, DEBUG_INFO_SMARTCAST!>y<!>()
<!DEBUG_INFO_SMARTCAST!>y<!>(<!DEBUG_INFO_SMARTCAST!>x<!>)
}
}
@@ -1,3 +1,3 @@
package
public fun </*0*/ E : kotlin.String?, /*1*/ T : (kotlin.CharSequence.() -> kotlin.Unit)?> foo(/*0*/ x: E, /*1*/ y: T): kotlin.Unit
public fun </*0*/ E : kotlin.String?, /*1*/ T : ((kotlin.CharSequence) -> kotlin.Unit)?> foo(/*0*/ x: E, /*1*/ y: T): kotlin.Unit