diff options
| author | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-07-23 14:56:36 +0200 |
|---|---|---|
| committer | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-07-24 10:07:45 +0200 |
| commit | 2e33a557de4cddfebd9fa3f6b64d6ed603482e75 (patch) | |
| tree | a664a21af5008bdb5ac80da764fd08b6dd0149a8 /src/libsyntax | |
| parent | 3900bf8ae3aafdd3ab13a0e6400d47bc5cb2e121 (diff) | |
| download | rust-2e33a557de4cddfebd9fa3f6b64d6ed603482e75.tar.gz rust-2e33a557de4cddfebd9fa3f6b64d6ed603482e75.zip | |
Allow declaring existential types inside blocks
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 2eaa56ebeb8..564eba0a553 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)?; |
