rust/compiler/rustc_lint/src
bors 1202bbaf48 Auto merge of #99887 - nnethercote:rm-TreeAndSpacing, r=petrochenkov
Remove `TreeAndSpacing`.

A `TokenStream` contains a `Lrc<Vec<(TokenTree, Spacing)>>`. But this is
not quite right. `Spacing` makes sense for `TokenTree::Token`, but does
not make sense for `TokenTree::Delimited`, because a
`TokenTree::Delimited` cannot be joined with another `TokenTree`.

This commit fixes this problem, by adding `Spacing` to `TokenTree::Token`,
changing `TokenStream` to contain a `Lrc<Vec<TokenTree>>`, and removing the
`TreeAndSpacing` typedef.

The commit removes these two impls:
- `impl From<TokenTree> for TokenStream`
- `impl From<TokenTree> for TreeAndSpacing`

These were useful, but also resulted in code with many `.into()` calls
that was hard to read, particularly for anyone not highly familiar with
the relevant types. This commit makes some other changes to compensate:
- `TokenTree::token()` becomes `TokenTree::token_{alone,joint}()`.
- `TokenStream::token_{alone,joint}()` are added.
- `TokenStream::delimited` is added.

This results in things like this:
```rust
TokenTree::token(token::Semi, stmt.span).into()
```
changing to this:
```rust
TokenStream::token_alone(token::Semi, stmt.span)
```
This makes the type of the result, and its spacing, clearer.

These changes also simplifies `Cursor` and `CursorRef`, because they no longer
need to distinguish between `next` and `next_with_spacing`.

r? `@petrochenkov`
2022-07-30 14:50:05 +00:00
..
nonstandard_style mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
array_into_iter.rs lint: port array-into-iter diagnostics 2022-06-30 08:59:19 +01:00
builtin.rs Remove TreeAndSpacing. 2022-07-29 15:52:15 +10:00
context.rs Generate correct suggestion with named arguments used positionally 2022-07-25 00:00:27 -06:00
early.rs Remove some early check_* functions. 2022-07-29 15:27:16 +10:00
enum_intrinsics_non_enums.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
expect.rs lint: port expectation diagnostics 2022-06-30 08:59:21 +01:00
hidden_unicode_codepoints.rs lint: port hidden unicode codepoints diagnostics 2022-06-30 08:59:21 +01:00
internal.rs lint: add bad opt access internal lint 2022-07-27 11:24:27 +01:00
late.rs Remove some late check_* functions. 2022-07-29 15:30:12 +10:00
levels.rs lint: LintDiagnosticBuilder into rustc_errors 2022-07-05 16:00:20 +01:00
lib.rs Rollup merge of #99888 - nnethercote:streamline-visitors, r=cjgillot 2022-07-30 07:39:54 +09:00
methods.rs lint: port CString ptr diagnostics 2022-06-30 08:59:21 +01:00
non_ascii_idents.rs lint: port non-ascii-idents diagnostics 2022-06-30 08:59:21 +01:00
non_fmt_panic.rs lint: port non-fmt-panic diagnostics 2022-06-30 08:59:21 +01:00
nonstandard_style.rs lint: port non-standard style diagnostics 2022-06-30 08:59:21 +01:00
noop_method_call.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
pass_by_value.rs lint: port pass-by-value diagnostics 2022-06-30 08:59:21 +01:00
passes.rs Remove some late check_* functions. 2022-07-29 15:30:12 +10:00
redundant_semicolon.rs lint: port redundant semicolons diagnostics 2022-06-30 08:59:21 +01:00
tests.rs Update to last upstream version 2021-07-08 17:14:28 +02:00
traits.rs lint: port drop trait/glue diagnostics 2022-06-30 08:59:21 +01:00
types.rs Update invalid atomic ordering lint 2022-07-18 12:02:11 +02:00
unused.rs lint: port unused allocation diagnostics 2022-06-30 08:59:22 +01:00