Skip to content

Commit 899e353

Browse files
Tracking SyntaxNode and interning through a tracked function
1 parent 22fd6e5 commit 899e353

File tree

4 files changed

+536
-525
lines changed

4 files changed

+536
-525
lines changed

crates/cairo-lang-syntax-codegen/src/generator.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ fn gen_enum_code(
502502
}
503503
}
504504
fn stable_ptr(&self, db: &'db dyn Database) -> Self::StablePtr {
505-
$(&ptr_name)(self.as_syntax_node().long(db).stable_ptr)
505+
$(&ptr_name)(self.as_syntax_node().stable_ptr(db))
506506
}
507507
}
508508
impl<'db> $(&name)<'db> {
@@ -532,7 +532,7 @@ fn gen_token_code(name: String) -> rust::Tokens {
532532
}.intern(db))
533533
}
534534
fn text(&self, db: &'db dyn Database) -> SmolStrId<'db> {
535-
*extract_matches!(&self.node.long(db).green.long(db).details,
535+
*extract_matches!(&self.node.green_node(db).details,
536536
GreenNodeDetails::Token)
537537
}
538538
}
@@ -570,7 +570,7 @@ fn gen_token_code(name: String) -> rust::Tokens {
570570
}.intern(db))
571571
}
572572
fn from_syntax_node(db: &'db dyn Database, node: SyntaxNode<'db>) -> Self {
573-
match node.long(db).green.long(db).details {
573+
match node.green_node(db).details {
574574
GreenNodeDetails::Token(_) => Self { node },
575575
GreenNodeDetails::Node { .. } => panic!(
576576
"Expected a token {:?}, not an internal node",
@@ -579,7 +579,7 @@ fn gen_token_code(name: String) -> rust::Tokens {
579579
}
580580
}
581581
fn cast(db: &'db dyn Database, node: SyntaxNode<'db>) -> Option<Self> {
582-
match node.long(db).green.long(db).details {
582+
match node.green_node(db).details {
583583
GreenNodeDetails::Token(_) => Some(Self { node }),
584584
GreenNodeDetails::Node { .. } => None,
585585
}
@@ -658,7 +658,7 @@ fn gen_struct_code(name: String, members: Vec<Member>, is_terminal: bool) -> rus
658658
}.intern(db))
659659
}
660660
fn text(&self, db: &'db dyn Database) -> SmolStrId<'db> {
661-
let GreenNodeDetails::Node{children,..} = &self.node.long(db).green.long(db).details else {
661+
let GreenNodeDetails::Node{children,..} = &self.node.green_node(db).details else {
662662
unreachable!("Expected a node, not a token");
663663
};
664664
*extract_matches!(&children[1].long(db).details, GreenNodeDetails::Token)

0 commit comments

Comments
 (0)