Commit graph

60 commits

Author SHA1 Message Date
Urgau
5ae73634dc Stabilize half_open_range_patterns 2022-10-08 11:00:13 +02:00
Rageking8
2ee2ffa9a7 improve E0585 help 2022-09-29 00:34:31 +08:00
Takayuki Maeda
5d05908c70 fix a ui test 2022-09-27 10:28:53 +09:00
Takayuki Maeda
4f44dee501 add a label to struct/enum/union ident name 2022-09-27 10:28:50 +09:00
fee1-dead
0adf293f87
Rollup merge of #102143 - Rageking8:fix-101540, r=TaKO8Ki
Recover from struct nested in struct

Fixes #101540

r? `@TaKO8Ki`

Not sure If I have done it right.
2022-09-26 13:09:41 +08:00
khyperia
9a206a78eb Improve the help message for an invalid calling convention 2022-09-22 22:18:30 +02:00
Rageking8
c66c2e82c1
Fix slight issues with stderr 2022-09-23 00:24:30 +08:00
Rageking8
f4170b38c8
Change UI test stderr 2022-09-23 00:02:50 +08:00
Rageking8
a1062b9bdc
recover from struct nested in struct 2022-09-22 23:41:38 +08:00
lcnr
5db6907498 review 2022-09-09 14:28:57 +02:00
lcnr
4c75b32e99 merge tests 2022-09-08 16:50:44 +02:00
lcnr
dcf30047de update ui tests 2022-09-08 16:50:44 +02:00
Michael Goulet
c005e760f5 Rework point-at-arg 2022-08-21 02:34:52 +00:00
Dylan DPC
e7ed8443ea
Rollup merge of #100168 - WaffleLapkin:improve_diagnostics_for_missing_type_in_a_const_item, r=compiler-errors
Improve diagnostics for `const a: = expr;`

Adds a suggestion to write a type when there is a colon, but the type is not present.
I've also shrunk spans a little, so the suggestions are a little nicer.

Resolves #100146

r? `@compiler-errors`
2022-08-05 21:54:37 +05:30
Maybe Waffle
743ad07c4b Improve diagnostics for const a: = expr; 2022-08-05 16:19:28 +04:00
bors
9bbbf60b04 Auto merge of #95977 - FabianWolff:issue-92790-dead-tuple, r=estebank
Warn about dead tuple struct fields

Continuation of #92972. Fixes #92790.

The language team has already commented on this in https://github.com/rust-lang/rust/pull/92972#issuecomment-1021511970; I have incorporated their requests here. Specifically, there is now a new allow-by-default `unused_tuple_struct_fields` lint (name bikesheddable), and fields of unit type are ignored (https://github.com/rust-lang/rust/pull/92972#issuecomment-1021815408), so error messages look like this:
```
error: field is never read: `1`
  --> $DIR/tuple-struct-field.rs:6:21
   |
LL | struct Wrapper(i32, [u8; LEN], String);
   |                     ^^^^^^^^^
   |
help: change the field to unit type to suppress this warning while preserving the field numbering
   |
LL | struct Wrapper(i32, (), String);
   |                     ~~
```
r? `@joshtriplett`
2022-08-05 09:32:26 +00:00
Matthias Krüger
f6ea143f93
Rollup merge of #98796 - compiler-errors:no-semi-if-comma, r=estebank
Do not exclusively suggest `;` when `,` is also a choice

Fixes #96791
2022-08-04 22:24:59 +02:00
Fabian Wolff
e3c7e04a44 Warn about dead tuple struct fields 2022-08-03 12:17:23 +02:00
Michael Goulet
7cdd937bb8 dont call type ascription 'cast' 2022-07-29 07:02:52 +00:00
Michael Goulet
9d5c74e16a Do not suggest adding ; when , is also a choice 2022-07-23 17:52:45 +00:00
Michael Goulet
b0a81904ce Suggest returning binding from block or enclosing scope on coerce_forced_unit error 2022-07-20 03:58:33 +00:00
Michael Howell
6713dde898 diagnostics: suggest naming a field after failing to parse 2022-07-07 15:20:08 -07:00
Michael Howell
d496a4f8bb diagnostics: mention the : token when struct fields fail to parse 2022-07-07 14:59:54 -07:00
klensy
989d1a732f fix one more case of trailing space 2022-06-16 14:40:29 +03:00
klensy
0ff8ae3111 diagnostics: fix trailing space 2022-06-16 14:40:28 +03:00
Michael Goulet
d1ba2d25d4 Improve parsing errors and suggestions for bad if statements 2022-06-13 20:53:48 -07:00
Yuki Okushi
e3a3c00be8
Rollup merge of #95211 - terrarier2111:improve-parser, r=compiler-errors
Improve parser diagnostics

This pr fixes https://github.com/rust-lang/rust/issues/93867 and contains a couple of diagnostics related changes to the parser.
Here is a short list with some of the changes:
- don't suggest the same thing that is the current token
- suggest removing the current token if the following token is one of the suggestions (maybe incorrect)
- tell the user to put a type or lifetime after where if there is none (as a warning)
- reduce the amount of tokens suggested (via the new eat_noexpect and check_noexpect methods)

If any of these changes are undesirable, i can remove them, thanks!
2022-06-14 07:47:22 +09:00
threadexception
21fdd549f6 Improves parser diagnostics, fixes #93867 2022-06-12 17:48:52 +02:00
bors
91cacb3faf Auto merge of #97512 - scottmcm:add-coldcc, r=nagisa,lcnr
Add support for emitting functions with `coldcc` to LLVM

The eventual goal is to try using this for things like the internal panicking stuff, to see whether it helps.
2022-06-07 08:12:45 +00:00
Jack Huey
410dcc9674 Fully stabilize NLL 2022-06-03 17:16:41 -04:00
lcnr
3fe346e7a3 add new emit_inference_failure_err 2022-06-02 10:19:15 +02:00
SparrowLii
0be2ca96fa Optimize the diagnostic generation for extern unsafe 2022-05-30 15:56:43 +08:00
Scott McMurray
055cfaf10d Bless tests with the full list of conventions in the output 2022-05-30 00:19:23 -07:00
est31
3989f02301 Allow unused rules in the testsuite where the lint triggers 2022-05-05 19:13:00 +02:00
Ken Matsui
6c7f4dee8f
Fix invalid keyword order for function declarations 2022-05-02 18:14:43 +09:00
León Orell Valerian Liehr
5ab0548500 Stop flagging certain inner attrs as outer ones 2022-04-06 19:54:05 +02:00
Esteban Kuber
6874bd27f5 Provide suggestion for missing > in a type parameter list
When encountering an inproperly terminated type parameter list, provide
a suggestion to close it after the last non-constraint type parameter
that was successfully parsed.

Fix #94058.
2022-03-27 02:50:04 +00:00
Michael Howell
3729b17b7e diagnostics: do not suggest fn foo({ <body> }
Instead of suggesting that the body always replace the last character on the
line, presuming it must be a semicolon, the parser should instead check what
the last character is, and append the body if it is anything else.

Fixes #83104
2022-03-22 15:29:07 -07:00
Michael Goulet
3516a16eeb suggest removing type ascription in bad position 2022-03-18 21:22:26 -07: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
David Tolnay
af53809c87
Format core and std macro rules, removing needless surrounding blocks 2022-03-11 15:26:51 -08:00
Esteban Kuber
91f3603299 Do not point at whole file missing fn main
Only point at the end of the crate. We could try making it point at the
beginning of the crate, but that is confused with `DUMMY_SP`, causing
the output to be *worse*.

This change will make it so that VSCode will *not* underline the whole
file when `main` is missing, so other errors will be visible.
2022-03-05 02:42:55 +00: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
Matthias Krüger
602898a305
Rollup merge of #93595 - compiler-errors:ice-on-lifetime-arg, r=jackh726
fix ICE when parsing lifetime as function argument

I don't really like this, but we basically need to emit an error instead of just delaying an bug, because there are too many places in the AST that aren't covered by my previous PRs...

cc: https://github.com/rust-lang/rust/issues/93282#issuecomment-1028052945
2022-02-12 09:26:21 +01:00
Amanieu d'Antras
547b4e601e Add more *-unwind ABI variants
The following *-unwind ABIs are now supported:
- "C-unwind"
- "cdecl-unwind"
- "stdcall-unwind"
- "fastcall-unwind"
- "vectorcall-unwind"
- "thiscall-unwind"
- "aapcs-unwind"
- "win64-unwind"
- "sysv64-unwind"
- "system-unwind"
2022-02-02 22:21:24 +01:00
Michael Goulet
b79fc92db3 fix ICE when parsing lifetime as function argument 2022-02-02 10:33:13 -08:00
Noah Lev
c8198a608e Improve suggestion for escaping reserved keywords 2022-01-27 14:53:39 -08:00
Michael Goulet
37bed05986 delay the bug once again, generalize turbofish suggestion 2022-01-25 11:11:13 -08:00
Michael Goulet
a090bb1dea Remove delayed bug when encountering label in bad turbofish 2022-01-25 10:47:10 -08:00
Esteban Kuber
cfc0bd1258 Parse Ty? as Option<Ty> and provide structured suggestion
Swift has specific syntax that desugars to `Option<T>` similar to our
`?` operator, which means that people might try to use it in Rust. Parse
it and gracefully recover.
2022-01-14 00:07:23 +00:00