| ... | ... | @@ -2878,9 +2878,8 @@ fn fnDecl( |
| 2878 | 2878 | const tree = astgen.tree; |
| 2879 | 2879 | const token_tags = tree.tokens.items(.tag); |
| 2880 | 2880 | |
| 2881 | | const fn_name_token = fn_proto.name_token orelse { |
| 2882 | | return astgen.failTok(fn_proto.ast.fn_token, "missing function name", .{}); |
| 2883 | | }; |
| 2881 | // missing function name already happened in scanDecls() |
| 2882 | const fn_name_token = fn_proto.name_token orelse return error.AnalysisFail; |
| 2884 | 2883 | const fn_name_str_index = try astgen.identAsString(fn_name_token); |
| 2885 | 2884 | |
| 2886 | 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 | 10167 | const tree = astgen.tree; |
| 10169 | 10168 | const node_tags = tree.nodes.items(.tag); |
| 10170 | 10169 | const main_tokens = tree.nodes.items(.main_token); |
| 10170 | const token_tags = tree.tokens.items(.tag); |
| 10171 | 10171 | for (members) |member_node| { |
| 10172 | 10172 | const name_token = switch (node_tags[member_node]) { |
| 10173 | | .fn_decl, |
| 10174 | 10173 | .fn_proto_simple, |
| 10175 | 10174 | .fn_proto_multi, |
| 10176 | 10175 | .fn_proto_one, |
| ... | ... | @@ -10181,6 +10180,17 @@ fn scanDecls(astgen: *AstGen, namespace: *Scope.Namespace, members: []const ast. |
| 10181 | 10180 | .aligned_var_decl, |
| 10182 | 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 | 10194 | else => continue, |
| 10185 | 10195 | }; |
| 10186 | 10196 | |