[Wasm] Add @WasmImport diagnostics (KT-56943)
WasmImport annotated functions: * Restricted to top-level external functions * Only supports primitive numbers, booleans and Unit (as return type only) in its signature * Can't have default parameter values * Can't have vararg parameters
This commit is contained in:
committed by
Space Team
parent
f79607d32d
commit
1da96213ca
@@ -0,0 +1,49 @@
|
||||
import kotlin.wasm.WasmImport
|
||||
|
||||
@WasmImport("a", "b")
|
||||
external fun foo0(): Unit
|
||||
|
||||
<!WASM_IMPORT_ON_NON_EXTERNAL_DECLARATION!>@WasmImport("a", "b")<!>
|
||||
fun foo1() {
|
||||
}
|
||||
|
||||
external class C {
|
||||
<!NESTED_WASM_IMPORT!>@WasmImport("a", "b")<!>
|
||||
fun memberFunction()
|
||||
}
|
||||
|
||||
fun foo2() {
|
||||
<!NESTED_WASM_IMPORT, WASM_IMPORT_ON_NON_EXTERNAL_DECLARATION!>@WasmImport("a", "b")<!>
|
||||
fun localFun() {
|
||||
}
|
||||
}
|
||||
|
||||
val p1 = (<!NESTED_WASM_IMPORT, WASM_IMPORT_ON_NON_EXTERNAL_DECLARATION!>@WasmImport("a", "b")<!> fun () {})
|
||||
|
||||
@WasmImport("a", "b")
|
||||
external fun foo3(
|
||||
<!WASM_IMPORT_UNSUPPORTED_PARAMETER_TYPE!>p0: Unit<!>,
|
||||
<!WASM_IMPORT_UNSUPPORTED_PARAMETER_TYPE!>p1: String<!>,
|
||||
<!WASM_IMPORT_UNSUPPORTED_PARAMETER_TYPE!>p2: Any<!>,
|
||||
<!WASM_IMPORT_UNSUPPORTED_PARAMETER_TYPE!>p3: Int?<!>,
|
||||
<!WASM_IMPORT_UNSUPPORTED_PARAMETER_TYPE!>p4: Boolean?<!>
|
||||
): Unit
|
||||
|
||||
|
||||
<!WASM_IMPORT_UNSUPPORTED_RETURN_TYPE!>@WasmImport("a", "b")
|
||||
external fun returnNullableUnit(): Unit?<!>
|
||||
|
||||
<!WASM_IMPORT_UNSUPPORTED_RETURN_TYPE!>@WasmImport("a", "b")
|
||||
external fun returnNullableBoolean(): Boolean?<!>
|
||||
|
||||
<!WASM_IMPORT_UNSUPPORTED_RETURN_TYPE!>@WasmImport("a", "b")
|
||||
external fun returnNullableAny(): Any?<!>
|
||||
|
||||
<!WASM_IMPORT_UNSUPPORTED_RETURN_TYPE!>@WasmImport("a", "b")
|
||||
external fun <T> fooGeneric(<!WASM_IMPORT_UNSUPPORTED_PARAMETER_TYPE!>x: T<!>): T<!>
|
||||
|
||||
@WasmImport("a", "b")
|
||||
external fun fooDeafultAndVararg(
|
||||
<!WASM_IMPORT_PARAMETER_DEFAULT_VALUE!>a: Int = definedExternally<!>,
|
||||
<!WASM_IMPORT_UNSUPPORTED_PARAMETER_TYPE, WASM_IMPORT_VARARG_PARAMETER!>vararg b: Int<!>
|
||||
): Unit
|
||||
Reference in New Issue
Block a user