aboutsummaryrefslogtreecommitdiff
path: root/crates/ide/src/syntax_tree.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-02-04 18:33:57 +0000
committerGitHub <[email protected]>2021-02-04 18:33:57 +0000
commit36191543a679d4e01c206d2e98a2d7ae170a25e2 (patch)
tree91431506bde2965c819030eea14433926b82310f /crates/ide/src/syntax_tree.rs
parent663d404a4ee52cf96e0de793e45290be1a43dcb5 (diff)
parent003ee0086ae424ec43ad14cd90af9cd5809a93c8 (diff)
Merge #7557
7557: Intern `TypeRef`s in the containing `ItemTree` r=jonas-schievink a=jonas-schievink This reduces the memory used by `ItemTreeQuery` by ~20%. As it turns out, `TypeRef` is very heavy, and is used a lot in `ItemTree`: * Many types are frequently repeated throughout the same file. This is what this PR addresses by storing identical `TypeRef`s only once per `ItemTree`. * The vast majority of `TypeRef` consist of a plain path with only a single element. "Type anchors" like in `<Ty>::func` are used incredibly rarely, and even multi-segment paths are much rarer than single-segment paths. Co-authored-by: Jonas Schievink <[email protected]>
Diffstat (limited to 'crates/ide/src/syntax_tree.rs')
0 files changed, 0 insertions, 0 deletions