about summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2019-08-15Remove `Spanned` from `{ast,hir}::FieldPat`Vadim Petrochenkov-28/+20
2019-08-15Remove `Spanned` from `ast::Mac`Vadim Petrochenkov-42/+47
2019-08-15Remove `Spanned` from `mk_name_value_item_str` and `expr_to_spanned_string`Vadim Petrochenkov-16/+18
2019-08-14Rollup merge of #63543 - c410-f3r:variant, r=c410-f3rMazdak Farrokhzad-32/+33
Merge Variant and Variant_ Extracted from #63468.
2019-08-14Rollup merge of #63542 - c410-f3r:node_ids, r=petrochenkovMazdak Farrokhzad-3/+18
Add NodeId for Arm, Field and FieldPat Extracted from #63468
2019-08-14Rollup merge of #63537 - petrochenkov:novisit, r=alexcrichtonMazdak Farrokhzad-19/+13
expand: Unimplement `MutVisitor` on `MacroExpander` Each call to `fully_expand_fragment` is something unique, interesting, and requiring attention. It represents a "root" of expansion and its use means that something unusual is happening, like eager expansion or expansion performed outside of the primary expansion pass. So, it shouldn't hide under a generic visitor call. Also, from all the implemented visitor methods only two were actually used. cc https://github.com/rust-lang/rust/pull/63468#discussion_r313504119
2019-08-14Rollup merge of #63528 - petrochenkov:anyany, r=estebankMazdak Farrokhzad-33/+6
syntax: Remove `DummyResult::expr_only` The effect is that if a built-in macro both returns an erroneous AST fragment and is used in unexpected position, then the incorrect position error won't be reported. This combination of two errors should be rare and isn't worth an extra field that makes people ask questions in comments. (There wasn't even a test making sure it worked.) Addresses https://github.com/rust-lang/rust/pull/63468#discussion_r313504644 r? @estebank
2019-08-14Rollup merge of #63490 - Centril:cleanup-pat-parser, r=petrochenkovMazdak Farrokhzad-190/+235
libsyntax: cleanup and refactor `pat.rs` A smaller refactoring & cleanup of `pat.rs` (best read commit by commit). r? @petrochenkov
2019-08-14Rollup merge of #62984 - nathanwhit:extra_semi_lint, r=varkorMazdak Farrokhzad-1/+16
Add lint for excess trailing semicolons Closes #60876. A caveat (not necessarily a negative, but something to consider) with this implementation is that excess semicolons after return/continue/break now also cause an 'unreachable statement' warning. For the following example: ``` fn main() { extra_semis(); } fn extra_semis() -> i32 { let mut sum = 0;;; for i in 0..10 { if i == 5 { continue;; } else if i == 9 { break;; } else { sum += i;; } } return sum;; } ``` The output is: ``` warning: unnecessary trailing semicolons --> src/main.rs:5:21 | 5 | let mut sum = 0;;; | ^^ help: remove these semicolons | = note: `#[warn(redundant_semicolon)]` on by default warning: unnecessary trailing semicolon --> src/main.rs:8:22 | 8 | continue;; | ^ help: remove this semicolon warning: unnecessary trailing semicolon --> src/main.rs:10:19 | 10 | break;; | ^ help: remove this semicolon warning: unnecessary trailing semicolon --> src/main.rs:12:22 | 12 | sum += i;; | ^ help: remove this semicolon warning: unnecessary trailing semicolon --> src/main.rs:15:16 | 15 | return sum;; | ^ help: remove this semicolon warning: unreachable statement --> src/main.rs:8:22 | 8 | continue;; | ^ | = note: `#[warn(unreachable_code)]` on by default warning: unreachable statement --> src/main.rs:10:19 | 10 | break;; | ^ warning: unreachable statement --> src/main.rs:15:16 | 15 | return sum;; | ^ ```
2019-08-14Merge Variant and Variant_Caio-32/+33
2019-08-14Rollup merge of #63530 - ehuss:typo-statemement, r=centrilMazdak Farrokhzad-1/+1
Fix typo in error message.
2019-08-14Rollup merge of #63508 - estebank:compromice, r=petrochenkovMazdak Farrokhzad-6/+9
Do not ICE when synthesizing spans falling inside unicode chars Fix https://github.com/rust-lang/rust/issues/61226.
2019-08-14Rollup merge of #63475 - iluuu1994:issue-62632, r=CentrilMazdak Farrokhzad-0/+19
Bring back suggestion for splitting `<-` into `< -` Closes #62632
2019-08-14Rollup merge of #63459 - eddyb:issue-63430, r=petrochenkovMazdak Farrokhzad-1/+1
syntax: account for CVarArgs being in the argument list. Fixes #63430 by testing for `1` argument (the `CVarArgs` itself) instead of `0`. Note that the error has basically been impossible to trigger since the change that caused #63430, so perhaps we need an audit of untested errors. Also, this check probably belongs in AST validation/HIR lowering, but I'd rather fix it in place for now. r? @petrochenkov cc @dlrobertson
2019-08-13Add NodeId for Arm, Field and FieldPatCaio-3/+18
2019-08-14expand: Unimplement `MutVisitor` on `MacroExpander`Vadim Petrochenkov-17/+11
Each call to `fully_expand_fragment` is something unique, interesting, and requiring attention. It represents a "root" of expansion and its use means that something unusual is happening, like eager expansion or expansion performed outside of the primary expansion pass. So, it shouldn't be hide under a generic visitor call. Also, from all the implemented visitor methods only two were actually used.
2019-08-14expand: `expand_fragment` -> `fully_expand_fragment`Vadim Petrochenkov-6/+6
2019-08-13Apply Centril's suggestionEric Huss-1/+1
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-08-13review commentsEsteban Küber-12/+9
2019-08-13Fix typo in error message.Eric Huss-1/+1
2019-08-13syntax: Remove `DummyResult::expn_only`Vadim Petrochenkov-33/+6
2019-08-12Do not ICE when synthesizing spans falling inside unicode charsEsteban Küber-0/+6
2019-08-12Parse excess semicolons as empty stmts for lintingnathanwhit-1/+16
2019-08-12syntax: account for CVarArgs being in the argument list.Eduard-Mihai Burtescu-1/+1
2019-08-12extract parse_pat_{tuple_}struct + recover_one_fewer_dotdotMazdak Farrokhzad-39/+51
2019-08-12extract fatal_unexpected_non_patMazdak Farrokhzad-16/+22
2019-08-12parser/pat: minor misc cleanupMazdak Farrokhzad-13/+15
2019-08-12extract parse_pat_range_starting_with_litMazdak Farrokhzad-20/+21
2019-08-12extract parse_pat_range_starting_with_pathMazdak Farrokhzad-15/+25
2019-08-12extract parse_pat_mac_invocMazdak Farrokhzad-14/+17
2019-08-12extract ban_pat_range_if_ambiguousMazdak Farrokhzad-20/+25
2019-08-12extract recover_pat_ident_mut_firstMazdak Farrokhzad-16/+20
2019-08-12Rollup merge of #63449 - petrochenkov:builtinagain, r=eddybMazdak Farrokhzad-3/+3
resolve: Remove remaining special cases from built-in macros Edition and definition sites of the macros are now also taken from the `#[rustc_builtin_macro]` definitions in `libcore`. --- The edition switch may be a breaking change for `Rustc{Encodable,Decodable}` derives if they are used in combination with the unstable crate `serialize` from sysroot like this ```rust extern crate serialize; use serialize as rustc_serialize; #[derive(RustcEncodable)] struct S; ``` (see the updated `ui-fulldeps` tests).
2019-08-12Bring back suggestion for splitting `<-` into `< -`Ilija Tovilo-0/+19
Closes #62632
2019-08-12extract parse_pat_tuple_or_parensMazdak Farrokhzad-12/+14
2019-08-12extract parse_pat_derefMazdak Farrokhzad-12/+16
2019-08-12parse_pat_with_range_pat: remove unnecessary assignments.Mazdak Farrokhzad-29/+25
2019-08-11parser: {check,expect}_lifetime into ty.rsMazdak Farrokhzad-19/+19
2019-08-11parser: move into generics.rsMazdak Farrokhzad-272/+278
2019-08-11parser: move into stmt.rsMazdak Farrokhzad-464/+477
2019-08-11parser: move parse_fn_block_decl into expr.rsMazdak Farrokhzad-60/+56
2019-08-11parser: move parse_ident_or_underscore into item.rsMazdak Farrokhzad-11/+11
2019-08-11parser: split into {ty, path}.rsMazdak Farrokhzad-899/+930
2019-08-11parser: split into {item,module}.rsMazdak Farrokhzad-2218/+2251
2019-08-11parser: split into pat.rsMazdak Farrokhzad-633/+642
2019-08-11parser: split into expr.rsMazdak Farrokhzad-1667/+1712
2019-08-10resolve: Remove remaining special cases from built-in macrosVadim Petrochenkov-3/+3
2019-08-10Rollup merge of #63399 - estebank:vec-in-pat, r=CentrilMazdak Farrokhzad-7/+48
More explicit diagnostic when using a `vec![]` in a pattern ``` error: unexpected `(` after qualified path --> $DIR/vec-macro-in-pattern.rs:3:14 | LL | Some(vec![x]) => (), | ^^^^^^^ | | | unexpected `(` after qualified path | in this macro invocation | use a slice pattern here instead | = help: for more information, see https://doc.rust-lang.org/edition-guide/rust-2018/slice-patterns.html = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) ``` Fix #61933.
2019-08-09review comments: use structured suggestionEsteban Küber-34/+36
2019-08-09More explicit diagnostic when using a `vec![]` in a patternEsteban Küber-6/+45
``` error: unexpected `(` after qualified path --> $DIR/vec-macro-in-pattern.rs:3:14 | LL | Some(vec![x]) => (), | ^^^^^^^ | | | unexpected `(` after qualified path | in this macro invocation | use a slice pattern here instead | = help: for more information, see https://doc.rust-lang.org/edition-guide/rust-2018/slice-patterns.html = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) ```