about summary refs log tree commit diff
path: root/src/librustc_parse
AgeCommit message (Collapse)AuthorLines
2020-05-22Move functions to librustc_parseAaron Hill-2/+123
2020-05-22Rewrite `Parser::collect_tokens`Aaron Hill-73/+113
The previous implementation did not work when called on an opening delimiter, or when called re-entrantly from the same `TokenCursor` stack depth.
2020-05-21Adjust according to petrochenkov's review commentsmibac138-43/+22
2020-05-20Adjust according to estebank's review commentsmibac138-11/+8
2020-05-20Error recovery for `let` with `+=`mibac138-33/+32
2020-05-20Expand partial error recovery for `let` with `BinOpEq`mibac138-10/+30
2020-05-20Implement partial error recovery for `let` with `BinOpEq`mibac138-2/+27
When parsing `let x: i8 += 1` the compiler interprets `i8` as a trait which makes it more complicated to do error recovery. More advanced error recovery is not implemented in this commit.
2020-05-16Rollup merge of #72254 - ehuss:double-backtick, r=dtolnayRalf Jung-1/+1
Remove redundant backtick in error message. The value passed in already has backticks surrounding the text.
2020-05-16Rollup merge of #72047 - ↵Ralf Jung-122/+30
Julian-Wollersberger:literal_error_reporting_cleanup, r=petrochenkov Literal error reporting cleanup While doing some performance work, I noticed some code duplication in `librustc_parser/lexer/mod.rs`, so I cleaned it up. This PR is probably best reviewed commit by commit. I'm not sure what the API stability practices for `librustc_lexer` are. Four public methods in `unescape.rs` can be removed, but two are used by clippy, so I left them in for now. I could open a PR for Rust-Analyzer when this one lands. But how do I open a PR for clippy? (Git submodules are frustrating to work with)
2020-05-15Remove redundant backtick in error message.Eric Huss-1/+1
The value passed in already has backticks surrounding the text.
2020-05-14cleanup stale FIXME(#64197)sergey-melnychuk-2/+5
2020-05-13Unified `validate_{byte,str,raw_str,raw_byte_str}_escape` methods into one ↵Julian Wollersberger-122/+30
method `validate_literal_escape` with a mode argument. This enables simplifying the `match` in `cook_lexer_literal()` and it eliminates 90 lines of repetition :)
2020-05-08Remove ast::{Ident, Name} reexports.Camille GILLOT-18/+16
2020-05-05Detect errors caused by `async` block in 2015 editionEsteban Küber-22/+36
2020-05-03Implement `confusable_idents` lint.Charles Lew-1/+2
2020-04-30Rollup merge of #71433 - antoyo:error/missing-right-operand, r=Dylan-DPCDylan DPC-0/+5
Add help message for missing right operand in condition closes #30035
2020-04-24Avoid unused Option::map resultsJosh Stone-2/+2
These are changes that would be needed if we add `#[must_use]` to `Option::map`, per #71484.
2020-04-23Rollup merge of #70633 - kper:master, r=estebankDylan DPC-6/+35
Confusing suggestion on incorrect closing `}` Compiler returns ``` error: unexpected closing delimiter: `}` --> main.rs:20:1 | 9 | ErrorHandled::Reported => {} | -- this block is empty, you might have not meant to close it temp ... 20 | } | ^ unexpected closing delimiter error: aborting due to previous error ```
2020-04-22Rollup merge of #71256 - cuviper:must_use_replace, r=estebankDylan DPC-9/+8
Lint must_use on mem::replace This adds a hint on `mem::replace`, "if you don't need the old value, you can just assign the new value directly". This is in similar spirit to the `must_use` on `ManuallyDrop::take`.
2020-04-22Add help message for missing right operand in conditionAntoni Boucher-0/+5
2020-04-22Add error code to inner doc comment attribute errorGuillaume Gomez-3/+9
2020-04-20Remove unused dependenciesShotaro Yamada-1/+0
2020-04-19Dogfood more or_patterns in the compilerJosh Stone-9/+7
2020-04-18remove build warningsTshepang Lekhonkhobe-3/+5
Code blocks that are not annotated are assumed to be Rust
2020-04-17Fix unused results from mem::replaceJosh Stone-9/+8
2020-04-17Improved try_macro_suggestion functionDuddino-4/+2
2020-04-17Improved try_macro_suggestionDuddino-4/+5
2020-04-17Moved is_try check into try_macro_suggestionDuddino-4/+3
2020-04-17Account for use of `try!()` in 2018 edition and guide users in the right ↵Duddino-0/+35
direction
2020-04-14allow try as scrutinee, e.g. `match try ...`Bastian Kauschke-5/+3
2020-04-04Run fmtKevin Per-31/+16
2020-04-04Drop `this` in error message to not reach 100 charactersKevin Per-1/+1
2020-04-04Show open and closed braces of last proper blockKevin Per-9/+39
2020-04-03Fixing testsKevin Per-1/+0
2020-04-03.unwrap() less on .span_to_snippet()Mazdak Farrokhzad-3/+3
2020-04-02Rollup merge of #70421 - Centril:recover-const-async-fn-ptr, r=estebankMazdak Farrokhzad-18/+30
parse: recover on `const fn()` / `async fn()` Recover on `const fn()` and `async fn()` function pointers, suggesting to remove the qualifier. For example: ``` error: an `fn` pointer type cannot be `async` --> $DIR/recover-const-async-fn-ptr.rs:6:11 | LL | type T3 = async fn(); | -----^^^^^ | | | `async` because of this | help: remove the `async` qualifier ``` r? @estebank
2020-04-02Check if the suggestion's `this block is empty...` span is in the last ↵Kevin Per-4/+19
properly closed block.
2020-04-01Rollup merge of #70522 - rcoh:60762-raw-string-errors, r=petrochenkovMazdak Farrokhzad-37/+90
Improve error messages for raw strings (#60762) This diff improves error messages around raw strings in a few ways: - Catch extra trailing `#` in the parser. This can't be handled in the lexer because we could be in a macro that actually expects another # (see test) - Refactor & unify error handling in the lexer between ByteStrings and RawByteStrings - Detect potentially intended terminators (longest sequence of "#*" is suggested) Fixes #60762 cc @estebank who reviewed the original (abandoned) PR for the same ticket. r? @Centril
2020-04-01Revert "Dropping "block is empty..." error message on incorrect closing ↵Kevin Per-3/+7
delimiter #70583" This reverts commit 811d817eaf5d78522773ab9d21543629027e4ecb.
2020-04-01Rollup merge of #70556 - Centril:fix-70552, r=estebankDylan DPC-0/+1
parse_and_disallow_postfix_after_cast: account for `ExprKind::Err`. Fixes https://github.com/rust-lang/rust/issues/70552. r? @estebank cc @daboross
2020-03-31Dropping "block is empty..." error message on incorrect closing delimiter #70583Kevin Per-7/+3
2020-03-30Clean up redudant conditions and match exprsRussell Cohen-11/+10
2020-03-30remove obsolete commentTshepang Lekhonkhobe-3/+0
Made obsolete by b5e35b128efeed4bfdb4b1ee9d0697389ec9f164
2020-03-30parse_and_disallow_postfix_after_cast: account for `ExprKind::Err`.Mazdak Farrokhzad-0/+1
2020-03-29Cleanup match expressionRussell Cohen-11/+7
2020-03-29Cleanup error messages, improve docstringsRussell Cohen-9/+12
2020-03-29reduce rustc_attr usage in placesMazdak Farrokhzad-1/+0
2020-03-29Improve error messages for raw strings (#60762)Russell Cohen-35/+90
This diff improves error messages around raw strings in a few ways: - Catch extra trailing `#` in the parser. This can't be handled in the lexer because we could be in a macro that actually expects another # (see test) - Refactor & unify error handling in the lexer between ByteStrings and RawByteStrings - Detect potentially intended terminators (longest sequence of "#*" is suggested)
2020-03-27address some review commentsMazdak Farrokhzad-6/+8
2020-03-27parse: improve recovery for assoc eq constraints.Mazdak Farrokhzad-1/+43