这是我的最小示例:当我按照此处的说明 (https://docs.assemblyscript.org/quick-start) 进行干净安装和干净目录并将其用作我的 index.ts 时,出现编译器错误
索引.ts:
// The entry file of your WebAssembly module.
<strong i="7">@unmanaged</strong>
export class Foo {
use_anon_function(fn: (value: i32) => i32): Array<i32> {
return new Array<i32>();
}
}
export function anon_test(bars: Foo, value: i32): i32 {
let bar_ids = bars.use_anon_function((bar: i32) =>
value
);
return bar_ids.length;
}
npm run asbuild
输出:
> @ asbuild /Users/duncanuszkay/src/github.com/Shopify/temp-delete
> npm run asbuild:untouched && npm run asbuild:optimized
> @ asbuild:untouched /Users/duncanuszkay/src/github.com/Shopify/temp-delete
> asc assembly/index.ts -b build/untouched.wasm -t build/untouched.wat --sourceMap --validate --debug
[wasm-validator error in function $assembly/index/anon_test~anonymous|0] unexpected false: local.get index must be small enough, on
[i32] (local.get $1)
[wasm-validator error in function $assembly/index/anon_test~anonymous|0] unexpected false: local.get must have proper type, on
[i32] (local.get $1)
ERROR: Validate error
at /Users/duncanuszkay/src/github.com/Shopify/temp-delete/node_modules/assemblyscript/cli/asc.js:573:25
at measure (/Users/duncanuszkay/src/github.com/Shopify/temp-delete/node_modules/assemblyscript/cli/asc.js:880:3)
at Object.main (/Users/duncanuszkay/src/github.com/Shopify/temp-delete/node_modules/assemblyscript/cli/asc.js:570:27)
at Object.<anonymous> (/Users/duncanuszkay/src/github.com/Shopify/temp-delete/node_modules/assemblyscript/bin/asc:21:26)
at Module._compile (internal/modules/cjs/loader.js:774:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
at Module.load (internal/modules/cjs/loader.js:641:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)
at internal/main/run_main_module.js:17:11
如果我不在 anon 函数中使用函数参数,它会编译:
索引.ts
// The entry file of your WebAssembly module.
<strong i="16">@unmanaged</strong>
export class Foo {
use_anon_function(fn: (value: i32) => i32): Array<i32> {
return new Array<i32>();
}
}
export function anon_test(bars: Foo, value: i32): i32 {
let bar_ids = bars.use_anon_function((bar: i32) =>
100
);
return bar_ids.length;
}
看起来我不能在匿名函数中使用函数参数? 不过,给出的错误消息似乎并不相关。
如果您需要更多信息,请告诉我
您好,目前还不支持关闭。 查看类似的问题/问题:#754、#661、#242、#173 和 #798
@DuncanUszkay1在接下来的每日夜间构建中,此类关闭案例将因“AS100:未实施”而提前失败。 错误而不是“未知”验证错误
由于我们发出了正确的“未实现”错误,并且我们已经有很多与闭包问题相关的问题,我正在关闭它。 请注意 #798 的进展
最有用的评论
@DuncanUszkay1在接下来的每日夜间构建中,此类关闭案例将因“AS100:未实施”而提前失败。 错误而不是“未知”验证错误