| ... | @@ -2878,9 +2878,8 @@ fn fnDecl( | ... | @@ -2878,9 +2878,8 @@ fn fnDecl( |
| 2878 | const tree = astgen.tree; | 2878 | const tree = astgen.tree; |
| 2879 | const token_tags = tree.tokens.items(.tag); | 2879 | const token_tags = tree.tokens.items(.tag); |
| 2880 | | 2880 | |
| 2881 | const fn_name_token = fn_proto.name_token orelse { | 2881 | // missing function name already happened in scanDecls() |
| 2882 | return astgen.failTok(fn_proto.ast.fn_token, "missing function name", .{}); | 2882 | const fn_name_token = fn_proto.name_token orelse return error.AnalysisFail; |
| 2883 | }; | | |
| 2884 | const fn_name_str_index = try astgen.identAsString(fn_name_token); | 2883 | const fn_name_str_index = try astgen.identAsString(fn_name_token); |
| 2885 | | 2884 | |
| 2886 | // We insert this at the beginning so that its instruction index marks the | 2885 | // We insert this at the beginning so that its instruction index marks the |
| ... | @@ -10168,9 +10167,9 @@ fn scanDecls(astgen: *AstGen, namespace: *Scope.Namespace, members: []const ast. | ... | @@ -10168,9 +10167,9 @@ fn scanDecls(astgen: *AstGen, namespace: *Scope.Namespace, members: []const ast. |
| 10168 | const tree = astgen.tree; | 10167 | const tree = astgen.tree; |
| 10169 | const node_tags = tree.nodes.items(.tag); | 10168 | const node_tags = tree.nodes.items(.tag); |
| 10170 | const main_tokens = tree.nodes.items(.main_token); | 10169 | const main_tokens = tree.nodes.items(.main_token); |
| | 10170 | const token_tags = tree.tokens.items(.tag); |
| 10171 | for (members) |member_node| { | 10171 | for (members) |member_node| { |
| 10172 | const name_token = switch (node_tags[member_node]) { | 10172 | const name_token = switch (node_tags[member_node]) { |
| 10173 | .fn_decl, | | |
| 10174 | .fn_proto_simple, | 10173 | .fn_proto_simple, |
| 10175 | .fn_proto_multi, | 10174 | .fn_proto_multi, |
| 10176 | .fn_proto_one, | 10175 | .fn_proto_one, |
| ... | @@ -10181,6 +10180,17 @@ fn scanDecls(astgen: *AstGen, namespace: *Scope.Namespace, members: []const ast. | ... | @@ -10181,6 +10180,17 @@ fn scanDecls(astgen: *AstGen, namespace: *Scope.Namespace, members: []const ast. |
| 10181 | .aligned_var_decl, | 10180 | .aligned_var_decl, |
| 10182 | => main_tokens[member_node] + 1, | 10181 | => main_tokens[member_node] + 1, |
| 10183 | | 10182 | |
| | 10183 | .fn_decl => blk: { |
| | 10184 | const ident = main_tokens[member_node] + 1; |
| | 10185 | if (token_tags[ident] != .identifier) { |
| | 10186 | switch (astgen.failNode(member_node, "missing function name", .{})) { |
| | 10187 | error.AnalysisFail => continue, |
| | 10188 | error.OutOfMemory => return error.OutOfMemory, |
| | 10189 | } |
| | 10190 | } |
| | 10191 | break :blk ident; |
| | 10192 | }, |
| | 10193 | |
| 10184 | else => continue, | 10194 | else => continue, |
| 10185 | }; | 10195 | }; |
| 10186 | | 10196 | |