aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
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