aboutsummaryrefslogtreecommitdiff
path: root/src/server/generics.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-12 12:00:42 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-12 12:00:42 -0400
commit1ba549a5efd458c62439dc7b5d400b3f5f823b26 (patch)
treea025c042a42c0e3ae5bd6e1e875b769804847ccb /src/server/generics.odin
parent613c9e6d59dfcdc72dfb3fcc72e63f1ed277cbfc (diff)
Show poly struct information on types from external packages and resolve identifier poly types
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 a629d3e..7eea7a2 100644
--- a/src/server/generics.odin
+++ b/src/server/generics.odin
@@ -676,7 +676,10 @@ resolve_poly_struct :: proc(ast_context: ^AstContext, b: ^SymbolStructValueBuild
continue
}
- if poly, ok := param.type.derived.(^ast.Typeid_Type); ok {
+ if ident, ok := param.type.derived.(^ast.Ident); ok {
+ poly_map[ident.name] = ast_context.call.args[i]
+ b.poly_names[i] = node_to_string(ast_context.call.args[i])
+ } else if poly, ok := param.type.derived.(^ast.Typeid_Type); ok {
if ident, ok := name.derived.(^ast.Ident); ok {
poly_map[ident.name] = ast_context.call.args[i]
b.poly_names[i] = node_to_string(ast_context.call.args[i])