token_tree_range

func token_tree_range(tree: &TokenTree) -> TokenRange

Flatten 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)
	}
}