Commit graph

557 commits

Author SHA1 Message Date
Esteban Küber
04298204ed Suggest struct pat on incorrect unit or tuple pat
When encountering a unit or tuple pattern for a struct-like item, suggest
using the correct pattern.

Use `insert_field_names_local` when evaluating variants and store field
names even when the list is empty in order to produce accurate
structured suggestions.
2020-07-14 10:41:44 -07:00
Manish Goregaokar
ec1e7e9dbc
Rollup merge of #71322 - petrochenkov:tuple00, r=nikomatsakis
Accept tuple.0.0 as tuple indexing (take 2)

If we expect something identifier-like when parsing a field name after `.`, but encounter a float token, we break that float token into parts, similarly to how we break `&&` into `&` `&`, or `<<` into `<` `<`, etc.

An alternative to https://github.com/rust-lang/rust/pull/70420.
2020-07-10 23:26:22 -07:00
Manish Goregaokar
9353e21bfd
Rollup merge of #74188 - estebank:tweak-ascription-typo-heuristic, r=petrochenkov
Tweak `::` -> `:` typo heuristic and reduce verbosity

Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.

Clean up indentation.

r? @petrochenkov
2020-07-09 11:50:50 -07:00
Esteban Küber
e771a4f989 Tweak :: -> : typo heuristic and reduce verbosity
Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.
2020-07-09 09:09:25 -07:00
Manish Goregaokar
e74ab50d07
Rollup merge of #73953 - JohnTitor:audit-hidden-sugg, r=estebank
Audit hidden/short code suggestions

Should fix #73641.
Audit uses of `span_suggestion_short` and `tool_only_span_suggestion` (`span_suggestion_hidden` is already tested with `run-rustfix`). Leave some FIXMEs for futher improvements/fixes.
r? @estebank
2020-07-06 17:45:22 -07:00
Guillaume Gomez
6970c923d3 Update UI tests 2020-07-04 00:15:32 +02:00
Vadim Petrochenkov
52bdaaa0ed Add some requested tests 2020-07-02 21:05:18 +03:00
Vadim Petrochenkov
8e256b19d5 parser: Break float tokens into parts in tuple field positions 2020-07-02 20:35:49 +03:00
Yuki Okushi
84282fd6f1
Audit uses of tool_only_span_suggestion 2020-07-02 15:18:33 +09:00
Yuki Okushi
ec31b4e3a8
Audit uses of span_suggestion_short 2020-07-02 15:18:33 +09:00
Manish Goregaokar
5d429f3847
Rollup merge of #73803 - Aaron1011:feature/angle-field-recovery, r=matthewjasper
Recover extra trailing angle brackets in struct definition

This commit applies the existing 'extra angle bracket recovery' logic
when parsing fields in struct definitions. This allows us to continue
parsing the struct's fields, avoiding spurious 'missing field' errors in
code that tries to use the struct.
2020-07-01 20:35:50 -07:00
Manish Goregaokar
db900d4ef3
Rollup merge of #73828 - nop:fix/parameter-name-help, r=estebank
Fix wording for anonymous parameter name help

```
 --> exercises/functions/functions2.rs:8:15
  |
8 | fn call_me(num) {
  |               ^ expected one of `:`, `@`, or `|`
  |
  = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
help: if this is a `self` type, give it a parameter name
  |
8 | fn call_me(self: num) {
  |            ^^^^^^^^^
help: if this was a parameter name, give it a type
  |
8 | fn call_me(num: TypeName) {
  |            ^^^^^^^^^^^^^
help: if this is a type, explicitly ignore the parameter name
  |
8 | fn call_me(_: num) {
  |
```
This commit changes "if this was a parameter name" to "if this is a parameter name" to match the wording of similar errors.
2020-07-01 07:42:58 -07:00
James Box
7231e57546 Fix wording for anonymous parameter name help 2020-06-27 22:55:42 -05:00
jumbatm
c72a5dd9d3 Rename the lint to clashing_extern_declarations.
Also, run RustFmt on the clashing_extern_fn test case and update
stderrs.
2020-06-28 10:11:29 +10:00
Aaron Hill
765bd47fa0
Recover extra trailing angle brackets in struct definition
This commit applies the existing 'extra angle bracket recovery' logic
when parsing fields in struct definitions. This allows us to continue
parsing the struct's fields, avoiding spurious 'missing field' errors in
code that tries to use the struct.
2020-06-27 11:53:42 -04:00
Vadim Petrochenkov
7b2064f4f9 rustc_lexer: Simplify shebang parsing once more 2020-06-26 19:52:19 +03:00
Manish Goregaokar
0d03456163
Rollup merge of #73581 - GuillaumeGomez:add-0766, r=varkor
Create 0766 error code
2020-06-25 18:00:14 -07:00
Manish Goregaokar
23c9ac6b73
Rollup merge of #72770 - crlf0710:mixed_script_confusable, r=Manishearth
Implement mixed script confusable lint.

This implements the mixed script confusable lint defined in RFC 2457.
This is blocked on #72069 and https://github.com/unicode-rs/unicode-security/pull/13, and will need a Cargo.toml version bump after those are resolved.

The lint message warning is sub-optimal for now. We'll need a mechanism to properly output  `AugmentScriptSet` to screen, this is to be added in `unicode-security` crate.

r? @Manishearth
2020-06-25 18:00:05 -07:00
Guillaume Gomez
33302fa7d2 Update UI test 2020-06-25 13:28:45 +02:00
Charles Lew
ef24faf130 Refactor non_ascii_idents lints, exclude ascii pair for confusable_idents lint. 2020-06-23 00:06:14 +08:00
Guillaume Gomez
c14d85fd33 Update UI tests 2020-06-21 16:40:36 +02:00
jumbatm
556b7baca2 Update existing test cases.
- Allow ClashingExternDecl for lint-dead-code-3
- Update test case for #5791
- Update test case for #1866
- Update extern-abi-from-macro test case
2020-06-20 16:54:32 +10:00
Manish Goregaokar
203305d095
Rollup merge of #71420 - RalfJung:specialization-incomplete, r=matthewjasper
Specialization is unsound

As discussed in https://github.com/rust-lang/rust/issues/31844#issuecomment-617013949, it might be a good idea to warn users of specialization that the feature they are using is unsound.

I also expanded the "incomplete feature" warning to link the user to the tracking issue.
2020-06-19 19:42:43 -07:00
Ralf Jung
45aa36bae5
Rollup merge of #73280 - GuillaumeGomez:add-e0763, r=petrochenkov
Add E0763
2020-06-19 14:29:29 +02:00
Manish Goregaokar
39f8784eb6
Rollup merge of #71976 - mibac138:let-recovery, r=estebank
Improve diagnostics for `let x += 1`

Fixes(?) #66736

The code responsible for the `E0404` errors is [here](https://github.com/rust-lang/rust/blob/master/src/librustc_parse/parser/ty.rs#L399-L424) which I don't think can be easily modified to prevent emitting an error in one specific case. Because of this I couldn't get rid of `E0404` and instead added `E0067` along with a help message which will fix the problem.

r? @estebank
2020-06-18 15:20:36 -07:00
Guillaume Gomez
bad252c9fa Update ui tests 2020-06-16 14:13:16 +02:00
Ralf Jung
991dfe7595 bless all 2020-06-16 11:56:54 +02:00
Ralf Jung
5fbef22a44 warn against 'specialization' feature 2020-06-16 09:39:34 +02:00
bors
e91bf6c881 Auto merge of #69478 - avr-rust:avr-support-upstream, r=jonas-schievink
Enable AVR as a Tier 3 target upstream

Tracking issue: #44052.

Things intentionally left out of the initial upstream:

* The `target_cpu` flag

I have made the cleanup suggestions by @jplatte and @jplatte in 043550d9db.

Anybody feel free to give the branch a test and see how it fares, or make suggestions on the code patch itself.
2020-06-12 01:28:37 +00:00
Guillaume Gomez
7bd87cfac2 Add tests for E0762 2020-06-10 11:55:50 +02:00
Dylan McKay
13edc57bfa [AVR] Add required references for AVR to the parser test suites 2020-06-09 17:35:48 +12:00
Jake Goulding
ae3586c9b7 Order the Rust and C ABIs first to reduce test churn 2020-06-06 22:36:21 -04:00
Vadim Petrochenkov
21755b58c9 rustc_lexer: Optimize shebang detection slightly 2020-05-29 22:55:58 +03:00
Russell Cohen
a93d31603f Fix bug in shebang handling
Shebang handling was too agressive in stripping out the first line in cases where it is actually _not_ a shebang, but instead, valid rust (#70528). This is a second attempt at resolving this issue (the first attempt was flawed, for, among other reasons, causing an ICE in certain cases (#71372, #71471).

The behavior is now codified by a number of UI tests, but simply:
For the first line to be a shebang, the following must all be true:
1. The line must start with `#!`
2. The line must contain a non whitespace character after `#!`
3. The next character in the file, ignoring comments & whitespace must not be `[`

I believe this is a strict superset of what we used to allow, so perhaps a crater run is unnecessary, but probably not a terrible idea.
2020-05-25 10:11:08 -04:00
mibac138
98532a3090 Adjust according to petrochenkov's review comments 2020-05-21 20:08:26 +02:00
mibac138
6ad24baf06 Adjust according to estebank's review comments 2020-05-20 22:18:19 +02:00
mibac138
05d6531998 Error recovery for let with += 2020-05-20 20:42:11 +02:00
mibac138
48ff12acb1 Expand partial error recovery for let with BinOpEq 2020-05-20 20:42:09 +02:00
mibac138
d4fe9553f6 Implement partial error recovery for let with BinOpEq
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-20 20:42:07 +02:00
Ralf Jung
12112f4d7d
Rollup merge of #72254 - ehuss:double-backtick, r=dtolnay
Remove redundant backtick in error message.

The value passed in already has backticks surrounding the text.
2020-05-16 19:46:37 +02:00
Eric Huss
004f4f389e Remove redundant backtick in error message.
The value passed in already has backticks surrounding the text.
2020-05-15 20:51:12 -07:00
Ralf Jung
6a8cf4a17c adjust tests 2020-05-09 14:40:17 +02:00
Andy Russell
9f88d75710
reword "possible candidate" import suggestion 2020-05-07 00:33:25 -04:00
Val Markovic
2155adbc3a Moving more build-pass tests to check-pass
One or two tests became build-pass without the FIXME because they really
needed build-pass (were failing without it).

Helps with #62277
2020-04-23 20:21:38 -07:00
Dylan DPC
1d3d80f773
Rollup merge of #70633 - kper:master, r=estebank
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-23 20:34:57 +02:00
Guillaume Gomez
038f5b7433 Update UI tests 2020-04-22 11:09:57 +02:00
Esteban Küber
f47c4ffdfa Do not ICE in the face of invalid enum discriminant 2020-04-15 10:22:51 -07:00
RoccoDev
b85c64c3ea
rustc: Add a warning count upon completion 2020-04-11 16:15:24 +02:00
Mazdak Farrokhzad
eea91c308f
Rollup merge of #70519 - estebank:constraints-before-args-spans, r=Centril
Tweak output of type params and constraints in the wrong order

r? @Centril @varkor
2020-04-06 04:24:15 +02:00
Kevin Per
2c6f84668e Drop this in error message to not reach 100 characters 2020-04-04 08:03:54 +00:00