73799e2c3c
It's done with similar constructions where possible trying to preserve intended behavior. Some usages are removed because they test exactly the feature that we are going to drop soon.
55 lines
1.0 KiB
Kotlin
Vendored
55 lines
1.0 KiB
Kotlin
Vendored
package bar
|
|
|
|
|
|
// should be thrown away
|
|
|
|
fun <R> List<R>.a() {}
|
|
|
|
fun test1(i: Int?) {
|
|
1.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>a<!>()
|
|
i.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>a<!>()
|
|
}
|
|
|
|
fun <R> test2(c: Collection<R>) {
|
|
c.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>a<!>()
|
|
}
|
|
|
|
fun Int.foo() {}
|
|
|
|
fun test3(s: String?) {
|
|
"".<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>()
|
|
s.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>()
|
|
"".<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>(1)
|
|
s.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>("a")
|
|
}
|
|
|
|
interface A
|
|
fun <T: A> T.c() {}
|
|
|
|
fun test4() {
|
|
1.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>c<!>()
|
|
}
|
|
|
|
|
|
// should be an error on receiver, shouldn't be thrown away
|
|
|
|
fun test5() {
|
|
<!TYPE_MISMATCH!>1<!>.(fun String.()=1)()
|
|
}
|
|
|
|
fun <R: Any> R?.sure() : R = this!!
|
|
|
|
fun <T> test6(l: List<T>?) {
|
|
<!TYPE_MISMATCH!>l<!>.sure<<!UPPER_BOUND_VIOLATED!>T<!>>()
|
|
}
|
|
|
|
|
|
fun List<String>.b() {}
|
|
|
|
fun test7(l: List<String?>) {
|
|
<!TYPE_MISMATCH!>l<!>.b()
|
|
}
|
|
|
|
fun test8(l: List<Any>?) {
|
|
<!TYPE_MISMATCH!>l<!>.b()
|
|
} |