diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-08-18 18:31:47 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-09-03 13:39:34 +0300 |
| commit | f3b41c18a8dfbcfec4b2a9e8d9e6a921189e3eea (patch) | |
| tree | 1d6aaf94ca46fd2e08df59767b8b2fb9c799313a /src/libsyntax/parse/parser.rs | |
| parent | 957971b63abbc816aebc6654dc68cf9ff15837d7 (diff) | |
| download | rust-f3b41c18a8dfbcfec4b2a9e8d9e6a921189e3eea.tar.gz rust-f3b41c18a8dfbcfec4b2a9e8d9e6a921189e3eea.zip | |
Check fields in union patters/expressions
Make parsing of union items backward compatible Add some tests
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 290a59cf1e5..ec9dc1bae5a 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -5957,8 +5957,10 @@ impl<'a> Parser<'a> { maybe_append(attrs, extra_attrs)); return Ok(Some(item)); } - if self.eat_keyword(keywords::Union) { + if self.check_keyword(keywords::Union) && + self.look_ahead(1, |t| t.is_ident() && !t.is_any_keyword()) { // UNION ITEM + self.bump(); let (ident, item_, extra_attrs) = self.parse_item_union()?; let last_span = self.last_span; let item = self.mk_item(lo, |
