pub struct FunctionOps {
pub index: u32,
pub export_name: Option<String>,
pub ops: Vec<WasmOp>,
pub op_offsets: Vec<u32>,
pub unsupported: Option<String>,
}Expand description
Decoded function with its WasmOp sequence
Fields§
§index: u32Function index in the module (includes imported functions)
export_name: Option<String>Export name if this function is exported
ops: Vec<WasmOp>The WASM operations in this function body
op_offsets: Vec<u32>VCR-DBG-001 step 1 (#394): module-relative wasm byte offset of each op in
ops (same index → same op). This is the address space DWARF-for-wasm
.debug_line keys on, so it is the bridge from synth’s op-index
source_line to the input wasm’s DWARF (wasm-offset → source). PURELY
ADDITIVE metadata: no codegen path reads it, so emitted .text is
unchanged and the frozen fixtures stay bit-identical. Empty until consumed
by the DWARF emitter (Tier 1).
unsupported: Option<String>Some(reason) when the body contained a value-affecting operator the
decoder cannot lower (e.g. scalar f32/f64 — #369, bulk-memory
memory.copy/fill). Such an op would otherwise be silently dropped
(convert_operator → None), leaving the operand stack wrong and the
function a silent miscompile. The compile path LOUD-SKIPS a flagged
function (diagnostic + symbol absent → link error names it) instead —
the #180/#185 “unsupported op must Err, never silently continue”
contract. None once every op decoded or was intentionally ignorable
(Nop/Unreachable).
Trait Implementations§
Source§impl Clone for FunctionOps
impl Clone for FunctionOps
Source§fn clone(&self) -> FunctionOps
fn clone(&self) -> FunctionOps
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more