Mazdak Farrokhzad
4625ba4872
simplify 'let question = ...;'
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
f215ca9be6
simplify negative bound diagnostic
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
4b073a1f4a
extract parse_generic_lt_bound
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
50e00c73ee
extract parse_generic_ty_bound
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
1cfeb56773
parse_generic_bound: leave a FIXME
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
18e5b2f98c
functionalize parse_generic_bound
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
8a9a992a64
extract parse_generic_bound
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
fd89104966
extract can_begin_bound
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
e61cb44f2f
parse_generic_bounds_common: dedent
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
a11252ae26
extract recover_paren_lifetime
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
b484faefab
extract error_opt_out_lifetime
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
3f499a97e4
parser/ty.rs: minor formatting tweaks
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
3b1fab8c1f
parse_ty_common: .fatal -> .struct_span_err
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
6f1f6a6c33
extract error_illegal_c_variadic_ty
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
85d3ed9c90
extract parse_path_start_ty
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
b7071f2bc0
extract parse_dyn_ty
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
edb7b96c84
extract parse_impl_ty
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
e08886d251
extract parse_typeof_ty
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
211560d05c
extract parse_array_or_slice_ty
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
3838b602f5
parse_ptr -> parse_ty_ptr & refactor
2019-12-21 18:34:00 +01:00
Mazdak Farrokhzad
c67c30dba6
refactor parse_ty_tuple_or_parens
2019-12-21 18:34:00 +01:00
Mazdak Farrokhzad
f3ef4a416d
extract parse_ty_tuple_or_parens
2019-12-21 18:34:00 +01:00
bors
c64eecf4d0
Auto merge of #66994 - Centril:stmt-polish, r=estebank
...
refactor expr & stmt parsing + improve recovery
Summary of important changes (best read commit-by-commit, ignoring whitespace changes):
- `AttrVec` is introduces as an alias for `ThinVec<Attribute>`
- `parse_expr_bottom` and `parse_stmt` are thoroughly refactored.
- Extract diagnostics logic for `vec![...]` in a pattern context.
- Recovery is added for `do catch { ... }`
- Recovery is added for `'label: non_block_expr`
- Recovery is added for `var $local`, `auto $local`, and `mut $local`. Fixes #65257 .
- Recovery is added for `e1 and e2` and `e1 or e2`.
- ~~`macro_legacy_warnings` is turned into an error (has been a warning for 3 years!)~~
- Fixes #63396 by forward-porting #64105 which now works thanks to added recovery.
- `ui-fulldeps/ast_stmt_expr_attr.rs` is turned into UI and pretty tests.
- Recovery is fixed for `#[attr] if expr {}`
r? @estebank
2019-12-21 11:05:03 +00:00
bors
9ff30a7810
Auto merge of #67464 - Centril:rollup-j3mkl1m, r=Centril
...
Rollup of 6 pull requests
Successful merges:
- #67130 (Const prop should finish propagation into user defined variables)
- #67163 (Split up ptr/mod.rs in libcore...)
- #67314 (Don't suppress move errors for union fields)
- #67392 (Fix unresolved type span inside async object)
- #67404 (Separate region inference logic from error handling better)
- #67428 (`is_binding_pat`: use explicit match & include or-pats in grammar)
Failed merges:
r? @ghost
2019-12-21 01:02:54 +00:00
Mazdak Farrokhzad
621661f8a6
tweak var/auto/mut recovery
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
49826845a9
use .span_suggestion_short for &&
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
19db2d2fed
ast_stmt_expr_attr -> pretty & ui tests
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
9b53c5be06
fix bug in parse_tuple_parens_expr + related refactoring
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
66470d3217
recover #[attr] if expr {}
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
c9e1f13f6e
recover on 'mut', 'var', 'auto'
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
a0d20935cc
introduce 'type AttrVec'
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
3d5dbcb44a
simplify parse_bottom_expr more
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
948ff674f9
use mk_expr_err more
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
4311a4d7f9
extract parse_lit_expr and simplify
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
e9a4d94c44
extract parse_break_expr
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
a3c0ef1a8b
refactor parse_incorrect_await_syntax
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
2f9b191886
extract parse_{expr_opt, return_expr, yield_expr}
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
327641e35c
recover on 'do catch { .. }'
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
32ac9d0e45
pass attr as param in new methods
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
4e01b70964
add recovery to parse_labeled_expr
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
3ed5ba7fa8
extract parse_labeled_expr
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
5f0f86b6ca
extract parse_path_start_expr
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
cb985ba60f
extract parse_array_or_repeat_expr
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
9cb2b08a5d
extract parse_tuple_parens_expr
2019-12-20 22:41:29 +01:00
A C
0c32ee1781
Clean up parse_bottom_expr
2019-12-20 22:41:29 +01:00
A C
0b7908c550
Add a UI test for correct parsing
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
dd15904a4d
parse_bottom_expr: use else if
2019-12-20 22:41:29 +01:00
Mazdak Farrokhzad
52acaa6974
implement recovery in check_assoc_op
2019-12-20 22:41:28 +01:00
Mazdak Farrokhzad
903c9dfd18
extract should_continue_as_assoc_expr
2019-12-20 22:41:28 +01:00
Mazdak Farrokhzad
be463cbc2b
extract: error_block_no_opening_brace
2019-12-20 22:41:28 +01:00