aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front/parser.rs
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2010-11-24 18:01:20 -0800
committerPatrick Walton <[email protected]>2010-11-24 18:01:20 -0800
commit78ec07790a90813cf4f42df0246ea9c27892745f (patch)
tree65133255d56aab5c582942aefb9d4ed5293bdb17 /src/comp/front/parser.rs
parentrustc: Parse type-parametric typedefs (diff)
downloadrust-78ec07790a90813cf4f42df0246ea9c27892745f.tar.xz
rust-78ec07790a90813cf4f42df0246ea9c27892745f.zip
rustc: Assign definition IDs to type params
Diffstat (limited to 'src/comp/front/parser.rs')
-rw-r--r--src/comp/front/parser.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs
index f4874733..261ea1ad 100644
--- a/src/comp/front/parser.rs
+++ b/src/comp/front/parser.rs
@@ -1039,10 +1039,15 @@ impure fn parse_block(parser p) -> ast.block {
ret spanned(stmts.span, stmts.span, b);
}
+impure fn parse_ty_param(parser p) -> ast.ty_param {
+ auto ident = parse_ident(p);
+ ret rec(ident=ident, id=p.next_def_id());
+}
+
impure fn parse_ty_params(parser p) -> vec[ast.ty_param] {
let vec[ast.ty_param] ty_params = vec();
if (p.peek() == token.LBRACKET) {
- auto f = parse_ident; // FIXME: pass as lval directly
+ auto f = parse_ty_param; // FIXME: pass as lval directly
ty_params = parse_seq[ast.ty_param](token.LBRACKET, token.RBRACKET,
some(token.COMMA), f, p).node;
}