aboutsummaryrefslogtreecommitdiff
path: root/src/server/generics.odin
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-01-18 18:41:47 +0100
committerDanielGavin <danielgavin5@hotmail.com>2024-01-18 18:41:47 +0100
commitd36a12d355b363a6071a585996f02cf730d12692 (patch)
treeb176418bf6cf228351e563e21bd14812cc1447a2 /src/server/generics.odin
parent79127f2b8485aea451cb3e29982403e57d253756 (diff)
Remember to clone generics derived expr
Diffstat (limited to 'src/server/generics.odin')
-rw-r--r--src/server/generics.odin5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/generics.odin b/src/server/generics.odin
index 5921de2..50a477a 100644
--- a/src/server/generics.odin
+++ b/src/server/generics.odin
@@ -439,11 +439,14 @@ resolve_generic_function_symbol :: proc(
return {}, false
}
+ symbol_expr = clone_expr(symbol_expr, ast_context.allocator, nil)
+ param_type := clone_expr(param.type, ast_context.allocator, nil)
+
if resolve_poly(
ast_context,
symbol_expr,
symbol,
- param.type,
+ param_type,
&poly_map,
) {
if poly, ok := name.derived.(^ast.Poly_Type); ok {