Commit graph

184 commits

Author SHA1 Message Date
Mazdak Farrokhzad
409b2bf941
Rollup merge of #66098 - estebank:path-asciption-typo, r=Centril
Detect `::` -> `:` typo when involving turbofish

Fix #65569.
2019-11-06 03:28:15 +01:00
Esteban Küber
a8ccbf5f2f Account for typo in turbofish and suggest :: 2019-11-05 10:29:54 -08:00
Esteban Küber
3bbfc7320b Detect :: -> : typo when involving turbofish 2019-11-04 16:19:55 -08:00
bors
f49f388713 Auto merge of #65838 - estebank:resilient-recovery, r=Centril
Reduce amount of errors given unclosed delimiter

When in a file with a non-terminated item, catch the error and consume
the block instead of trying to recover it on a more granular way in order to
reduce the amount of unrelated errors that would be fixed after adding
the missing closing brace. Also point out the possible location of the
missing closing brace.

Fix #63690.
2019-11-04 02:30:45 +00:00
Guillaume Gomez
5dfb167bf3 Create new error E0743 2019-10-31 10:39:38 +01:00
Esteban Küber
454e2aa8c9 Do not complain about missing fn main() in some cases 2019-10-30 12:05:26 -07:00
Esteban Küber
053a09529a Reduce ammount of errors given unclosed delimiter
When in a file with a non-terminated item, catch the error and consume
the block instead of trying to recover it more granularly in order to
reduce the amount of unrelated errors that would be fixed after adding
the missing closing brace. Also point out the possible location of the
missing closing brace.
2019-10-30 12:05:17 -07:00
Esteban Küber
e8016c2b13 review comments 2019-10-28 10:53:13 -07:00
Esteban Küber
1b0836df6f Tweak unexpected token wording 2019-10-28 10:53:13 -07:00
Esteban Küber
d673d0ac84 Use heuristics to recover parsing of missing ;
- Detect `,` and `:` typos where `;` was intended.
- When the next token could have been the start of a new statement,
  detect a missing semicolon.
2019-10-28 10:53:13 -07:00
Mazdak Farrokhzad
83260d5c43
Rollup merge of #65792 - Centril:split-syntax-2, r=petrochenkov
rustc, rustc_passes: reduce deps on rustc_expand

Part of #65324.

r? @petrochenkov
2019-10-28 04:53:07 +01:00
Mazdak Farrokhzad
16329402bf syntax/attr: reduce reliance on parser 2019-10-27 16:54:12 +01:00
Esteban Küber
93bb780e38 review comments and tweaks 2019-10-26 15:26:08 -07:00
Mazdak Farrokhzad
c0bbb4bcdc
Rollup merge of #65790 - Centril:move-report-invalid, r=davidtwco
move report_invalid_macro_expansion_item to item.rs

From https://github.com/rust-lang/rust/pull/65324.

r? @Mark-Simulacrum
2019-10-25 13:12:55 +02:00
Mazdak Farrokhzad
5ff7349ef7 move report_invalid_macro_expansion_item to item.rs 2019-10-25 05:26:36 +02:00
Mazdak Farrokhzad
15a6c09b6e pre-expansion gate type_ascription 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
e4ed886578 pre-expansion gate box_syntax 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
137ded8ab1 pre-expansion gate label_break_value 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
1935ba658c pre-expansion gate try_blocks 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
665a876e30 pre-expansion gate exclusive_range_pattern 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
2aff6b36d7 pre-expansion gate box_patterns 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
1f470ceac2 pre-expansion gate decl_macro 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
49cbfa1a6f pre-expansion gate const_generics 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
c17a1fd7d0 pre-expansion gate associated_type_bounds 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
2d182b82ce pre-expansion gate trait_alias. 2019-10-24 00:32:03 +02:00
Mazdak Farrokhzad
2e64bb2d37 syntax: reject trait Foo: Bar = Baz;.
Add test for rejecting `trait A: B1 = B2;`.
Also test rejection of `trait A: = B;`.
2019-10-24 00:31:11 +02:00
Yuki Okushi
5bac361776
Rollup merge of #65686 - yjhmelody:yjhmelody-patch-1, r=Centril
refactor and move `maybe_append`
2019-10-23 17:14:42 +09:00
yjhmelody
40f92b3b05 refactor maybe_append 2019-10-22 12:25:14 +08:00
Tyler Mandry
3850408b9b
Rollup merge of #65552 - JohnTitor:use-bitwise-not, r=Dylan-DPC
Clarify diagnostics when using `~` as a unary op

It seems we prefer `bitwise not` to `bitwise negation`.
Fixes #57239

r? @estebank
2019-10-18 13:48:38 -07:00
Yuki Okushi
9617014aa6 Clarify diagnostics when using ~ as a unary op 2019-10-18 18:15:16 +09:00
Nicholas Nethercote
212ae58f36 Change Lit::tokens() to Lit::token_tree().
Because most of the call sites have an easier time working with a
`TokenTree` instead of a `TokenStream`.
2019-10-18 13:25:17 +11:00
Mazdak Farrokhzad
1a26fdf9b2 ui-fulldeps: make them pass again? 2019-10-16 17:21:32 +02:00
Mazdak Farrokhzad
be40bbd2fb make tidy happy 2019-10-16 11:19:39 +02:00
Mazdak Farrokhzad
9dc07b05d5 parser: leave a FIXME for later 2019-10-16 10:59:54 +02:00
Mazdak Farrokhzad
bf02d49e84 move SeqSep to parser.rs 2019-10-16 10:59:54 +02:00
Mazdak Farrokhzad
d420d719c4 move syntax::ext to new crate syntax_expand 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
d160a4e422 syntax::parse: don't depend on syntax::ext 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
c189565edc syntax: reduce visibilities 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
98017ca53a move diagnostics.rs into parser/ 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
41bfe94d40 syntax: extract parse_cfg_attr 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
7d7969d065 syntax: extract parse_derive_paths 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
9dba03f6cd move parse::attr -> parse::parser::attr 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
79d02867b8 move parse_lit to expr.rs 2019-10-15 09:27:52 +02:00
Tyler Mandry
1b182371e1
Rollup merge of #65410 - Centril:intersection-pat-recover, r=davidtwco,varkor
syntax: add parser recovery for intersection- / and-patterns `p1 @ p2`

Fixes https://github.com/rust-lang/rust/issues/65400.

The recovery comes in two flavors:

1. We know that `p2` is a binding so we can invert as `p2 @ p1`:

```rust
error: pattern on wrong side of `@`
  --> $DIR/intersection-patterns.rs:13:9
   |
LL |         Some(x) @ y => {}
   |         -------^^^-
   |         |         |
   |         |         binding on the right, should be to the left
   |         pattern on the left, should be to the right
   |         help: switch the order: `y @ Some(x)`
```

2. Otherwise we emit a generic diagnostic for the lack of support for intersection patterns:

```rust
error: left-hand side of `@` must be a binding
  --> $DIR/intersection-patterns.rs:23:9
   |
LL |         Some(x) @ Some(y) => {}
   |         -------^^^-------
   |         |         |
   |         |         also a pattern
   |         interpreted as a pattern, not a binding
   |
   = note: bindings are `x`, `mut x`, `ref x`, and `ref mut x`
```

For more on and-patterns, see e.g. https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/pattern-matching#and-pattern.

r? @davidtwco
cc @varkor @lzutao
2019-10-14 17:52:42 -07:00
Mazdak Farrokhzad
3a9f8deb1d recover_intersection_pat: adjust wording 2019-10-14 18:02:49 +02:00
Mazdak Farrokhzad
72ad8f716b syntax: use PatKind::Wild as our ::Err equivalent. 2019-10-14 17:25:50 +02:00
Mazdak Farrokhzad
29fb07d245 syntax: add recovery for intersection patterns p1 @ p2 2019-10-14 17:08:13 +02:00
Mazdak Farrokhzad
2800bc240e
Rollup merge of #65363 - Centril:less-pprust, r=Mark-Simulacrum
Remove implicit dependencies on syntax::pprust

Part of https://github.com/rust-lang/rust/pull/65324.

The main goal here is to facilitate the eventual move of pprust out from libsyntax and because an AST definition typically should not depend on its pretty printer.

r? @estebank
2019-10-14 07:36:57 +02:00
Mazdak Farrokhzad
4a0c487d1b syntax: consolidate function parsing in item.rs 2019-10-13 14:32:12 +02:00
Mazdak Farrokhzad
742ec4b9bf ast: remove implicit pprust dependency via Display.
Instead just use `pprust::path_to_string(..)` where needed.

This has two benefits:

a) The AST definition is now independent of printing it.
   (Therefore we get closer to extracting a data-crate.)

b) Debugging should be easier as program flow is clearer.
2019-10-13 06:58:51 +02:00