Skip to content

Commit 302cafa

Browse files
committed
Factor the parsing of "type foo" into parse_type_decl.
1 parent be97a77 commit 302cafa

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/comp/front/parser.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1577,15 +1577,12 @@ impure fn parse_item_mod(parser p) -> @ast.item {
15771577
ret @spanned(lo, hi, item);
15781578
}
15791579

1580-
15811580
impure fn parse_item_native_type(parser p) -> @ast.native_item {
1582-
auto lo = p.get_span();
1583-
expect(p, token.TYPE);
1584-
auto id = parse_ident(p);
1581+
auto t = parse_type_decl(p);
15851582
auto hi = p.get_span();
15861583
expect(p, token.SEMI);
1587-
auto item = ast.native_item_ty(id, p.next_def_id());
1588-
ret @spanned(lo, hi, item);
1584+
auto item = ast.native_item_ty(t._1, p.next_def_id());
1585+
ret @spanned(t._0, hi, item);
15891586
}
15901587

15911588
impure fn parse_native_item(parser p) -> @ast.native_item {
@@ -1624,18 +1621,23 @@ impure fn parse_item_native_mod(parser p) -> @ast.item {
16241621
ret @spanned(lo, hi, item);
16251622
}
16261623

1627-
impure fn parse_item_type(parser p) -> @ast.item {
1624+
impure fn parse_type_decl(parser p) -> tup(span, ast.ident) {
16281625
auto lo = p.get_span();
16291626
expect(p, token.TYPE);
16301627
auto id = parse_ident(p);
1628+
ret tup(lo, id);
1629+
}
1630+
1631+
impure fn parse_item_type(parser p) -> @ast.item {
1632+
auto t = parse_type_decl(p);
16311633
auto tps = parse_ty_params(p);
16321634

16331635
expect(p, token.EQ);
16341636
auto ty = parse_ty(p);
16351637
auto hi = p.get_span();
16361638
expect(p, token.SEMI);
1637-
auto item = ast.item_ty(id, ty, tps, p.next_def_id(), ast.ann_none);
1638-
ret @spanned(lo, hi, item);
1639+
auto item = ast.item_ty(t._1, ty, tps, p.next_def_id(), ast.ann_none);
1640+
ret @spanned(t._0, hi, item);
16391641
}
16401642

16411643
impure fn parse_item_tag(parser p) -> @ast.item {

0 commit comments

Comments
 (0)