@@ -17613,11 +17613,11 @@ fn zirFieldType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
|
||||
const inst_data = sema.code.instructions.items(.data)[inst].pl_node;
|
||||
const extra = sema.code.extraData(Zir.Inst.FieldType, inst_data.payload_index).data;
|
||||
const ty_src = inst_data.src();
|
||||
const field_src = inst_data.src();
|
||||
const field_name_src: LazySrcLoc = .{ .node_offset_field_name = inst_data.src_node };
|
||||
const aggregate_ty = try sema.resolveType(block, ty_src, extra.container_type);
|
||||
if (aggregate_ty.tag() == .var_args_param) return sema.addType(aggregate_ty);
|
||||
const field_name = sema.code.nullTerminatedString(extra.name_start);
|
||||
return sema.fieldType(block, aggregate_ty, field_name, field_src, ty_src);
|
||||
return sema.fieldType(block, aggregate_ty, field_name, field_name_src, ty_src);
|
||||
}
|
||||
|
||||
fn fieldType(
|
||||
|
||||
@@ -12,9 +12,21 @@ export fn f() void {
|
||||
_ = a;
|
||||
}
|
||||
|
||||
const Object = struct {
|
||||
field_1: u32,
|
||||
field_2: u32,
|
||||
};
|
||||
fn dump(_: Object) void {}
|
||||
pub export fn entry() void {
|
||||
dump(.{ .field_1 = 123, .field_3 = 456 });
|
||||
}
|
||||
|
||||
|
||||
// error
|
||||
// backend=stage2
|
||||
// target=native
|
||||
//
|
||||
// :10:10: error: no field named 'foo' in struct 'tmp.A'
|
||||
// :1:11: note: struct declared here
|
||||
// :21:30: error: no field named 'field_3' in struct 'tmp.Object'
|
||||
// :15:16: note: struct declared here
|
||||
|
||||
Reference in New Issue
Block a user