diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2018-12-19 14:53:52 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-01-08 15:08:46 +1100 |
| commit | e80a93040ffbbb7eb8013f1dcd3b594ce8a631cd (patch) | |
| tree | 7dab947607d393e7d4fdc35ffa95a6f101f3a549 /src/libsyntax/parse/classify.rs | |
| parent | b92552d5578e4544006da0dd5e793a19c2149321 (diff) | |
| download | rust-e80a93040ffbbb7eb8013f1dcd3b594ce8a631cd.tar.gz rust-e80a93040ffbbb7eb8013f1dcd3b594ce8a631cd.zip | |
Make `TokenStream` less recursive.
`TokenStream` is currently recursive in *two* ways: - the `TokenTree` variant contains a `ThinTokenStream`, which can contain a `TokenStream`; - the `TokenStream` variant contains a `Vec<TokenStream>`. The latter is not necessary and causes significant complexity. This commit replaces it with the simpler `Vec<(TokenTree, IsJoint)>`. This reduces complexity significantly. In particular, `StreamCursor` is eliminated, and `Cursor` becomes much simpler, consisting now of just a `TokenStream` and an index. The commit also removes the `Extend` impl for `TokenStream`, because it is only used in tests. (The commit also removes those tests.) Overall, the commit reduces the number of lines of code by almost 200.
Diffstat (limited to 'src/libsyntax/parse/classify.rs')
0 files changed, 0 insertions, 0 deletions
