func token_tree_range(tree: &TokenTree) -> TokenRangeFlatten one tree back to its canonical tokens, preserving every token and byte range. This is a token operation, not source reconstruction.
View Source
pub func token_tree_range(tree: &TokenTree) -> TokenRange {
let tokens: [Token] = []
append_tree_tokens(tokens: tokens, tree: tree)
match tree {
.leaf(token) -> TokenRange(tokens: tokens, span: token.span),
.group(group) -> TokenRange(tokens: tokens, span: group.open.span.lower..<group.close.span.upper)
}
}