From 45d8e246d754a1127a7f9a1c022912c4eb1d9153 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalski Date: Wed, 1 Oct 2025 15:06:50 +0200 Subject: [PATCH 1/3] Make file_syntax_data function public --- crates/cairo-lang-parser/src/db.rs | 2 +- crates/cairo-lang-semantic/src/expr/pattern.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/cairo-lang-parser/src/db.rs b/crates/cairo-lang-parser/src/db.rs index 07a3849640a..e0950a216e3 100644 --- a/crates/cairo-lang-parser/src/db.rs +++ b/crates/cairo-lang-parser/src/db.rs @@ -50,7 +50,7 @@ struct SyntaxData<'db> { /// Parses a file and returns the result and the generated [ParserDiagnostic]. #[salsa::tracked(returns(ref))] -fn file_syntax_data<'db>(db: &'db dyn Database, file_id: FileId<'db>) -> SyntaxData<'db> { +pub fn file_syntax_data<'db>(db: &'db dyn Database, file_id: FileId<'db>) -> SyntaxData<'db> { let mut diagnostics = DiagnosticsBuilder::default(); let syntax = db.file_content(file_id).to_maybe().map(|s| match file_id.kind(db) { FileKind::Module => Parser::parse_file(db, &mut diagnostics, file_id, s).as_syntax_node(), diff --git a/crates/cairo-lang-semantic/src/expr/pattern.rs b/crates/cairo-lang-semantic/src/expr/pattern.rs index bbdd34a113c..2cf819fbbe3 100644 --- a/crates/cairo-lang-semantic/src/expr/pattern.rs +++ b/crates/cairo-lang-semantic/src/expr/pattern.rs @@ -5,9 +5,9 @@ use cairo_lang_filesystem::ids::SmolStrId; use cairo_lang_proc_macros::{DebugWithDb, SemanticObject}; use cairo_lang_syntax::node::ast; use cairo_lang_syntax::node::ids::SyntaxStablePtrId; +use salsa::Database; use super::fmt::ExprFormatter; -use crate::db::SemanticGroup; use crate::items::function_with_body::FunctionWithBodySemantic; use crate::{ ConcreteStructId, ExprLiteral, ExprStringLiteral, LocalVariable, PatternArena, PatternId, @@ -123,7 +123,7 @@ impl<'a> PatternVariablesQueryable<'a> for PatternArena<'a> { /// This is a wrapper over [`SemanticGroup`] that takes [`FunctionWithBodyId`] /// and relays queries to [`FunctionWithBodySemantic::pattern_semantic`]. pub struct QueryPatternVariablesFromDb<'a>( - pub &'a (dyn SemanticGroup + 'static), + pub &'a (dyn Database + 'static), pub FunctionWithBodyId<'a>, ); From 7c9d8bfdd55ebfd3b03f56d51775c23986538abd Mon Sep 17 00:00:00 2001 From: Mateusz Kowalski Date: Thu, 2 Oct 2025 13:44:37 +0200 Subject: [PATCH 2/3] Make file_syntax public instead of file_syntax_data --- crates/cairo-lang-parser/src/db.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/cairo-lang-parser/src/db.rs b/crates/cairo-lang-parser/src/db.rs index e0950a216e3..3ef8e69db00 100644 --- a/crates/cairo-lang-parser/src/db.rs +++ b/crates/cairo-lang-parser/src/db.rs @@ -14,6 +14,11 @@ mod db_test; /// Interface of the parser database. pub trait ParserGroup: Database { + /// Parses a file and returns its AST as a root SyntaxNode. + fn file_syntax<'db>(&'db self, file_id: FileId<'db>) -> Maybe> { + file_syntax(self.as_dyn_database(), file_id) + } + /// Parses a file and returns its AST as a root SyntaxFile. fn file_module_syntax<'db>(&'db self, file_id: FileId<'db>) -> Maybe> { file_module_syntax(self.as_dyn_database(), file_id) @@ -50,7 +55,7 @@ struct SyntaxData<'db> { /// Parses a file and returns the result and the generated [ParserDiagnostic]. #[salsa::tracked(returns(ref))] -pub fn file_syntax_data<'db>(db: &'db dyn Database, file_id: FileId<'db>) -> SyntaxData<'db> { +fn file_syntax_data<'db>(db: &'db dyn Database, file_id: FileId<'db>) -> SyntaxData<'db> { let mut diagnostics = DiagnosticsBuilder::default(); let syntax = db.file_content(file_id).to_maybe().map(|s| match file_id.kind(db) { FileKind::Module => Parser::parse_file(db, &mut diagnostics, file_id, s).as_syntax_node(), From 6d6eecbf1434a7de16b53be77178a9acdc3627d9 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalski Date: Mon, 6 Oct 2025 14:44:46 +0200 Subject: [PATCH 3/3] Fix docs --- crates/cairo-lang-semantic/src/expr/pattern.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/cairo-lang-semantic/src/expr/pattern.rs b/crates/cairo-lang-semantic/src/expr/pattern.rs index 2cf819fbbe3..8ade39daa94 100644 --- a/crates/cairo-lang-semantic/src/expr/pattern.rs +++ b/crates/cairo-lang-semantic/src/expr/pattern.rs @@ -120,7 +120,7 @@ impl<'a> PatternVariablesQueryable<'a> for PatternArena<'a> { /// Query a function for variables of patterns defined within it. /// -/// This is a wrapper over [`SemanticGroup`] that takes [`FunctionWithBodyId`] +/// This is a wrapper over [`Database`] that takes [`FunctionWithBodyId`] /// and relays queries to [`FunctionWithBodySemantic::pattern_semantic`]. pub struct QueryPatternVariablesFromDb<'a>( pub &'a (dyn Database + 'static),