Refactor NodeIdentity to use unique IDs
The `NodeIdentity` struct has been refactored to use a unique `id` field generated by an atomic counter. This ensures that each `NodeIdentity` instance is distinct, even if it has the same `SourceLocation`. The `location` field is now optional, allowing for anonymous nodes. This change improves the reliability of identity comparisons and provides a more robust way to manage AST node identities.
This commit is contained in:
@@ -130,9 +130,7 @@ impl Binder {
|
||||
};
|
||||
binder.functions.push(FunctionCompiler::new(
|
||||
ScopeKind::Root,
|
||||
Rc::new(crate::ast::types::NodeIdentity {
|
||||
location: crate::ast::types::SourceLocation { line: 0, col: 0 },
|
||||
}),
|
||||
crate::ast::types::NodeIdentity::new(crate::ast::types::SourceLocation { line: 0, col: 0 }),
|
||||
));
|
||||
binder
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user