Explicitly store self_ids use for self locals in methods

This makes it possible to move them between crates without confusion,
and to instantiate them at a point where the monomorphizing
substitutions are known.

Issue #1944
This commit is contained in:
Marijn Haverbeke 2012-03-07 12:54:00 +01:00
parent fd465f91a8
commit c71306b0db
14 changed files with 62 additions and 42 deletions

View file

@ -1931,7 +1931,8 @@ fn parse_method(p: parser) -> @ast::method {
let (inner_attrs, body) = parse_inner_attrs_and_block(p, true);
let attrs = attrs + inner_attrs;
@{ident: ident, attrs: attrs, tps: tps, decl: decl, body: body,
id: p.get_id(), span: ast_util::mk_sp(lo, body.span.hi)}
id: p.get_id(), span: ast_util::mk_sp(lo, body.span.hi),
self_id: p.get_id()}
}
fn parse_item_iface(p: parser, attrs: [ast::attribute]) -> @ast::item {