Packed Type
WasmGC introduces packed types, which are i8
and i16
. They can only exist in array and struct field types. When taking them out of fields, it's required that using special *.get_s
or *.get_u
instructions.
Misuse of *.get
It's invalid to use *.get
instructions to take out packed types.
wasm
(module
(type (struct (field i8)))
(func (param (ref 0)) (result i32)
local.get 0
struct.get 0 0))
Quick fixes are available for replacing *.get
with *.get_s
or *.get_u
.
Misuse of *.get_s
or *.get_u
It's invalid to use *.get_s
or *.get_u
instructions to take out normal value types.
wasm
(module
(type (struct (field i32)))
(func (param (ref 0)) (result i32)
local.get 0
struct.get_s 0 0)
(func (param (ref 0)) (result i32)
local.get 0
struct.get_u 0 0))
Quick fixes are available for replacing *.get_s
or *.get_u
with *.get
.