summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
AgeCommit message (Collapse)AuthorLines
2019-08-03review commentsEsteban Küber-3/+4
2019-08-03Fix another caseEsteban Küber-3/+12
2019-08-03Make the parser TokenStream more resilient after mismatched delimiter recoveryEsteban Küber-0/+3
2019-07-22Rollup merge of #62792 - goodmanjonathan:beta, r=estebankPietro Albini-1/+1
2019-07-22Cancel unemitted diagnostics during error recoveryEsteban Küber-8/+9
2019-07-22Correctly break out of recovery loopEsteban Küber-2/+3
2019-07-22Handle errors during error recovery gracefullyEsteban Küber-4/+7
2019-07-18Don't drop DiagnosticBuilder if parsing failsJonathan Goodman-1/+1
Beta backport of #62668. If the explicitly given type of a `self` parameter fails to parse correctly, we need to propagate the error rather than dropping it and causing an ICE.
2019-06-29Always parse 'async unsafe fn' + properly ban in 2015.Mazdak Farrokhzad-8/+18
2019-06-26Fix clippy::redundant_field_namesIgor Matuszewski-9/+9
2019-06-25Auto merge of #60732 - jswrenn:arbitrary_enum_discriminant, r=pnkfelixbors-17/+14
Implement arbitrary_enum_discriminant Implements RFC rust-lang/rfcs#2363 (tracking issue #60553).
2019-06-24Auto merge of #62075 - Centril:guardless-match-arms, r=petrochenkovbors-2/+2
Remove `ast::Guard` With the introduction of `ast::ExprKind::Let` in https://github.com/rust-lang/rust/pull/60861, the `ast::Guard` structure is now redundant in terms of representing [`if let` guards](https://github.com/rust-lang/rust/issues/51114) in AST since it can be represented by `ExprKind::Let` syntactically. Therefore, we remove `ast::Guard` here. However, we keep `hir::Guard` because the semantic representation is a different matter and this story is more unclear right now (might involve `goto 'arm` in HIR or something...). r? @petrochenkov
2019-06-23Remove redundant syntax::ast::Guard.Mazdak Farrokhzad-2/+2
2019-06-23let_chains: Fix bugs in pretty printing.Mazdak Farrokhzad-2/+2
2019-06-23let_chains: Refactor parse_{if,while}_expr a bit.Mazdak Farrokhzad-9/+12
2019-06-23let_chains: Move feature gating to pre-expansion.Mazdak Farrokhzad-2/+13
2019-06-23let_chains: Fix outdated doc-comment re. 'parse_if_expr'.Mazdak Farrokhzad-1/+1
2019-06-23let_chains: Add support for parsing let expressions.Mazdak Farrokhzad-49/+18
2019-06-21Implement arbitrary_enum_discriminantJohn Wrenn-17/+14
2019-06-18Remove the HirId/NodeId from where clausesMatthew Jasper-2/+0
Also give them a span in the HIR
2019-06-12Auto merge of #61612 - nnethercote:improve-parse_bottom_expr, r=petrochenkovbors-10/+22
Special-case literals in `parse_bottom_expr`. This makes parsing faster, particularly for code with large constants, for two reasons: - it skips all the keyword comparisons for literals; - it skips the allocation done by the `mk_expr` call in `parse_literal_maybe_minus`. r? @petrochenkov
2019-06-12Auto merge of #60669 - c410-f3r:attrs-fn, r=petrochenkovbors-28/+52
Allow attributes in formal function parameters Implements https://github.com/rust-lang/rust/issues/60406. This is my first contribution to the compiler and since this is a large and complex project, I am not fully aware of the consequences of the changes I have made. **TODO** - [x] Forbid some built-in attributes. - [x] Expand cfg/cfg_attr
2019-06-10Special-case literals in `parse_bottom_expr`.Nicholas Nethercote-10/+22
This makes parsing faster, particularly for code with large constants, for two reasons: - it skips all the keyword comparisons for literals; - it replaces the unnecessary `parse_literal_maybe_minus` call with `parse_lit`, avoiding an unnecessary allocation via `mk_expr`.
2019-06-09Allow attributes in formal function parametersCaio-28/+52
2019-06-08syntax: Remove `Deref` impl from `Token`Vadim Petrochenkov-9/+9
2019-06-08syntax: Move most of the `TokenKind` methods to `Token`Vadim Petrochenkov-3/+5
2019-06-07parser: Remove `look_ahead_span`Vadim Petrochenkov-13/+1
2019-06-07parser: Remove `Deref` impl from `Parser`Vadim Petrochenkov-10/+0
2019-06-07parser: `self.span` -> `self.token.span`Vadim Petrochenkov-179/+192
2019-06-06Address review commentsVadim Petrochenkov-4/+8
2019-06-06Some code cleanup and tidy/test fixesVadim Petrochenkov-25/+30
2019-06-06syntax: Switch function parameter order in `TokenTree::token`Vadim Petrochenkov-7/+7
2019-06-06syntax: Remove duplicate span from `token::Ident`Vadim Petrochenkov-27/+21
2019-06-06syntax: Remove duplicate span from `token::Lifetime`Vadim Petrochenkov-4/+3
2019-06-06syntax: Add some helper methods to `Token`Vadim Petrochenkov-10/+10
2019-06-06syntax: Use `Token` in `Parser`Vadim Petrochenkov-79/+82
2019-06-06syntax: Use `Token` in `TokenTree::Token`Vadim Petrochenkov-10/+10
2019-06-06syntax: Rename `TokenAndSpan` into `Token`Vadim Petrochenkov-15/+15
2019-06-06syntax: Rename `Token` into `TokenKind`Vadim Petrochenkov-24/+24
2019-06-06Always use token kinds through `token` module rather than `Token` typeVadim Petrochenkov-4/+4
2019-06-05Implemented for function bounds, type bounds, and named existential types.Alexander Regueiro-21/+31
2019-06-05Aggregation of drive-by cosmetic changes.Alexander Regueiro-29/+29
2019-06-05Auto merge of #61484 - nnethercote:avoid-more-hygiene-lookups, r=petrochenkovbors-8/+11
Avoid more hygiene lookups Mostly by combining multiple `HygieneData::with` calls into a single call on hot paths. r? @petrochenkov
2019-06-05Avoid unnecessary `rust_2018` calls.Nicholas Nethercote-8/+11
The commit combines two calls into one by saving the result in a local variable. The commit also moves the check for `async` later, so that when a different keyword is present the `rust_2018` call will be avoided completely.
2019-06-04Rollup merge of #61500 - estebank:expregression, r=petrochenkovPietro Albini-7/+11
Fix regression 61475 Addresses #61475.
2019-06-04Rollup merge of #61413 - davidtwco:async-argument-order-in-a-sane-way, r=eddybMazdak Farrokhzad-129/+12
Re-implement async fn drop order lowering This PR re-implements the async fn drop order lowering changes so that it all takes place in HIR lowering, building atop the work done by @eddyb to refactor `Res::Upvar`. Previously, this types involved in the lowering were constructed in libsyntax as they had to be used during name resolution and HIR lowering. This was awful because none of that logic should have existed in libsyntax. This commit also changes `ArgSource` to keep a `HirId` to the original argument pattern rather than a cloned copy of the pattern. Only b7aa4ed and 71fb8fa should be reviewed, any other commits are from #61276 (though 447e336 might end up staying in this PR). As a nice side effect, it also fixes #61187 (cc #61192). r? @eddyb cc @cramertj
2019-06-04Rollup merge of #61409 - varkor:condition-trait-param-ice, r=oli-obkMazdak Farrokhzad-3/+7
Fix an ICE with a const argument in a trait This goes some way towards fixing https://github.com/rust-lang/rust/issues/61383 (the reduced test case is fixed).
2019-06-03Fix regression #61475Esteban Küber-7/+11
2019-06-03syntax: revert `ast::AsyncArgument` and associated changes.Eduard-Mihai Burtescu-129/+12
Here follows the main reverts applied in order to make this commit: Revert "Rollup merge of #60676 - davidtwco:issue-60674, r=cramertj" This reverts commit 45b09453dbf120cc23d889435aac3ed7d2ec8eb7, reversing changes made to f6df1f6c30b469cb9e65c5453a0efa03cbb6005e. Revert "Rollup merge of #60437 - davidtwco:issue-60236, r=nikomatsakis" This reverts commit 16939a50ea440e72cb6ecefdaabb988addb1ec0e, reversing changes made to 12bf98155249783583a91863c5dccf9e346f1226. Revert "Rollup merge of #59823 - davidtwco:issue-54716, r=cramertj" This reverts commit 62d1574876f5531bce1b267e62dff520d7adcbbb, reversing changes made to 4eff8526a789e0dfa8b97f7dec91b7b5c18e8544.
2019-06-03Allow `true` and `false` in const generic argumentsvarkor-3/+7