From 79b3c6b3efe6ff8fe3e98230a8eddfd0b3179e5a Mon Sep 17 00:00:00 2001 From: sofia Date: Sun, 3 Aug 2025 20:27:31 +0300 Subject: [PATCH] Fix custom struct field definition semantic tokens --- reid-lsp/src/analysis.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reid-lsp/src/analysis.rs b/reid-lsp/src/analysis.rs index 9639cf8..968c247 100644 --- a/reid-lsp/src/analysis.rs +++ b/reid-lsp/src/analysis.rs @@ -368,6 +368,8 @@ pub fn analyze_context(context: &mir::Context, module: &mir::Module, error: Opti ); for field in fields { + scope.state.init_types(&field.2, Some(field.1.clone())); + let field_idx = scope .token_idx(&field.2, |t| matches!(t, Token::Identifier(_))) .unwrap_or(field.2.range.end); @@ -381,8 +383,6 @@ pub fn analyze_context(context: &mir::Context, module: &mir::Module, error: Opti ), field_symbol, ); - - scope.state.init_types(&field.2, Some(field.1.clone())); } } } @@ -582,6 +582,7 @@ pub fn analyze_expr( let field_idx = scope .token_idx(&meta, |t| matches!(t, Token::Identifier(_))) .unwrap_or(meta.range.end); + let field_symbol = if let Some(symbol_id) = scope.properties.get(&(accessed_type.clone(), name.clone())) { scope.state.new_symbol(field_idx, SemanticKind::Reference(*symbol_id))