diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-06-20 09:53:12 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-06-20 09:53:12 -0700 |
| commit | f0c730b819939f691076fec85319a6d11fa7b67d (patch) | |
| tree | ee39ae1eaeb4a035ff8b04e0359cdcf7447fce2f /src/libsyntax/parse | |
| parent | 6750eb5a05042fe3fb84708909074f33ad86d3ec (diff) | |
| download | rust-f0c730b819939f691076fec85319a6d11fa7b67d.tar.gz rust-f0c730b819939f691076fec85319a6d11fa7b67d.zip | |
syntax: Parse GT tokens from `>=` and `>>=`
The parser already has special logic for parsing `>` tokens from `>>`, and this commit extends the logic to the acquiring a `>` from the `>=` and `>>=` tokens as well. Closes #15043
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index ae2ec216bee..b56919c53c7 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -706,6 +706,16 @@ impl<'a> Parser<'a> { let lo = span.lo + BytePos(1); self.replace_token(token::GT, lo, span.hi) } + token::BINOPEQ(token::SHR) => { + let span = self.span; + let lo = span.lo + BytePos(1); + self.replace_token(token::GE, lo, span.hi) + } + token::GE => { + let span = self.span; + let lo = span.lo + BytePos(1); + self.replace_token(token::EQ, lo, span.hi) + } _ => { let gt_str = Parser::token_to_str(&token::GT); let this_token_str = self.this_token_to_str(); @@ -726,7 +736,9 @@ impl<'a> Parser<'a> { let mut first = true; let mut v = Vec::new(); while self.token != token::GT - && self.token != token::BINOP(token::SHR) { + && self.token != token::BINOP(token::SHR) + && self.token != token::GE + && self.token != token::BINOPEQ(token::SHR) { match sep { Some(ref t) => { if first { first = false; } |
