Implement RFC 2707 + Parser recovery for range patterns Implement https://github.com/rust-lang/rfcs/pull/2707. - Add a new basic syntactic pattern form `ast::PatKind::Rest` (parsed as `..` or `DOTDOT`) and simplify `ast::PatKind::{Slice, Tuple, TupleStruct}` as a result. - Lower `ast::PatKind::Rest` in combination with the aforementioned `PatKind` variants as well as `PatKind::Ident`. The HIR remains unchanged for now (may be advisable to make slight adjustments later). - Refactor `parser.rs` wrt. parsing sequences and lists of things in the process. - Add parser recovery for range patterns of form `X..`, `X..=`, `X...`, `..Y`, `..=Y`, and `...Y`. This should make it easy to actually support these patterns semantically later if we so desire. cc https://github.com/rust-lang/rust/issues/62254 r? @petrochenkov |
||
|---|---|---|
| .. | ||
| attr | ||
| diagnostics | ||
| ext | ||
| parse | ||
| util | ||
| ast.rs | ||
| build.rs | ||
| Cargo.toml | ||
| config.rs | ||
| early_buffered_lints.rs | ||
| entry.rs | ||
| error_codes.rs | ||
| feature_gate.rs | ||
| json.rs | ||
| lib.rs | ||
| mut_visit.rs | ||
| ptr.rs | ||
| README.md | ||
| show_span.rs | ||
| source_map.rs | ||
| test_snippet.rs | ||
| tokenstream.rs | ||
| visit.rs | ||
The syntax crate contains those things concerned purely with syntax
– that is, the AST ("abstract syntax tree"), parser, pretty-printer,
lexer, macro expander, and utilities for traversing ASTs.
For more information about how these things work in rustc, see the rustc guide: