about summary refs log tree commit diff
path: root/src/comp/syntax/parse
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2012-01-25 16:44:51 +0100
committerMarijn Haverbeke <marijnh@gmail.com>2012-01-25 20:47:11 +0100
commit2d4d8e8bdbe2c6d0656c4887ad8ccadcb8a39966 (patch)
tree80aa0c77bcad42213b2db6d2f3c301f97f52e110 /src/comp/syntax/parse
parent76aabbe99d598dc42e8e3723d98516422bd26d33 (diff)
Implement implicit self type parameters for ifaces
Closes #1661
Diffstat (limited to 'src/comp/syntax/parse')
-rw-r--r--src/comp/syntax/parse/parser.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/comp/syntax/parse/parser.rs b/src/comp/syntax/parse/parser.rs
index 602e209e573..eca22f38adf 100644
--- a/src/comp/syntax/parse/parser.rs
+++ b/src/comp/syntax/parse/parser.rs
@@ -1831,9 +1831,10 @@ fn parse_method(p: parser) -> @ast::method {
 
 fn parse_item_iface(p: parser, attrs: [ast::attribute]) -> @ast::item {
     let lo = p.last_span.lo, ident = parse_ident(p),
-        tps = parse_ty_params(p), meths = parse_ty_methods(p);
+        tps = parse_ty_params(p), meths = parse_ty_methods(p),
+        self_tp = {ident: "self", id: p.get_id(), bounds: @[]};
     ret mk_item(p, lo, p.last_span.hi, ident,
-                ast::item_iface(tps, meths), attrs);
+                ast::item_iface(tps + [self_tp], meths), attrs);
 }
 
 // Parses three variants (with the initial params always optional):