Michael Goulet
91ac9cf595
suggest wrapping single-expr blocks in square brackets
2022-03-24 21:40:20 -07:00
Dylan DPC
0254928213
Rollup merge of #95212 - TaKO8Ki:replace-this-clone-with-this-create-snapshot-for-diagnostic, r=Dylan-DPC
...
Replace `this.clone()` with `this.create_snapshot_for_diagnostic()`
Use [`create_snapshot_for_diagnostic`](cd11905716/compiler/rustc_parse/src/parser/diagnostics.rs (L214-L223)
) I implemented in https://github.com/rust-lang/rust/pull/94731 instead of `this.clone()` to avoid duplicate errors about unclosed delims being emitted when the `Parser` is dropped.
2022-03-23 03:05:32 +01:00
bors
5f37001055
Auto merge of #95215 - Dylan-DPC:rollup-l9f9t7l, r=Dylan-DPC
...
Rollup of 5 pull requests
Successful merges:
- #95188 ([`macro-metavar-expr`] Fix generated tokens hygiene)
- #95196 (rename LocalState::Uninitialized to Unallocated)
- #95197 (Suggest constraining param for unary ops when missing trait impl)
- #95200 (Cancel a not emitted error after parsing const generic args)
- #95207 (update Termination trait docs)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-03-22 19:06:04 +00:00
Takayuki Maeda
b86a1d1c07
replace this.clone()
with this.create_snapshot_for_diagnostic()
2022-03-23 01:26:34 +09:00
bors
64137f0b15
Auto merge of #94693 - nnethercote:parser-inlining, r=petrochenkov
...
Inline some parser functions
Some crates that do a lot of complex declarative macro expansion spend a lot of time parsing (and reparsing) tokens. These commits inline some functions for some minor speed wins.
r? `@ghost`
2022-03-22 16:24:50 +00:00
Takayuki Maeda
62ded071d5
cancel a not emitted error after parsing const generic args
2022-03-22 16:06:56 +09:00
Nicholas Nethercote
f8f1d3f00b
Split TokenCursor::{next,next_desugared}
into inlined and non-inlined halves.
2022-03-22 11:05:54 +11:00
Nicholas Nethercote
4e700a023c
Split Parser::bump_with
into inlined and non-inlined halves.
...
The call site within `Parser::bump` is hot.
Also add an inline annotation to `Parser::next_tok`. It was already
being inlined by the compiler; this just makes sure that continues.
2022-03-22 11:01:53 +11:00
bors
051d1176b7
Auto merge of #95104 - compiler-errors:remove-ascription, r=davidtwco
...
suggest removing type ascription in bad parsing position
Not sure how to test this with the non-nightly suggestion. Didn't add a new UI test because it already manifests in an existing UI test.
Fixes #95014
2022-03-21 02:29:55 +00:00
Matthias Krüger
63da51db93
Rollup merge of #95135 - TaKO8Ki:fix-not-emitted-unmatched-angle-bracket-error, r=Dylan-DPC
...
Fix a not emitted unmatched angle bracket error
closes #95128
2022-03-20 20:42:45 +01:00
Takayuki Maeda
5c8aaedef6
fix a not emitted unmatched angle bracket error
2022-03-20 22:39:15 +09:00
Michael Goulet
3516a16eeb
suggest removing type ascription in bad position
2022-03-18 21:22:26 -07:00
Takayuki Maeda
201a86046c
use self.create_snapshot_for_diagnostic
instead of self.clone()
2022-03-18 16:56:43 +09:00
Dylan DPC
270a41c33e
Rollup merge of #94960 - codehorseman:master, r=oli-obk
...
Fix many spelling mistakes
Signed-off-by: codehorseman <cricis@yeah.net>
2022-03-17 22:55:05 +01:00
Dylan DPC
5eb3433ed5
Rollup merge of #94731 - TaKO8Ki:const-generic-expr-recovery, r=davidtwco,oli-obk
...
Suggest adding `{ .. }` around a const function call with arguments
closes #91020
2022-03-17 22:55:04 +01:00
Dylan DPC
7e1415ea80
Rollup merge of #93222 - mark-i-m:errorreported, r=oli-obk
...
Make ErrorReported impossible to construct outside `rustc_errors`
There are a few places were we have to construct it, though, and a few
places that are more invasive to change. To do this, we create a
constructor with a long obvious name.
cc #69426 `@varkor` `@eddyb` `@estebank`
I actually didn't see that I was assigned to this issue until now...
2022-03-17 22:55:00 +01:00
Dylan DPC
c8133f6f5e
Rollup merge of #91133 - terrarier2111:unsafe-diagnostic, r=jackh726
...
Improve `unsafe` diagnostic
This fixes: https://github.com/rust-lang/rust/issues/90880
I didn't use the exact proposed messages though.
2022-03-17 22:54:59 +01:00
mark
bb8d4307eb
rustc_error: make ErrorReported impossible to construct
...
There are a few places were we have to construct it, though, and a few
places that are more invasive to change. To do this, we create a
constructor with a long obvious name.
2022-03-16 10:35:24 -05:00
codehorseman
01dbfb3eb2
resolve the conflict in compiler/rustc_session/src/parse.rs
...
Signed-off-by: codehorseman <cricis@yeah.net>
2022-03-16 20:12:30 +08:00
Takayuki Maeda
896b113ec3
use format_args_capture
in some parts of rustc_parse
2022-03-15 19:17:29 +09:00
bors
95561b336c
Auto merge of #94584 - pnkfelix:inject-use-suggestion-sites, r=ekuber
...
More robust fallback for `use` suggestion
Our old way to suggest where to add `use`s would first look for pre-existing `use`s in the relevant crate/module, and if there are *no* uses, it would fallback on trying to use another item as the basis for the suggestion.
But this was fragile, as illustrated in issue #87613
This PR instead identifies span of the first token after any inner attributes, and uses *that* as the fallback for the `use` suggestion.
Fix #87613
2022-03-15 03:56:33 +00:00
bors
f103b2969b
Auto merge of #94865 - notriddle:notriddle/single-colon-path-not-const-generics, r=cjgillot
...
diagnostics: single colon within `<>` probably, not type ascription
Fixes #94812
2022-03-12 19:10:33 +00:00
Michael Howell
26e299a4a7
Use consistent prose for ::
...
Co-authored-by: Camille Gillot <gillot.camille@gmail.com>
2022-03-12 08:20:36 -07:00
Michael Howell
7e323370b3
diagnostics: single colon within <>
probably, not type ascription
...
Fixes #94812
2022-03-11 15:35:18 -07:00
Dylan DPC
298c9a0e14
Rollup merge of #94839 - TaKO8Ki:suggest-using-double-colon-for-struct-field-type, r=cjgillot
...
Suggest using double colon when a struct field type include single colon
#92685
2022-03-11 20:29:47 +01:00
Takayuki Maeda
813f00dd4f
fix a suggestion message
2022-03-11 21:26:06 +09:00
Takayuki Maeda
bdc3177868
suggest using double colon when using single colon in struct field type path
2022-03-11 16:15:57 +09:00
Takayuki Maeda
9a6532276e
replace self.clone()
with self.create_snapshot_for_diagnostic()
2022-03-10 22:11:00 +09:00
Takayuki Maeda
2db8236857
add doc comments
2022-03-10 19:34:42 +09:00
Takayuki Maeda
3ded25204b
implement SnapshotParser
struct
2022-03-09 23:13:04 +09:00
Takayuki Maeda
192acb4b98
take over unclosed_delims
2022-03-09 16:04:14 +09:00
Takayuki Maeda
3514741358
remove an unnecessary comment
2022-03-09 14:10:34 +09:00
Takayuki Maeda
a34015c0d0
implement and use diagnostic_snapshot
2022-03-09 13:48:40 +09:00
Takayuki Maeda
527b1f3c2f
initialize unclosed_delims field
2022-03-09 12:59:46 +09:00
Takayuki Maeda
529fd2da89
suggest adding { .. }
around a const function with arguments
2022-03-08 17:07:35 +09:00
Michael Howell
fbd4cfa0f8
diagnostics: only talk about Cargo.toml
if running under Cargo
...
Fixes #94646
2022-03-07 10:54:17 -07:00
bors
ad0d1d71d3
Auto merge of #90076 - jackh726:wherethewhere, r=nikomatsakis
...
Change location of where clause on GATs
Closes #89122
~Blocked on lang FCP~
r? `@nikomatsakis`
2022-03-06 07:22:09 +00:00
Jack Huey
c20b4f5584
Change syntax for TyAlias where clauses
2022-03-05 13:13:45 -05:00
Ralf Jung
e887e6647c
Rollup merge of #94633 - TaKO8Ki:suggest-removing-semicolon-after-derive-attribute, r=cjgillot
...
Suggest removing a semicolon after derive attributes
closes #93942
2022-03-05 12:53:16 -05:00
Takayuki Maeda
47d91bc9e6
suggest removing a semicolon after derive attributes
...
use current token span
2022-03-06 01:28:35 +09:00
Esteban Kuber
004f2ed219
Do not recover from Ty?
in macro parsing
...
Follow up to #92746 . Address #94510 .
2022-03-04 02:03:55 +00:00
Felix S. Klock II
d37da1e332
Adjusted diagnostic output so that if there is no use
in a item sequence,
...
then we just suggest the first legal position where you could inject a use.
To do this, I added `inject_use_span` field to `ModSpans`, and populate it in
parser (it is the span of the first token found after inner attributes, if any).
Then I rewrote the use-suggestion code to utilize it, and threw out some stuff
that is now unnecessary with this in place. (I think the result is easier to
understand.)
Then I added a test of issue 87613.
2022-03-03 18:58:37 -05:00
Felix S. Klock II
b82795244e
Associate multiple with a crate too.
2022-03-03 18:45:25 -05:00
Felix S. Klock II
e9035f7bef
refactor: prepare to associate multiple spans with a module.
2022-03-03 14:38:50 -05:00
mark
e489a94dee
rename ErrorReported -> ErrorGuaranteed
2022-03-02 09:45:25 -06:00
Matthias Krüger
5be38d2bb3
Rollup merge of #94445 - c410-f3r:more-let-chains, r=cjgillot
...
4 - Make more use of `let_chains`
Continuation of #94376 .
cc #53667
2022-02-28 20:05:17 +01:00
Esteban Kuber
f42b4f595e
Tweak diagnostics
...
* 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-28 18:22:45 +00:00
Caio
e3e902bb06
4 - Make more use of let_chains
...
Continuation of #94376 .
cc #53667
2022-02-28 07:49:56 -03:00
Michael Goulet
6b52ac240a
Suggest {} around more bad const generic exprs
2022-02-25 17:16:58 -08:00
Matthias Krüger
731cd3fbeb
Rollup merge of #94344 - notriddle:notriddle/suggest-parens-more, r=oli-obk
...
diagnostic: suggest parens when users want logical ops, but get closures
Fixes #93536
2022-02-25 14:14:40 +01:00