authorgravatar for pfg@pfg.pwpfg <pfg@pfg.pw> 2020-07-04 02:27:12-07:00
committergravatar for pfg@pfg.pwpfg <pfg@pfg.pw> 2020-07-04 15:16:46-07:00
logd4456d92f55aea0273d0d55df2946d50e2aa22c8
treeb6499b412179cb91f76f7b321a9654c373ecfc3a
parent1d52438bd54adcb5cf5dfb7b664a5d4c3bcaee03

stage2: builtin @as


2 files changed, 7 insertions(+), 1 deletions(-)

src-self-hosted/Module.zig+6-1
...@@ -1534,7 +1534,12 @@ fn astGenBuiltinCall(self: *Module, scope: *Scope, call: *ast.Node.BuiltinCall)...@@ -1534,7 +1534,12 @@ fn astGenBuiltinCall(self: *Module, scope: *Scope, call: *ast.Node.BuiltinCall)
1534 const arg_count: ?usize = if (positionals.fields[0].field_type == []*zir.Inst) null else positionals.fields.len;1534 const arg_count: ?usize = if (positionals.fields[0].field_type == []*zir.Inst) null else positionals.fields.len;
1535 if (arg_count) |some| {1535 if (arg_count) |some| {
1536 if (call.params_len != some) {1536 if (call.params_len != some) {
1537 return self.failTok(scope, call.builtin_token, "expected {} parameter, found {}", .{ some, call.params_len });1537 return self.failTok(
1538 scope,
1539 call.builtin_token,
1540 "expected {} parameter{}, found {}",
1541 .{ some, if (some == 1) "" else "s", call.params_len },
1542 );
1538 }1543 }
1539 const params = call.params();1544 const params = call.params();
1540 inline for (positionals.fields) |p, i| {1545 inline for (positionals.fields) |p, i| {
src-self-hosted/zir.zig+1
...@@ -290,6 +290,7 @@ pub const Inst = struct {...@@ -290,6 +290,7 @@ pub const Inst = struct {
290290
291 pub const As = struct {291 pub const As = struct {
292 pub const base_tag = Tag.as;292 pub const base_tag = Tag.as;
293 pub const builtin_name = "@as";
293 base: Inst,294 base: Inst,
294295
295 positionals: struct {296 positionals: struct {