authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-05-21 00:30:08-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-05-21 00:30:08-04:00
log32ecb416f3acc49b80268711562f2c4133a828b9
tree6b75b14868ae38baaf646e1a9d427a28bbf07674
parente694cd265ad762e1db037e191edfa2f0601126a9

fix compile errors when setting NodeIndex/TokenIndex to u32


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

lib/std/zig/parse.zig+14-7
...@@ -6,6 +6,7 @@ const Node = ast.Node;...@@ -6,6 +6,7 @@ const Node = ast.Node;
6const Tree = ast.Tree;6const Tree = ast.Tree;
7const AstError = ast.Error;7const AstError = ast.Error;
8const TokenIndex = ast.TokenIndex;8const TokenIndex = ast.TokenIndex;
9const NodeIndex = ast.NodeIndex;
9const Token = std.zig.Token;10const Token = std.zig.Token;
1011
11pub const Error = error{ParseError} || Allocator.Error;12pub const Error = error{ParseError} || Allocator.Error;
...@@ -70,7 +71,8 @@ const Parser = struct {...@@ -70,7 +71,8 @@ const Parser = struct {
70 // invalid tokens as it can so this can only be the EOF71 // invalid tokens as it can so this can only be the EOF
71 const eof_token = p.eatToken(.Eof).?;72 const eof_token = p.eatToken(.Eof).?;
7273
73 const node = try Node.Root.create(&p.arena.allocator, decls.len, eof_token);74 const decls_len = @intCast(NodeIndex, decls.len);
75 const node = try Node.Root.create(&p.arena.allocator, decls_len, eof_token);
74 std.mem.copy(*Node, node.decls(), decls);76 std.mem.copy(*Node, node.decls(), decls);
7577
76 return node;78 return node;
...@@ -545,13 +547,15 @@ const Parser = struct {...@@ -545,13 +547,15 @@ const Parser = struct {
545 else547 else
546 R{ .Explicit = return_type_expr.? };548 R{ .Explicit = return_type_expr.? };
547549
548 const fn_proto_node = try Node.FnProto.alloc(&p.arena.allocator, params.len);550 const params_len = @intCast(NodeIndex, params.len);
551
552 const fn_proto_node = try Node.FnProto.alloc(&p.arena.allocator, params_len);
549 fn_proto_node.* = .{553 fn_proto_node.* = .{
550 .doc_comments = null,554 .doc_comments = null,
551 .visib_token = null,555 .visib_token = null,
552 .fn_token = fn_token,556 .fn_token = fn_token,
553 .name_token = name_token,557 .name_token = name_token,
554 .params_len = params.len,558 .params_len = params_len,
555 .return_type = return_type,559 .return_type = return_type,
556 .var_args_token = var_args_token,560 .var_args_token = var_args_token,
557 .extern_export_inline_token = null,561 .extern_export_inline_token = null,
...@@ -1195,11 +1199,13 @@ const Parser = struct {...@@ -1195,11 +1199,13 @@ const Parser = struct {
11951199
1196 const rbrace = try p.expectToken(.RBrace);1200 const rbrace = try p.expectToken(.RBrace);
11971201
1198 const block_node = try Node.Block.alloc(&p.arena.allocator, statements.items.len);1202 const statements_len = @intCast(NodeIndex, statements.items.len);
1203
1204 const block_node = try Node.Block.alloc(&p.arena.allocator, statements_len);
1199 block_node.* = .{1205 block_node.* = .{
1200 .label = null,1206 .label = null,
1201 .lbrace = lbrace,1207 .lbrace = lbrace,
1202 .statements_len = statements.items.len,1208 .statements_len = statements_len,
1203 .rbrace = rbrace,1209 .rbrace = rbrace,
1204 };1210 };
1205 std.mem.copy(*Node, block_node.statements(), statements.items);1211 std.mem.copy(*Node, block_node.statements(), statements.items);
...@@ -2844,12 +2850,13 @@ const Parser = struct {...@@ -2844,12 +2850,13 @@ const Parser = struct {
2844 defer p.gpa.free(members);2850 defer p.gpa.free(members);
2845 const rbrace = try p.expectToken(.RBrace);2851 const rbrace = try p.expectToken(.RBrace);
28462852
2847 const node = try Node.ContainerDecl.alloc(&p.arena.allocator, members.len);2853 const members_len = @intCast(NodeIndex, members.len);
2854 const node = try Node.ContainerDecl.alloc(&p.arena.allocator, members_len);
2848 node.* = .{2855 node.* = .{
2849 .layout_token = null,2856 .layout_token = null,
2850 .kind_token = container_decl_type.kind_token,2857 .kind_token = container_decl_type.kind_token,
2851 .init_arg_expr = container_decl_type.init_arg_expr,2858 .init_arg_expr = container_decl_type.init_arg_expr,
2852 .fields_and_decls_len = members.len,2859 .fields_and_decls_len = members_len,
2853 .lbrace_token = lbrace,2860 .lbrace_token = lbrace,
2854 .rbrace_token = rbrace,2861 .rbrace_token = rbrace,
2855 };2862 };