Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › compiler/ › aro/ › backend/ › Ir.zig › writeRef
writeRef
Ir.writeRef
fn writeRef (ir : Ir , decl : *const Decl , ref_map : *RefMap , ref : Ref , term : std .Io .Terminal ) !void
File
Code
fn writeRef (ir : Ir , decl : *const Decl , ref_map : *RefMap , ref : Ref , term : std .Io .Terminal ) !void {
const w = term .writer ;
assert (ref != .none );
const index = @backingInt (ref );
const ty_ref = decl .instructions .items (.ty )[index ];
if (decl .instructions .items (.tag )[index ] == .constant ) {
try ir .writeType (ty_ref , term );
const v_ref = decl .instructions .items (.data )[index ].constant ;
try w .writeByte (' ' );
try ir .writeValue (v_ref , term );
return ;
} else if (decl .instructions .items (.tag )[index ] == .symbol ) {
const name = decl .instructions .items (.data )[index ].label ;
try ir .writeType (ty_ref , term );
try term .setColor (REF );
try w .print (" @{s}" , .{name });
return ;
}
try ir .writeType (ty_ref , term );
try term .setColor (REF );
const ref_index = ref_map .getIndex (ref ).?;
try w .print (" %{d}" , .{ref_index });
}