diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2018-07-24 16:43:46 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-24 16:43:46 -0600 |
| commit | f930017e109fe3ae786d800b9d7aa9041d3f74ce (patch) | |
| tree | fe73c690bd424f5f1a624ab316ada3391606251f /src/libsyntax | |
| parent | dab595e96a9dee0b0f41e55504d2f69b0d4b5d6e (diff) | |
| parent | 2e33a557de4cddfebd9fa3f6b64d6ed603482e75 (diff) | |
| download | rust-f930017e109fe3ae786d800b9d7aa9041d3f74ce.tar.gz rust-f930017e109fe3ae786d800b9d7aa9041d3f74ce.zip | |
Rollup merge of #52645 - oli-obk:existential_in_fn_body, r=dtolnay
Allow declaring existential types inside blocks fixes #52631 r? @dtolnay
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 54376797dea..64309dd9b8b 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -4391,6 +4391,11 @@ impl<'a> Parser<'a> { self.token.is_keyword(keywords::Extern) && self.look_ahead(1, |t| t != &token::ModSep) } + fn is_existential_type_decl(&self) -> bool { + self.token.is_keyword(keywords::Existential) && + self.look_ahead(1, |t| t.is_keyword(keywords::Type)) + } + fn is_auto_trait_item(&mut self) -> bool { // auto trait (self.token.is_keyword(keywords::Auto) @@ -4495,6 +4500,7 @@ impl<'a> Parser<'a> { !self.is_union_item() && !self.is_crate_vis() && !self.is_extern_non_path() && + !self.is_existential_type_decl() && !self.is_auto_trait_item() { let pth = self.parse_path(PathStyle::Expr)?; |
