aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-10-04 08:06:26 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-10-04 08:06:26 -0400
commite0dbda3ab7082551c5b1ccd06bcd76f1d3f437ba (patch)
tree177dfe6d6ecc15816444766cf2fca27b9e4bdc1e /src/server
parentb85caeb82b86af897113eff551d37616d4e8e440 (diff)
Add proc inlining information for generic procs
Diffstat (limited to 'src/server')
-rw-r--r--src/server/analysis.odin3
-rw-r--r--src/server/generics.odin4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index abddab6..1ee5ad6 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -2482,7 +2482,8 @@ resolve_symbol_return :: proc(ast_context: ^AstContext, symbol: Symbol, ok := tr
}
case SymbolProcedureValue:
if v.generic {
- if resolved_symbol, ok := resolve_generic_function(ast_context, v.arg_types, v.return_types); ok {
+ if resolved_symbol, ok := resolve_generic_function(ast_context, v.arg_types, v.return_types, v.inlining);
+ ok {
return resolved_symbol, ok
} else {
return symbol, true
diff --git a/src/server/generics.odin b/src/server/generics.odin
index e8abdaf..d57f4d5 100644
--- a/src/server/generics.odin
+++ b/src/server/generics.odin
@@ -502,7 +502,7 @@ resolve_generic_function_ast :: proc(ast_context: ^AstContext, proc_lit: ast.Pro
results = proc_lit.type.results.list
}
- return resolve_generic_function_symbol(ast_context, params, results)
+ return resolve_generic_function_symbol(ast_context, params, results, proc_lit.inlining)
}
@@ -510,6 +510,7 @@ resolve_generic_function_symbol :: proc(
ast_context: ^AstContext,
params: []^ast.Field,
results: []^ast.Field,
+ inlining: ast.Proc_Inlining,
) -> (
Symbol,
bool,
@@ -686,6 +687,7 @@ resolve_generic_function_symbol :: proc(
arg_types = argument_types[:],
orig_arg_types = params[:],
orig_return_types = results[:],
+ inlining = inlining,
}
return symbol, true