rust-analyzer
rust-analyzer copied to clipboard
syntax-editor: Split concept of node identity from SyntaxNode equality
SyntaxEditor relies on the notion of SyntaxNode equality to track a node through the whole SyntaxMapping tree, but identity is unfortunately currently tied to SyntaxNodes being reference counted. We can add a layer of indirection (e.g. SyntaxId) so that we can associate multiple node instances with the same identity and further separate ourselves from the concept of mutable syntax trees.