Function getBodies [src]

Prototype

pub fn getBodies(declaration: Declaration, extra_end: u32, zir: Zir) Bodies

Parameters

declaration: Declarationextra_end: u32zir: Zir

Source

pub fn getBodies(declaration: Declaration, extra_end: u32, zir: Zir) Bodies { var extra_index: u32 = extra_end; const value_body_len = declaration.value_body_len; const type_body_len: u32 = len: { if (!declaration.flags().kind.hasTypeBody()) break :len 0; const len = zir.extra[extra_index]; extra_index += 1; break :len len; }; const align_body_len, const linksection_body_len, const addrspace_body_len = lens: { if (!declaration.flags.kind.hasSpecialBodies()) { break :lens .{ 0, 0, 0 }; } const lens = zir.extra[extra_index..][0..3].*; extra_index += 3; break :lens lens; }; return .{ .type_body = if (type_body_len == 0) null else b: { const b = zir.bodySlice(extra_index, type_body_len); extra_index += type_body_len; break :b b; }, .align_body = if (align_body_len == 0) null else b: { const b = zir.bodySlice(extra_index, align_body_len); extra_index += align_body_len; break :b b; }, .linksection_body = if (linksection_body_len == 0) null else b: { const b = zir.bodySlice(extra_index, linksection_body_len); extra_index += linksection_body_len; break :b b; }, .addrspace_body = if (addrspace_body_len == 0) null else b: { const b = zir.bodySlice(extra_index, addrspace_body_len); extra_index += addrspace_body_len; break :b b; }, .value_body = if (value_body_len == 0) null else b: { const b = zir.bodySlice(extra_index, value_body_len); extra_index += value_body_len; break :b b; }, }; }