aboutsummaryrefslogtreecommitdiff
path: root/src/server/analysis.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-06-30 23:10:24 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-06-30 23:28:51 -0400
commit9b4709a4adda9bb6b50d238024fd2f2dabc3ad1c (patch)
treedef5973431b2633e06da82daa4d4fdedce1ceab1 /src/server/analysis.odin
parent080dadc4c7e642b960059f8c9e1dc19516dc949e (diff)
Missing cloning types for struct poly types
Diffstat (limited to 'src/server/analysis.odin')
-rw-r--r--src/server/analysis.odin4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index c7c5791..9ac88fe 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -1999,6 +1999,10 @@ resolve_symbol_return :: proc(ast_context: ^AstContext, symbol: Symbol, ok := tr
case SymbolStructValue:
b := symbol_struct_value_builder_make(symbol, v, ast_context.allocator)
if v.poly != nil {
+ clear(&b.types)
+ for type in v.types {
+ append(&b.types, clone_expr(type, context.temp_allocator, nil))
+ }
resolve_poly_struct(ast_context, &b, v.poly)
}