authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-04-27 22:20:25-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-04-27 22:20:25-07:00
logeb9c29eb817a24e5326b9a63ebf7265d3b2bad2c
treeaa113abcb095ab96a652be77f2d5b6990ab8a4c0
parent3d9e4edb57fdd54bca5280dc0fb6ea447e5d0407

AstGen: fix function src hash not including body


1 files changed, 34 insertions(+), 33 deletions(-)

src/AstGen.zig+34-33
......@@ -2638,6 +2638,7 @@ fn fnDecl(
26382638 astgen: *AstGen,
26392639 gz: *GenZir,
26402640 wip_decls: *WipDecls,
2641 decl_node: ast.Node.Index,
26412642 body_node: ast.Node.Index,
26422643 fn_proto: ast.full.FnProto,
26432644) InnerError!void {
......@@ -2851,7 +2852,7 @@ fn fnDecl(
28512852
28522853 try wip_decls.payload.ensureUnusedCapacity(gpa, 8);
28532854 {
2854 const contents_hash = std.zig.hashSrc(tree.getNodeSource(fn_proto.ast.proto_node));
2855 const contents_hash = std.zig.hashSrc(tree.getNodeSource(decl_node));
28552856 const casted = @bitCast([4]u32, contents_hash);
28562857 wip_decls.payload.appendSliceAssumeCapacity(&casted);
28572858 }
......@@ -3207,20 +3208,20 @@ fn structDeclInner(
32073208 switch (node_tags[fn_proto]) {
32083209 .fn_proto_simple => {
32093210 var params: [1]ast.Node.Index = undefined;
3210 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoSimple(&params, fn_proto));
3211 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
32113212 continue;
32123213 },
32133214 .fn_proto_multi => {
3214 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoMulti(fn_proto));
3215 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
32153216 continue;
32163217 },
32173218 .fn_proto_one => {
32183219 var params: [1]ast.Node.Index = undefined;
3219 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoOne(&params, fn_proto));
3220 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
32203221 continue;
32213222 },
32223223 .fn_proto => {
3223 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProto(fn_proto));
3224 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
32243225 continue;
32253226 },
32263227 else => unreachable,
......@@ -3228,20 +3229,20 @@ fn structDeclInner(
32283229 },
32293230 .fn_proto_simple => {
32303231 var params: [1]ast.Node.Index = undefined;
3231 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoSimple(&params, member_node));
3232 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
32323233 continue;
32333234 },
32343235 .fn_proto_multi => {
3235 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoMulti(member_node));
3236 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
32363237 continue;
32373238 },
32383239 .fn_proto_one => {
32393240 var params: [1]ast.Node.Index = undefined;
3240 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoOne(&params, member_node));
3241 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
32413242 continue;
32423243 },
32433244 .fn_proto => {
3244 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProto(member_node));
3245 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
32453246 continue;
32463247 },
32473248
......@@ -3410,20 +3411,20 @@ fn unionDeclInner(
34103411 switch (node_tags[fn_proto]) {
34113412 .fn_proto_simple => {
34123413 var params: [1]ast.Node.Index = undefined;
3413 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoSimple(&params, fn_proto));
3414 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
34143415 continue;
34153416 },
34163417 .fn_proto_multi => {
3417 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoMulti(fn_proto));
3418 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
34183419 continue;
34193420 },
34203421 .fn_proto_one => {
34213422 var params: [1]ast.Node.Index = undefined;
3422 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoOne(&params, fn_proto));
3423 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
34233424 continue;
34243425 },
34253426 .fn_proto => {
3426 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProto(fn_proto));
3427 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
34273428 continue;
34283429 },
34293430 else => unreachable,
......@@ -3431,20 +3432,20 @@ fn unionDeclInner(
34313432 },
34323433 .fn_proto_simple => {
34333434 var params: [1]ast.Node.Index = undefined;
3434 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoSimple(&params, member_node));
3435 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
34353436 continue;
34363437 },
34373438 .fn_proto_multi => {
3438 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoMulti(member_node));
3439 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
34393440 continue;
34403441 },
34413442 .fn_proto_one => {
34423443 var params: [1]ast.Node.Index = undefined;
3443 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoOne(&params, member_node));
3444 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
34443445 continue;
34453446 },
34463447 .fn_proto => {
3447 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProto(member_node));
3448 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
34483449 continue;
34493450 },
34503451
......@@ -3759,20 +3760,20 @@ fn containerDecl(
37593760 switch (node_tags[fn_proto]) {
37603761 .fn_proto_simple => {
37613762 var params: [1]ast.Node.Index = undefined;
3762 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoSimple(&params, fn_proto));
3763 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
37633764 continue;
37643765 },
37653766 .fn_proto_multi => {
3766 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoMulti(fn_proto));
3767 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
37673768 continue;
37683769 },
37693770 .fn_proto_one => {
37703771 var params: [1]ast.Node.Index = undefined;
3771 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoOne(&params, fn_proto));
3772 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
37723773 continue;
37733774 },
37743775 .fn_proto => {
3775 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProto(fn_proto));
3776 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
37763777 continue;
37773778 },
37783779 else => unreachable,
......@@ -3780,20 +3781,20 @@ fn containerDecl(
37803781 },
37813782 .fn_proto_simple => {
37823783 var params: [1]ast.Node.Index = undefined;
3783 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoSimple(&params, member_node));
3784 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
37843785 continue;
37853786 },
37863787 .fn_proto_multi => {
3787 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoMulti(member_node));
3788 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
37883789 continue;
37893790 },
37903791 .fn_proto_one => {
37913792 var params: [1]ast.Node.Index = undefined;
3792 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoOne(&params, member_node));
3793 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
37933794 continue;
37943795 },
37953796 .fn_proto => {
3796 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProto(member_node));
3797 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
37973798 continue;
37983799 },
37993800
......@@ -3924,20 +3925,20 @@ fn containerDecl(
39243925 switch (node_tags[fn_proto]) {
39253926 .fn_proto_simple => {
39263927 var params: [1]ast.Node.Index = undefined;
3927 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoSimple(&params, fn_proto));
3928 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
39283929 continue;
39293930 },
39303931 .fn_proto_multi => {
3931 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoMulti(fn_proto));
3932 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
39323933 continue;
39333934 },
39343935 .fn_proto_one => {
39353936 var params: [1]ast.Node.Index = undefined;
3936 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProtoOne(&params, fn_proto));
3937 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
39373938 continue;
39383939 },
39393940 .fn_proto => {
3940 try astgen.fnDecl(gz, &wip_decls, body, tree.fnProto(fn_proto));
3941 try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
39413942 continue;
39423943 },
39433944 else => unreachable,
......@@ -3945,20 +3946,20 @@ fn containerDecl(
39453946 },
39463947 .fn_proto_simple => {
39473948 var params: [1]ast.Node.Index = undefined;
3948 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoSimple(&params, member_node));
3949 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
39493950 continue;
39503951 },
39513952 .fn_proto_multi => {
3952 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoMulti(member_node));
3953 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
39533954 continue;
39543955 },
39553956 .fn_proto_one => {
39563957 var params: [1]ast.Node.Index = undefined;
3957 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProtoOne(&params, member_node));
3958 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
39583959 continue;
39593960 },
39603961 .fn_proto => {
3961 try astgen.fnDecl(gz, &wip_decls, 0, tree.fnProto(member_node));
3962 try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
39623963 continue;
39633964 },
39643965