JS: prohibited extension function arguments in external functions; removed extension receiver in jQuery declarations.

This commit is contained in:
Anton Bannykh
2017-03-03 15:48:29 +03:00
parent 73e94ffde0
commit fcffd190d0
7 changed files with 92 additions and 11 deletions
@@ -0,0 +1,25 @@
external fun foo(<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>f: Int.() -> Int<!>)
external fun bar(<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>vararg f: Int.() -> Int<!>)
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>external fun baz(): Int.() -> Int<!>
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>external val prop: Int.() -> Int<!>
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>external var prop2: Int.() -> Int<!>
external val propGet
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>get(): Int.() -> Int<!> = definedExternally
external var propSet
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>get(): Int.() -> Int<!> = definedExternally
set(<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>v: Int.() -> Int<!>) = definedExternally
external class A(<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>f: Int.() -> Int<!>)
external data class <!WRONG_EXTERNAL_DECLARATION!>B(
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION, EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>val a: Int.() -> Int<!>,
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION, EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>var b: Int.() -> Int<!>
)<!> {
<!EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION!>val c: Int.() -> Int<!>
}
@@ -0,0 +1,29 @@
package
public external val prop: kotlin.Int.() -> kotlin.Int
public external var prop2: kotlin.Int.() -> kotlin.Int
public external val propGet: kotlin.Int.() -> kotlin.Int
public external var propSet: kotlin.Int.() -> kotlin.Int
public external fun bar(/*0*/ vararg f: kotlin.Int.() -> kotlin.Int /*kotlin.Array<out kotlin.Int.() -> kotlin.Int>*/): kotlin.Unit
public external fun baz(): kotlin.Int.() -> kotlin.Int
public external fun foo(/*0*/ f: kotlin.Int.() -> kotlin.Int): kotlin.Unit
public external final class A {
public constructor A(/*0*/ f: kotlin.Int.() -> kotlin.Int)
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
}
public external final data class B {
public constructor B(/*0*/ a: kotlin.Int.() -> kotlin.Int, /*1*/ b: kotlin.Int.() -> kotlin.Int)
public final val a: kotlin.Int.() -> kotlin.Int
public final var b: kotlin.Int.() -> kotlin.Int
public final val c: kotlin.Int.() -> kotlin.Int
public final operator /*synthesized*/ fun component1(): kotlin.Int.() -> kotlin.Int
public final operator /*synthesized*/ fun component2(): kotlin.Int.() -> kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ a: kotlin.Int.() -> kotlin.Int = ..., /*1*/ b: kotlin.Int.() -> kotlin.Int = ...): B
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}