authorgravatar for me@tadeo.caTadeo Kondrak <me@tadeo.ca> 2020-08-27 15:15:47-06:00
committergravatar for me@tadeo.caTadeo Kondrak <me@tadeo.ca> 2020-08-27 15:21:19-06:00
log3c87872dc5d7574e0e845568dc753ec48cb0cba0
treec34f0f9cbcacba416010b1c727e29fd7f1b699ba
parentce8a3ef2de347c50d173948b335e1ee205723974
signaturelock-open Commit is signed but in an unrecognized format.

stage2: Update to new std.meta.TrailerFlags API


3 files changed, 34 insertions(+), 34 deletions(-)

src-self-hosted/Module.zig+23-23
...@@ -1256,8 +1256,8 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {...@@ -1256,8 +1256,8 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {
1256 };1256 };
1257 defer fn_type_scope.instructions.deinit(self.gpa);1257 defer fn_type_scope.instructions.deinit(self.gpa);
12581258
1259 decl.is_pub = fn_proto.getTrailer("visib_token") != null;1259 decl.is_pub = fn_proto.getTrailer(.visib_token) != null;
1260 const body_node = fn_proto.getTrailer("body_node") orelse1260 const body_node = fn_proto.getTrailer(.body_node) orelse
1261 return self.failTok(&fn_type_scope.base, fn_proto.fn_token, "TODO implement extern functions", .{});1261 return self.failTok(&fn_type_scope.base, fn_proto.fn_token, "TODO implement extern functions", .{});
12621262
1263 const param_decls = fn_proto.params();1263 const param_decls = fn_proto.params();
...@@ -1276,19 +1276,19 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {...@@ -1276,19 +1276,19 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {
1276 };1276 };
1277 param_types[i] = try astgen.expr(self, &fn_type_scope.base, type_type_rl, param_type_node);1277 param_types[i] = try astgen.expr(self, &fn_type_scope.base, type_type_rl, param_type_node);
1278 }1278 }
1279 if (fn_proto.getTrailer("var_args_token")) |var_args_token| {1279 if (fn_proto.getTrailer(.var_args_token)) |var_args_token| {
1280 return self.failTok(&fn_type_scope.base, var_args_token, "TODO implement var args", .{});1280 return self.failTok(&fn_type_scope.base, var_args_token, "TODO implement var args", .{});
1281 }1281 }
1282 if (fn_proto.getTrailer("lib_name")) |lib_name| {1282 if (fn_proto.getTrailer(.lib_name)) |lib_name| {
1283 return self.failNode(&fn_type_scope.base, lib_name, "TODO implement function library name", .{});1283 return self.failNode(&fn_type_scope.base, lib_name, "TODO implement function library name", .{});
1284 }1284 }
1285 if (fn_proto.getTrailer("align_expr")) |align_expr| {1285 if (fn_proto.getTrailer(.align_expr)) |align_expr| {
1286 return self.failNode(&fn_type_scope.base, align_expr, "TODO implement function align expression", .{});1286 return self.failNode(&fn_type_scope.base, align_expr, "TODO implement function align expression", .{});
1287 }1287 }
1288 if (fn_proto.getTrailer("section_expr")) |sect_expr| {1288 if (fn_proto.getTrailer(.section_expr)) |sect_expr| {
1289 return self.failNode(&fn_type_scope.base, sect_expr, "TODO implement function section expression", .{});1289 return self.failNode(&fn_type_scope.base, sect_expr, "TODO implement function section expression", .{});
1290 }1290 }
1291 if (fn_proto.getTrailer("callconv_expr")) |callconv_expr| {1291 if (fn_proto.getTrailer(.callconv_expr)) |callconv_expr| {
1292 return self.failNode(1292 return self.failNode(
1293 &fn_type_scope.base,1293 &fn_type_scope.base,
1294 callconv_expr,1294 callconv_expr,
...@@ -1430,10 +1430,10 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {...@@ -1430,10 +1430,10 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {
1430 self.bin_file.freeDecl(decl);1430 self.bin_file.freeDecl(decl);
1431 }1431 }
14321432
1433 if (fn_proto.getTrailer("extern_export_inline_token")) |maybe_export_token| {1433 if (fn_proto.getTrailer(.extern_export_inline_token)) |maybe_export_token| {
1434 if (tree.token_ids[maybe_export_token] == .Keyword_export) {1434 if (tree.token_ids[maybe_export_token] == .Keyword_export) {
1435 const export_src = tree.token_locs[maybe_export_token].start;1435 const export_src = tree.token_locs[maybe_export_token].start;
1436 const name_loc = tree.token_locs[fn_proto.getTrailer("name_token").?];1436 const name_loc = tree.token_locs[fn_proto.getTrailer(.name_token).?];
1437 const name = tree.tokenSliceLoc(name_loc);1437 const name = tree.tokenSliceLoc(name_loc);
1438 // The scope needs to have the decl in it.1438 // The scope needs to have the decl in it.
1439 try self.analyzeExport(&block_scope.base, export_src, name, decl);1439 try self.analyzeExport(&block_scope.base, export_src, name, decl);
...@@ -1460,37 +1460,37 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {...@@ -1460,37 +1460,37 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {
1460 };1460 };
1461 defer block_scope.instructions.deinit(self.gpa);1461 defer block_scope.instructions.deinit(self.gpa);
14621462
1463 decl.is_pub = var_decl.getTrailer("visib_token") != null;1463 decl.is_pub = var_decl.getTrailer(.visib_token) != null;
1464 const is_extern = blk: {1464 const is_extern = blk: {
1465 const maybe_extern_token = var_decl.getTrailer("extern_export_token") orelse1465 const maybe_extern_token = var_decl.getTrailer(.extern_export_token) orelse
1466 break :blk false;1466 break :blk false;
1467 if (tree.token_ids[maybe_extern_token] != .Keyword_extern) break :blk false;1467 if (tree.token_ids[maybe_extern_token] != .Keyword_extern) break :blk false;
1468 if (var_decl.getTrailer("init_node")) |some| {1468 if (var_decl.getTrailer(.init_node)) |some| {
1469 return self.failNode(&block_scope.base, some, "extern variables have no initializers", .{});1469 return self.failNode(&block_scope.base, some, "extern variables have no initializers", .{});
1470 }1470 }
1471 break :blk true;1471 break :blk true;
1472 };1472 };
1473 if (var_decl.getTrailer("lib_name")) |lib_name| {1473 if (var_decl.getTrailer(.lib_name)) |lib_name| {
1474 assert(is_extern);1474 assert(is_extern);
1475 return self.failNode(&block_scope.base, lib_name, "TODO implement function library name", .{});1475 return self.failNode(&block_scope.base, lib_name, "TODO implement function library name", .{});
1476 }1476 }
1477 const is_mutable = tree.token_ids[var_decl.mut_token] == .Keyword_var;1477 const is_mutable = tree.token_ids[var_decl.mut_token] == .Keyword_var;
1478 const is_threadlocal = if (var_decl.getTrailer("thread_local_token")) |some| blk: {1478 const is_threadlocal = if (var_decl.getTrailer(.thread_local_token)) |some| blk: {
1479 if (!is_mutable) {1479 if (!is_mutable) {
1480 return self.failTok(&block_scope.base, some, "threadlocal variable cannot be constant", .{});1480 return self.failTok(&block_scope.base, some, "threadlocal variable cannot be constant", .{});
1481 }1481 }
1482 break :blk true;1482 break :blk true;
1483 } else false;1483 } else false;
1484 assert(var_decl.getTrailer("comptime_token") == null);1484 assert(var_decl.getTrailer(.comptime_token) == null);
1485 if (var_decl.getTrailer("align_node")) |align_expr| {1485 if (var_decl.getTrailer(.align_node)) |align_expr| {
1486 return self.failNode(&block_scope.base, align_expr, "TODO implement function align expression", .{});1486 return self.failNode(&block_scope.base, align_expr, "TODO implement function align expression", .{});
1487 }1487 }
1488 if (var_decl.getTrailer("section_node")) |sect_expr| {1488 if (var_decl.getTrailer(.section_node)) |sect_expr| {
1489 return self.failNode(&block_scope.base, sect_expr, "TODO implement function section expression", .{});1489 return self.failNode(&block_scope.base, sect_expr, "TODO implement function section expression", .{});
1490 }1490 }
14911491
1492 const explicit_type = blk: {1492 const explicit_type = blk: {
1493 const type_node = var_decl.getTrailer("type_node") orelse1493 const type_node = var_decl.getTrailer(.type_node) orelse
1494 break :blk null;1494 break :blk null;
14951495
1496 // Temporary arena for the zir instructions.1496 // Temporary arena for the zir instructions.
...@@ -1517,7 +1517,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {...@@ -1517,7 +1517,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {
1517 };1517 };
15181518
1519 var var_type: Type = undefined;1519 var var_type: Type = undefined;
1520 const value: ?Value = if (var_decl.getTrailer("init_node")) |init_node| blk: {1520 const value: ?Value = if (var_decl.getTrailer(.init_node)) |init_node| blk: {
1521 var gen_scope_arena = std.heap.ArenaAllocator.init(self.gpa);1521 var gen_scope_arena = std.heap.ArenaAllocator.init(self.gpa);
1522 defer gen_scope_arena.deinit();1522 defer gen_scope_arena.deinit();
1523 var gen_scope: Scope.GenZIR = .{1523 var gen_scope: Scope.GenZIR = .{
...@@ -1602,7 +1602,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {...@@ -1602,7 +1602,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool {
1602 decl.analysis = .complete;1602 decl.analysis = .complete;
1603 decl.generation = self.generation;1603 decl.generation = self.generation;
16041604
1605 if (var_decl.getTrailer("extern_export_token")) |maybe_export_token| {1605 if (var_decl.getTrailer(.extern_export_token)) |maybe_export_token| {
1606 if (tree.token_ids[maybe_export_token] == .Keyword_export) {1606 if (tree.token_ids[maybe_export_token] == .Keyword_export) {
1607 const export_src = tree.token_locs[maybe_export_token].start;1607 const export_src = tree.token_locs[maybe_export_token].start;
1608 const name_loc = tree.token_locs[var_decl.name_token];1608 const name_loc = tree.token_locs[var_decl.name_token];
...@@ -1768,7 +1768,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void {...@@ -1768,7 +1768,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void {
1768 for (decls) |src_decl, decl_i| {1768 for (decls) |src_decl, decl_i| {
1769 if (src_decl.cast(ast.Node.FnProto)) |fn_proto| {1769 if (src_decl.cast(ast.Node.FnProto)) |fn_proto| {
1770 // We will create a Decl for it regardless of analysis status.1770 // We will create a Decl for it regardless of analysis status.
1771 const name_tok = fn_proto.getTrailer("name_token") orelse {1771 const name_tok = fn_proto.getTrailer(.name_token) orelse {
1772 @panic("TODO missing function name");1772 @panic("TODO missing function name");
1773 };1773 };
17741774
...@@ -1804,7 +1804,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void {...@@ -1804,7 +1804,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void {
1804 } else {1804 } else {
1805 const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash);1805 const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash);
1806 root_scope.decls.appendAssumeCapacity(new_decl);1806 root_scope.decls.appendAssumeCapacity(new_decl);
1807 if (fn_proto.getTrailer("extern_export_inline_token")) |maybe_export_token| {1807 if (fn_proto.getTrailer(.extern_export_inline_token)) |maybe_export_token| {
1808 if (tree.token_ids[maybe_export_token] == .Keyword_export) {1808 if (tree.token_ids[maybe_export_token] == .Keyword_export) {
1809 self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl });1809 self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl });
1810 }1810 }
...@@ -1831,7 +1831,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void {...@@ -1831,7 +1831,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void {
1831 } else {1831 } else {
1832 const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash);1832 const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash);
1833 root_scope.decls.appendAssumeCapacity(new_decl);1833 root_scope.decls.appendAssumeCapacity(new_decl);
1834 if (var_decl.getTrailer("extern_export_token")) |maybe_export_token| {1834 if (var_decl.getTrailer(.extern_export_token)) |maybe_export_token| {
1835 if (tree.token_ids[maybe_export_token] == .Keyword_export) {1835 if (tree.token_ids[maybe_export_token] == .Keyword_export) {
1836 self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl });1836 self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl });
1837 }1837 }
src-self-hosted/astgen.zig+6-6
...@@ -451,16 +451,16 @@ fn varDecl(...@@ -451,16 +451,16 @@ fn varDecl(
451 block_arena: *Allocator,451 block_arena: *Allocator,
452) InnerError!*Scope {452) InnerError!*Scope {
453 // TODO implement detection of shadowing453 // TODO implement detection of shadowing
454 if (node.getTrailer("comptime_token")) |comptime_token| {454 if (node.getTrailer(.comptime_token)) |comptime_token| {
455 return mod.failTok(scope, comptime_token, "TODO implement comptime locals", .{});455 return mod.failTok(scope, comptime_token, "TODO implement comptime locals", .{});
456 }456 }
457 if (node.getTrailer("align_node")) |align_node| {457 if (node.getTrailer(.align_node)) |align_node| {
458 return mod.failNode(scope, align_node, "TODO implement alignment on locals", .{});458 return mod.failNode(scope, align_node, "TODO implement alignment on locals", .{});
459 }459 }
460 const tree = scope.tree();460 const tree = scope.tree();
461 const name_src = tree.token_locs[node.name_token].start;461 const name_src = tree.token_locs[node.name_token].start;
462 const ident_name = try identifierTokenString(mod, scope, node.name_token);462 const ident_name = try identifierTokenString(mod, scope, node.name_token);
463 const init_node = node.getTrailer("init_node") orelse463 const init_node = node.getTrailer(.init_node) orelse
464 return mod.fail(scope, name_src, "variables must be initialized", .{});464 return mod.fail(scope, name_src, "variables must be initialized", .{});
465465
466 switch (tree.token_ids[node.mut_token]) {466 switch (tree.token_ids[node.mut_token]) {
...@@ -469,7 +469,7 @@ fn varDecl(...@@ -469,7 +469,7 @@ fn varDecl(
469 // or an rvalue as a result location. If it is an rvalue, we can use the instruction as469 // or an rvalue as a result location. If it is an rvalue, we can use the instruction as
470 // the variable, no memory location needed.470 // the variable, no memory location needed.
471 const result_loc = if (nodeMayNeedMemoryLocation(init_node)) r: {471 const result_loc = if (nodeMayNeedMemoryLocation(init_node)) r: {
472 if (node.getTrailer("type_node")) |type_node| {472 if (node.getTrailer(.type_node)) |type_node| {
473 const type_inst = try typeExpr(mod, scope, type_node);473 const type_inst = try typeExpr(mod, scope, type_node);
474 const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst);474 const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst);
475 break :r ResultLoc{ .ptr = alloc };475 break :r ResultLoc{ .ptr = alloc };
...@@ -478,7 +478,7 @@ fn varDecl(...@@ -478,7 +478,7 @@ fn varDecl(
478 break :r ResultLoc{ .inferred_ptr = alloc };478 break :r ResultLoc{ .inferred_ptr = alloc };
479 }479 }
480 } else r: {480 } else r: {
481 if (node.getTrailer("type_node")) |type_node|481 if (node.getTrailer(.type_node)) |type_node|
482 break :r ResultLoc{ .ty = try typeExpr(mod, scope, type_node) }482 break :r ResultLoc{ .ty = try typeExpr(mod, scope, type_node) }
483 else483 else
484 break :r .none;484 break :r .none;
...@@ -494,7 +494,7 @@ fn varDecl(...@@ -494,7 +494,7 @@ fn varDecl(
494 return &sub_scope.base;494 return &sub_scope.base;
495 },495 },
496 .Keyword_var => {496 .Keyword_var => {
497 const var_data: struct { result_loc: ResultLoc, alloc: *zir.Inst } = if (node.getTrailer("type_node")) |type_node| a: {497 const var_data: struct { result_loc: ResultLoc, alloc: *zir.Inst } = if (node.getTrailer(.type_node)) |type_node| a: {
498 const type_inst = try typeExpr(mod, scope, type_node);498 const type_inst = try typeExpr(mod, scope, type_node);
499 const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst);499 const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst);
500 break :a .{ .alloc = alloc, .result_loc = .{ .ptr = alloc } };500 break :a .{ .alloc = alloc, .result_loc = .{ .ptr = alloc } };
src-self-hosted/translate_c.zig+5-5
...@@ -675,7 +675,7 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void {...@@ -675,7 +675,7 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void {
675 }675 }
676676
677 const body_node = try block_scope.complete(rp.c);677 const body_node = try block_scope.complete(rp.c);
678 proto_node.setTrailer("body_node", body_node);678 proto_node.setTrailer(.body_node, body_node);
679 return addTopLevelDecl(c, fn_name, &proto_node.base);679 return addTopLevelDecl(c, fn_name, &proto_node.base);
680}680}
681681
...@@ -4493,7 +4493,7 @@ fn transCreateNodeMacroFn(c: *Context, name: []const u8, ref: *ast.Node, proto_a...@@ -4493,7 +4493,7 @@ fn transCreateNodeMacroFn(c: *Context, name: []const u8, ref: *ast.Node, proto_a
4493 const block_lbrace = try appendToken(c, .LBrace, "{");4493 const block_lbrace = try appendToken(c, .LBrace, "{");
44944494
4495 const return_kw = try appendToken(c, .Keyword_return, "return");4495 const return_kw = try appendToken(c, .Keyword_return, "return");
4496 const unwrap_expr = try transCreateNodeUnwrapNull(c, ref.cast(ast.Node.VarDecl).?.getTrailer("init_node").?);4496 const unwrap_expr = try transCreateNodeUnwrapNull(c, ref.cast(ast.Node.VarDecl).?.getTrailer(.init_node).?);
44974497
4498 const call_expr = try c.createCall(unwrap_expr, fn_params.items.len);4498 const call_expr = try c.createCall(unwrap_expr, fn_params.items.len);
4499 const call_params = call_expr.params();4499 const call_params = call_expr.params();
...@@ -6361,7 +6361,7 @@ fn getContainer(c: *Context, node: *ast.Node) ?*ast.Node {...@@ -6361,7 +6361,7 @@ fn getContainer(c: *Context, node: *ast.Node) ?*ast.Node {
6361 const ident = node.castTag(.Identifier).?;6361 const ident = node.castTag(.Identifier).?;
6362 if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| {6362 if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| {
6363 if (value.cast(ast.Node.VarDecl)) |var_decl|6363 if (value.cast(ast.Node.VarDecl)) |var_decl|
6364 return getContainer(c, var_decl.getTrailer("init_node").?);6364 return getContainer(c, var_decl.getTrailer(.init_node).?);
6365 }6365 }
6366 },6366 },
63676367
...@@ -6390,7 +6390,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node {...@@ -6390,7 +6390,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node {
6390 if (ref.castTag(.Identifier)) |ident| {6390 if (ref.castTag(.Identifier)) |ident| {
6391 if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| {6391 if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| {
6392 if (value.cast(ast.Node.VarDecl)) |var_decl| {6392 if (value.cast(ast.Node.VarDecl)) |var_decl| {
6393 if (var_decl.getTrailer("type_node")) |ty|6393 if (var_decl.getTrailer(.type_node)) |ty|
6394 return getContainer(c, ty);6394 return getContainer(c, ty);
6395 }6395 }
6396 }6396 }
...@@ -6412,7 +6412,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node {...@@ -6412,7 +6412,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node {
6412}6412}
64136413
6414fn getFnProto(c: *Context, ref: *ast.Node) ?*ast.Node.FnProto {6414fn getFnProto(c: *Context, ref: *ast.Node) ?*ast.Node.FnProto {
6415 const init = if (ref.cast(ast.Node.VarDecl)) |v| v.getTrailer("init_node").? else return null;6415 const init = if (ref.cast(ast.Node.VarDecl)) |v| v.getTrailer(.init_node).? else return null;
6416 if (getContainerTypeOf(c, init)) |ty_node| {6416 if (getContainerTypeOf(c, init)) |ty_node| {
6417 if (ty_node.castTag(.OptionalType)) |prefix| {6417 if (ty_node.castTag(.OptionalType)) |prefix| {
6418 if (prefix.rhs.cast(ast.Node.FnProto)) |fn_proto| {6418 if (prefix.rhs.cast(ast.Node.FnProto)) |fn_proto| {