Disallowed using type parameter as reified type argument.
#KT-3050 fixed
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
fun <reified T> T.plus(<!UNUSED_PARAMETER!>p<!>: T): T = this
|
||||
|
||||
fun <reified T> T.invoke(): T = this
|
||||
|
||||
fun <A> main(tp: A, any: Any) {
|
||||
tp <!TYPE_PARAMETER_AS_REIFIED!>+<!> tp
|
||||
any + any
|
||||
|
||||
<!TYPE_PARAMETER_AS_REIFIED!>tp<!>()
|
||||
any()
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
class C<reified T>
|
||||
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
fun <A> main() {
|
||||
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>C<!>()
|
||||
|
||||
val <!UNUSED_VARIABLE!>a<!>: C<A> = <!TYPE_PARAMETER_AS_REIFIED!>C<!>()
|
||||
<!TYPE_PARAMETER_AS_REIFIED!>C<!><A>()
|
||||
|
||||
val <!UNUSED_VARIABLE!>b<!>: C<Int> = C()
|
||||
C<Int>()
|
||||
|
||||
// TODO svtk, uncomment when extensions are called for nested calls!
|
||||
//val < !UNUSED_VARIABLE!>с< !>: C<A> = id(< !TYPE_PARAMETER_AS_REIFIED!>C< !>())
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
fun <reified T> f(): T = throw UnsupportedOperationException()
|
||||
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
fun <A> main() {
|
||||
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>f<!>()
|
||||
|
||||
val <!UNUSED_VARIABLE!>a<!>: A = <!TYPE_PARAMETER_AS_REIFIED!>f<!>()
|
||||
<!TYPE_PARAMETER_AS_REIFIED!>f<!><A>()
|
||||
|
||||
val <!UNUSED_VARIABLE!>b<!>: Int = f()
|
||||
f<Int>()
|
||||
|
||||
// TODO svtk, uncomment when extensions are called for nested calls!
|
||||
//val < !UNUSED_VARIABLE!>с< !>: A = id(< !TYPE_PARAMETER_AS_REIFIED!>f< !>())
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
val <reified T> v: T
|
||||
get() = throw UnsupportedOperationException()
|
||||
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
fun <A> main() {
|
||||
val <!UNUSED_VARIABLE!>a<!> = <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER, DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>v<!>
|
||||
|
||||
val <!UNUSED_VARIABLE!>b<!>: A = <!TYPE_PARAMETER_AS_REIFIED!>v<!>
|
||||
|
||||
val <!UNUSED_VARIABLE!>c<!>: Int = v
|
||||
|
||||
// TODO svtk, uncomment when extensions are called for nested calls!
|
||||
//val < !UNUSED_VARIABLE!>d< !>: A = id(< !TYPE_PARAMETER_AS_REIFIED!>v< !>)
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class C<reified T>
|
||||
|
||||
fun <A> main(<!UNUSED_PARAMETER!>p1<!>: C<A>, <!UNUSED_PARAMETER!>p2<!>: C<Int>) {
|
||||
}
|
||||
Reference in New Issue
Block a user