aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2025-07-16 00:40:26 +0200
committerGitHub <noreply@github.com>2025-07-16 00:40:26 +0200
commit775840d15b9d0bf730ac5e7321e91eaf74f99fc9 (patch)
tree86ca176d9b28a3135ceb89db4bf3c4fc4cbf0bf5 /src/server
parent38089237530bad6b009df5d73d787bd077b38b93 (diff)
parentd599873b3558a693e3278e9efd31ead483a605e6 (diff)
Merge pull request #752 from BradLewis/fix/duplicate-usings
Remove duplicate usings from ast_context usings
Diffstat (limited to 'src/server')
-rw-r--r--src/server/analysis.odin12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 2bd6717..3583a64 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -134,6 +134,16 @@ make_ast_context :: proc(
return ast_context
}
+add_using :: proc(ast_context: ^AstContext, using_name: string) {
+ for u in ast_context.usings {
+ if u == using_name {
+ return
+ }
+ }
+
+ append(&ast_context.usings, using_name)
+}
+
set_ast_package_deferred :: proc(ast_context: ^AstContext, pkg: string) {
if ast_context.deferred_count <= 0 {
return
@@ -3388,7 +3398,7 @@ get_locals_using :: proc(expr: ^ast.Expr, ast_context: ^AstContext) {
#partial switch v in symbol.value {
case SymbolPackageValue:
if ident, ok := expr.derived.(^ast.Ident); ok {
- append(&ast_context.usings, ident.name)
+ add_using(ast_context, ident.name)
}
case SymbolStructValue:
for name, i in v.names {