authorgravatar for schteven.codes@gmail.comschtvn <schteven.codes@gmail.com> 2025-02-17 22:30:49-08:00
committergravatar for schteven.codes@gmail.comschtvn <schteven.codes@gmail.com> 2025-02-17 22:30:49-08:00
log9e925a7acce05a69a26fe186acffb47dca326a11
tree535f520972be339efdc8bd9ca7f8f9ad8f584c24
parent5a313192e668501f7ab04b2f1d55b92a3cf33a0e

Clean up duplicate code in decl_fields_fallible


1 files changed, 5 insertions(+), 10 deletions(-)

lib/docs/wasm/main.zig+5-10
...@@ -387,18 +387,13 @@ fn decl_fields_fallible(decl_index: Decl.Index) ![]Ast.Node.Index {...@@ -387,18 +387,13 @@ fn decl_fields_fallible(decl_index: Decl.Index) ![]Ast.Node.Index {
387 .type_function => {387 .type_function => {
388 const node_tags = ast.nodes.items(.tag);388 const node_tags = ast.nodes.items(.tag);
389389
390 // Find the return statement390 // If the type function returns a reference to another type function, get the fields from there
391 if (decl.get_type_fn_return_type_fn()) |function_decl| {
392 return decl_fields_fallible(function_decl);
393 }
394 // If the type function returns a container, such as a `struct`, read that container's fields
391 if (decl.get_type_fn_return_expr()) |return_expr| {395 if (decl.get_type_fn_return_expr()) |return_expr| {
392 switch (node_tags[return_expr]) {396 switch (node_tags[return_expr]) {
393 .call, .call_comma, .call_one, .call_one_comma => {
394 const node_data = ast.nodes.items(.data);
395 const function = node_data[return_expr].lhs;
396 const token = ast.nodes.items(.main_token)[function];
397 const name = ast.tokenSlice(token);
398 if (decl.lookup(name)) |function_decl| {
399 return decl_fields_fallible(function_decl);
400 }
401 },
402 .container_decl, .container_decl_trailing, .container_decl_two, .container_decl_two_trailing, .container_decl_arg, .container_decl_arg_trailing => {397 .container_decl, .container_decl_trailing, .container_decl_two, .container_decl_two_trailing, .container_decl_arg, .container_decl_arg_trailing => {
403 return ast_decl_fields_fallible(ast, return_expr);398 return ast_decl_fields_fallible(ast, return_expr);
404 },399 },