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) } } }