Prohibit using dynamic as an argument for reified type parameters

This commit is contained in:
Andrey Breslav
2014-11-25 14:25:30 +03:00
parent d5fdfcb797
commit 304d22553c
7 changed files with 43 additions and 10 deletions
@@ -0,0 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// MODULE[js]: m1
// FILE: k.kt
fun <reified T> foo(t: T) {}
class C<reified T>(t: T)
fun test(d: dynamic) {
<!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>foo<!><dynamic>(d)
<!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>foo<!>(d)
<!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>C<!><dynamic>(d)
<!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>C<!>(d)
}
@@ -0,0 +1,11 @@
package
internal fun </*0*/ reified T> foo(/*0*/ t: T): kotlin.Unit
internal fun test(/*0*/ d: dynamic): kotlin.Unit
internal final class C</*0*/ reified T> {
public constructor C</*0*/ reified T>(/*0*/ t: T)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}