diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-10-04 08:06:26 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-10-04 08:06:26 -0400 |
| commit | e0dbda3ab7082551c5b1ccd06bcd76f1d3f437ba (patch) | |
| tree | 177dfe6d6ecc15816444766cf2fca27b9e4bdc1e /src | |
| parent | b85caeb82b86af897113eff551d37616d4e8e440 (diff) | |
Add proc inlining information for generic procs
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/analysis.odin | 3 | ||||
| -rw-r--r-- | src/server/generics.odin | 4 |
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 |