aboutsummaryrefslogtreecommitdiff
path: root/src/server/generics.odin
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-05-11 21:34:45 +0200
committerDanielGavin <danielgavin5@hotmail.com>2024-05-11 21:34:45 +0200
commit1d2df42baa781a4838393b533601af35f9e30246 (patch)
treec8d1777dc588f8f63f4f49f6f3a56755e5d23d0b /src/server/generics.odin
parentf06cf17a90e8f181e8717588e1398efb06b802cc (diff)
Fix issues with the local evaluation of generic function in value decl, since we can't lazily evaluate it.
Diffstat (limited to 'src/server/generics.odin')
-rw-r--r--src/server/generics.odin16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/server/generics.odin b/src/server/generics.odin
index 329a244..a2393d0 100644
--- a/src/server/generics.odin
+++ b/src/server/generics.odin
@@ -351,31 +351,47 @@ find_and_replace_poly_type :: proc(
case ^ast.Matrix_Type:
if expr, ok := is_in_poly_map(v.elem, poly_map); ok {
v.elem = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
if expr, ok := is_in_poly_map(v.column_count, poly_map); ok {
v.column_count = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
if expr, ok := is_in_poly_map(v.row_count, poly_map); ok {
v.row_count = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
case ^ast.Dynamic_Array_Type:
if expr, ok := is_in_poly_map(v.elem, poly_map); ok {
v.elem = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
case ^ast.Array_Type:
if expr, ok := is_in_poly_map(v.elem, poly_map); ok {
v.elem = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
if expr, ok := is_in_poly_map(v.len, poly_map); ok {
v.len = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
case ^ast.Multi_Pointer_Type:
if expr, ok := is_in_poly_map(v.elem, poly_map); ok {
v.elem = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
case ^ast.Pointer_Type:
if expr, ok := is_in_poly_map(v.elem, poly_map); ok {
v.elem = expr
+ v.pos.file = expr.pos.file
+ v.end.file = expr.end.file
}
}