From ebc70c286e1817f225525e7e27089cb5d7eb548a Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Sat, 25 Oct 2025 19:31:03 -0400 Subject: Fix displayed return type when inlining a enum, struct, or union --- src/server/ast.odin | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/ast.odin b/src/server/ast.odin index 60e7d00..f60116d 100644 --- a/src/server/ast.odin +++ b/src/server/ast.odin @@ -1218,7 +1218,7 @@ build_string_node :: proc(node: ^ast.Node, builder: ^strings.Builder, remove_poi for field, i in n.list { build_string(field, builder, remove_pointers) if len(n.list) - 1 != i { - strings.write_string(builder, ",") + strings.write_string(builder, ", ") } } case ^Typeid_Type: @@ -1265,16 +1265,33 @@ build_string_node :: proc(node: ^ast.Node, builder: ^strings.Builder, remove_poi strings.write_string(builder, "[dynamic]") build_string(n.elem, builder, remove_pointers) case ^Struct_Type: + strings.write_string(builder, "struct{") build_string(n.poly_params, builder, remove_pointers) build_string(n.align, builder, remove_pointers) build_string(n.fields, builder, remove_pointers) + strings.write_string(builder, "}") case ^Union_Type: + strings.write_string(builder, "union{") build_string(n.poly_params, builder, remove_pointers) build_string(n.align, builder, remove_pointers) - build_string(n.variants, builder, remove_pointers) + for variant, i in n.variants { + if i != 0 { + strings.write_string(builder, ", ") + } + build_string(variant, builder, remove_pointers) + } + strings.write_string(builder, "}") case ^Enum_Type: + strings.write_string(builder, "enum") build_string(n.base_type, builder, remove_pointers) - build_string(n.fields, builder, remove_pointers) + strings.write_string(builder, "{") + for field, i in n.fields { + if i != 0 { + strings.write_string(builder, ", ") + } + build_string(field, builder, remove_pointers) + } + strings.write_string(builder, "}") case ^Bit_Set_Type: strings.write_string(builder, "bit_set") strings.write_string(builder, "[") -- cgit v1.2.3