From 3adb7455767e85850473239ca21ef6c7420224a1 Mon Sep 17 00:00:00 2001 From: sofia Date: Tue, 29 Jul 2025 23:38:26 +0300 Subject: [PATCH] Fix struct recursion testing --- reid-lsp/src/main.rs | 2 +- reid/src/mir/typecheck/typecheck.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/reid-lsp/src/main.rs b/reid-lsp/src/main.rs index 6b2e221..20fb852 100644 --- a/reid-lsp/src/main.rs +++ b/reid-lsp/src/main.rs @@ -68,7 +68,7 @@ impl LanguageServer for Backend { Ok(()) } - async fn completion(&self, _: CompletionParams) -> jsonrpc::Result> { + async fn completion(&self, params: CompletionParams) -> jsonrpc::Result> { Ok(Some(CompletionResponse::Array(vec![ CompletionItem::new_simple("Hello".to_string(), "Some detail".to_string()), CompletionItem::new_simple("Bye".to_string(), "More detail".to_string()), diff --git a/reid/src/mir/typecheck/typecheck.rs b/reid/src/mir/typecheck/typecheck.rs index 67dbc29..f468a1f 100644 --- a/reid/src/mir/typecheck/typecheck.rs +++ b/reid/src/mir/typecheck/typecheck.rs @@ -97,9 +97,10 @@ fn check_typedefs_for_recursion<'a, 'b>( typedef.meta, ); } else { - seen.insert(name.clone()); if let Some(inner_typedef) = defmap.get(name) { - check_typedefs_for_recursion(defmap, inner_typedef, seen.clone(), state) + let mut inner_seen = seen.clone(); + inner_seen.insert(name.clone()); + check_typedefs_for_recursion(defmap, inner_typedef, inner_seen.clone(), state) } } }