JS frontend: additional check for nativeSetter -- check that the return type is either Unit or a supertype of the second parameter's type.

This commit is contained in:
Zalim Bashorov
2014-12-30 16:49:16 +03:00
parent 76bafb9634
commit 619854a7a3
17 changed files with 134 additions and 34 deletions
@@ -7,6 +7,8 @@ kotlin.js.native() internal final class A {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
kotlin.js.nativeSetter() internal final fun put(/*0*/ a: kotlin.Number, /*1*/ v: kotlin.String): kotlin.Unit
kotlin.js.nativeSetter() internal final fun set(/*0*/ a: kotlin.String, /*1*/ v: kotlin.Any?): kotlin.Any?
kotlin.js.nativeSetter() internal final fun set4(/*0*/ a: kotlin.Double, /*1*/ v: kotlin.String): kotlin.Any
kotlin.js.nativeSetter() internal final fun set5(/*0*/ a: kotlin.Double, /*1*/ v: kotlin.String): kotlin.CharSequence
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal class object <class-object-for-A> {
@@ -16,6 +18,8 @@ kotlin.js.native() internal final class A {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
kotlin.js.nativeSetter() internal final fun put(/*0*/ a: kotlin.Number, /*1*/ v: kotlin.String): kotlin.Unit
kotlin.js.nativeSetter() internal final fun set(/*0*/ a: kotlin.String, /*1*/ v: kotlin.Any?): kotlin.Any?
kotlin.js.nativeSetter() internal final fun set4(/*0*/ a: kotlin.Double, /*1*/ v: kotlin.String): kotlin.Any
kotlin.js.nativeSetter() internal final fun set5(/*0*/ a: kotlin.Double, /*1*/ v: kotlin.String): kotlin.CharSequence
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -73,6 +77,7 @@ kotlin.js.native() internal final class C {
kotlin.js.nativeSetter() internal final fun set(/*0*/ a: A): kotlin.Any?
kotlin.js.nativeSetter() internal final fun set(/*0*/ a: A, /*1*/ v: kotlin.Any?): kotlin.Unit
kotlin.js.nativeSetter() internal final fun set(/*0*/ a: kotlin.String, /*1*/ v: kotlin.Any, /*2*/ v2: kotlin.Any): kotlin.Unit
kotlin.js.nativeSetter() internal final fun set6(/*0*/ a: kotlin.Double, /*1*/ v: kotlin.String): kotlin.Number
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
kotlin.js.nativeSetter() internal final fun kotlin.Int.set(/*0*/ a: kotlin.String, /*1*/ v: kotlin.Int): kotlin.Unit
kotlin.js.nativeSetter() internal final fun kotlin.Int.set2(/*0*/ a: kotlin.Number, /*1*/ v: kotlin.String?): kotlin.String