Skip to content

Commit ae6d8d1

Browse files
committed
rustc: Implement optional fat-arrow syntax for alt (transitional change)
1 parent 7803488 commit ae6d8d1

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

src/libsyntax/parse/lexer.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,12 @@ fn next_token_inner(rdr: reader) -> token::token {
389389
if rdr.curr == '=' {
390390
rdr.bump();
391391
ret token::EQEQ;
392-
} else { ret token::EQ; }
392+
} else if rdr.curr == '>' {
393+
rdr.bump();
394+
ret token::FAT_ARROW;
395+
} else {
396+
ret token::EQ;
397+
}
393398
}
394399
'!' {
395400
rdr.bump();

src/libsyntax/parse/parser.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,6 +1281,7 @@ class parser {
12811281
let pats = self.parse_pats();
12821282
let mut guard = none;
12831283
if self.eat_keyword("if") { guard = some(self.parse_expr()); }
1284+
if self.token == token::FAT_ARROW { self.bump(); }
12841285
let blk = self.parse_block();
12851286
arms += [{pats: pats, guard: guard, body: blk}];
12861287
}

src/libsyntax/parse/token.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ enum token {
4545
RARROW,
4646
LARROW,
4747
DARROW,
48+
FAT_ARROW,
4849
LPAREN,
4950
RPAREN,
5051
LBRACKET,
@@ -111,6 +112,7 @@ fn to_str(in: interner<str>, t: token) -> str {
111112
RARROW { ret "->"; }
112113
LARROW { ret "<-"; }
113114
DARROW { ret "<->"; }
115+
FAT_ARROW { ret "=>"; }
114116
LPAREN { ret "("; }
115117
RPAREN { ret ")"; }
116118
LBRACKET { ret "["; }

0 commit comments

Comments
 (0)