diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2024-05-11 21:34:45 +0200 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2024-05-11 21:34:45 +0200 |
| commit | 1d2df42baa781a4838393b533601af35f9e30246 (patch) | |
| tree | c8d1777dc588f8f63f4f49f6f3a56755e5d23d0b /src/server/generics.odin | |
| parent | f06cf17a90e8f181e8717588e1398efb06b802cc (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.odin | 16 |
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 } } |