summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser/diagnostics.rs
AgeCommit message (Collapse)AuthorLines
2022-05-11Remove some unnecessary invisible delimiter checks.Nicholas Nethercote-2/+1
These seem to have no useful effect... they don't seem useful from a code inspection point of view, and they affect anything in the test suite.
2022-04-28Rollup merge of #96433 - petrochenkov:delim, r=nnethercoteDylan DPC-42/+43
rustc_ast: Harmonize delimiter naming with `proc_macro::Delimiter` Compiler cannot reuse `proc_macro::Delimiter` directly due to extra impls, but can at least use the same naming. After this PR the only difference between these two enums is that `proc_macro::Delimiter::None` is turned into `token::Delimiter::Invisible`. It's my mistake that the invisible delimiter is called `None` on stable, during the stabilization I audited the naming and wrote the docs, but missed the fact that the `None` naming gives a wrong and confusing impression about what this thing is. cc https://github.com/rust-lang/rust/pull/96421 r? ``@nnethercote``
2022-04-28Rollup merge of #96405 - pvdrz:ambiguous-plus-diagnostic, r=davidtwcoDylan DPC-9/+12
Migrate ambiguous plus diagnostic to the new derive macro r? ````@davidtwco```` ````@jyn514````
2022-04-28rustc_ast: Harmonize delimiter naming with `proc_macro::Delimiter`Vadim Petrochenkov-42/+43
2022-04-27rename `sum_with_parens`Christian Poveda-6/+3
2022-04-26move `AmbigousPlus` outsideChristian Poveda-9/+10
2022-04-26avoid `format!`Christian Poveda-2/+2
2022-04-25remove old codeChristian Poveda-9/+0
2022-04-25migrate ambiguous plus diagnosticChristian Poveda-9/+23
2022-04-23Better handle too many `#` recovery in raw strEsteban Küber-9/+34
Point at all the unnecessary trailing `#`. Better handle interaction with outer attributes when `;` is missing. Fix #95030.
2022-04-05errors: implement fallback diagnostic translationDavid Wood-14/+22
This commit updates the signatures of all diagnostic functions to accept types that can be converted into a `DiagnosticMessage`. This enables existing diagnostic calls to continue to work as before and Fluent identifiers to be provided. The `SessionDiagnostic` derive just generates normal diagnostic calls, so these APIs had to be modified to accept Fluent identifiers. In addition, loading of the "fallback" Fluent bundle, which contains the built-in English messages, has been implemented. Each diagnostic now has "arguments" which correspond to variables in the Fluent messages (necessary to render a Fluent message) but no API for adding arguments has been added yet. Therefore, diagnostics (that do not require interpolation) can be converted to use Fluent identifiers and will be output as before.
2022-04-05span: move `MultiSpan`David Wood-3/+3
`MultiSpan` contains labels, which are more complicated with the introduction of diagnostic translation and will use types from `rustc_errors` - however, `rustc_errors` depends on `rustc_span` so `rustc_span` cannot use types like `DiagnosticMessage` without dependency cycles. Introduce a new `rustc_error_messages` crate that can contain `DiagnosticMessage` and `MultiSpan`. Signed-off-by: David Wood <david.wood@huawei.com>
2022-04-03Auto merge of #88672 - camelid:inc-parser-sugg, r=davidtwcobors-1/+213
Suggest `i += 1` when we see `i++` or `++i` Closes #83502 (for `i++` and `++i`; `--i` should be covered by #82987, and `i--` is tricky to handle). This is a continuation of #83536. r? `@estebank`
2022-04-02Fix doctest multi-line mod attributes handlingGuillaume Gomez-0/+4
2022-03-30Spellchecking compiler commentsYuri Astrakhan-1/+1
This PR cleans up the rest of the spelling mistakes in the compiler comments. This PR does not change any literal or code spelling issues.
2022-03-27Fix from rebaseNoah Lev-5/+5
I changed the test functions to be `pub` rather than called from a `main` function too, for easier future modification of tests.
2022-03-25diagnostics: correct generic bounds with doubled colonMichael Howell-0/+28
Fixes #95208
2022-03-23Fix rustfix panic on testNoah Lev-1/+1
`run-rustfix` applies all suggestions regardless of their Applicability. There's a flag, `rustfix-only-machine-applicable`, that does what it says, but then the produced `.fixed` file would have invalid code from the suggestions that weren't applied. So, I moved the cases of postfix increment, in which case multiple suggestions are given, to the `-notfixed` test, which does not run rustfix. I also changed the Applicability to Unspecified since MaybeIncorrect requires that the code be valid, even if it's incorrect.
2022-03-23Use `multipart_suggestions`Noah Lev-48/+54
This records that the suggestions are mutually-exclusive (i.e., only one should be applied).
2022-03-23Change temporary variable name if it would conflictNoah Lev-7/+4
2022-03-23Make `standalone` an enumNoah Lev-13/+25
2022-03-23Improve function namesNoah Lev-2/+2
2022-03-23Improve handling of `tmp` variable name conflictsNoah Lev-2/+6
2022-03-23Emit both subexp and standalone sugg for postfixNoah Lev-28/+54
This solves the TODO.
2022-03-23Emit structured suggestions for field accesses tooNoah Lev-22/+11
2022-03-23Refactor, handle fields better, add field testsNoah Lev-10/+10
2022-03-23Reduce rightward driftNoah Lev-31/+30
2022-03-23Remove error recovery todosNoah Lev-15/+9
2022-03-23Move increment checks to improve errorsNoah Lev-43/+185
2022-03-23Suggest `i += 1` when we see `i++` or `++i`Camelid-0/+43
2022-03-17Rollup merge of #94731 - TaKO8Ki:const-generic-expr-recovery, ↵Dylan DPC-22/+65
r=davidtwco,oli-obk Suggest adding `{ .. }` around a const function call with arguments closes #91020
2022-03-15use `format_args_capture` in some parts of rustc_parseTakayuki Maeda-14/+14
2022-03-12Use consistent prose for `::`Michael Howell-1/+1
Co-authored-by: Camille Gillot <gillot.camille@gmail.com>
2022-03-11diagnostics: single colon within `<>` probably, not type ascriptionMichael Howell-0/+13
Fixes #94812
2022-03-10replace `self.clone()` with `self.create_snapshot_for_diagnostic()`Takayuki Maeda-22/+22
2022-03-10add doc commentsTakayuki Maeda-3/+12
2022-03-09implement `SnapshotParser` structTakayuki Maeda-3/+30
2022-03-09implement and use `diagnostic_snapshot`Takayuki Maeda-0/+7
2022-03-04Do not recover from `Ty?` in macro parsingEsteban Kuber-3/+3
Follow up to #92746. Address #94510.
2022-03-02rename ErrorReported -> ErrorGuaranteedmark-11/+11
2022-02-28Rollup merge of #94445 - c410-f3r:more-let-chains, r=cjgillotMatthias Krüger-39/+39
4 - Make more use of `let_chains` Continuation of #94376. cc #53667
2022-02-28Tweak diagnosticsEsteban Kuber-14/+39
* Recover from invalid `'label: ` before block. * Make suggestion to enclose statements in a block multipart. * Point at `match`, `while`, `loop` and `unsafe` keywords when failing to parse their expression. * Do not suggest `{ ; }`. * Do not suggest `|` when very unlikely to be what was wanted (in `let` statements).
2022-02-284 - Make more use of `let_chains`Caio-39/+39
Continuation of #94376. cc #53667
2022-02-25Suggest {} around more bad const generic exprsMichael Goulet-16/+23
2022-02-23rustc_errors: let `DiagnosticBuilder::emit` return a "guarantee of emission".Eduard-Mihai Burtescu-10/+22
2022-02-23rustc_errors: take `self` by value in `DiagnosticBuilder::cancel`.Eduard-Mihai Burtescu-21/+18
2022-02-23Replace `&mut DiagnosticBuilder`, in signatures, with `&mut Diagnostic`.Eduard-Mihai Burtescu-6/+6
2022-02-03compiler: clippy::complexity fixesMatthias Krüger-4/+4
useless_format map_flatten useless_conversion needless_bool filter_next clone_on_copy needless_option_as_deref
2022-01-27Improve suggestion for escaping reserved keywordsNoah Lev-4/+4
2022-01-25delay the bug once again, generalize turbofish suggestionMichael Goulet-18/+12