about summary refs log tree commit diff
path: root/compiler/rustc_interface/src
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2024-08-06 17:16:40 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2024-08-16 09:07:55 +1000
commit9d31f86f0d1482b4e5084579238009cc5d98e49f (patch)
tree902fd3a835b94ecd4fa7466743fea17d4897ca1a /compiler/rustc_interface/src
parentfe460ac28b63ea97685f131c318af99158a5f87c (diff)
downloadrust-9d31f86f0d1482b4e5084579238009cc5d98e49f.tar.gz
rust-9d31f86f0d1482b4e5084579238009cc5d98e49f.zip
Overhaul token collection.
This commit does the following.

- Renames `collect_tokens_trailing_token` as `collect_tokens`, because
  (a) it's annoying long, and (b) the `_trailing_token` bit is less
  accurate now that its types have changed.

- In `collect_tokens`, adds a `Option<CollectPos>` argument and a
  `UsePreAttrPos` in the return type of `f`. These are used in
  `parse_expr_force_collect` (for vanilla expressions) and in
  `parse_stmt_without_recovery` (for two different cases of expression
  statements). Together these ensure are enough to fix all the problems
  with token collection and assoc expressions. The changes to the
  `stringify.rs` test demonstrate some of these.

- Adds a new test. The code in this test was causing an assertion
  failure prior to this commit, due to an invalid `NodeRange`.

The extra complexity is annoying, but necessary to fix the existing
problems.
Diffstat (limited to 'compiler/rustc_interface/src')
0 files changed, 0 insertions, 0 deletions