diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-03-28 14:17:41 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-03-28 14:19:00 -0700 |
| commit | ca6636d6b689fe209a210b0eda51e368f01cdb0f (patch) | |
| tree | 7c979884781d3179bb918045f414426eb6158cea /src/rustc/syntax/parse | |
| parent | c141e7a068e3fbb1a5d24dcd000567b7731910bb (diff) | |
| download | rust-ca6636d6b689fe209a210b0eda51e368f01cdb0f.tar.gz rust-ca6636d6b689fe209a210b0eda51e368f01cdb0f.zip | |
Allow references to "self" within classes
Allow writing self.f within a class that has a field f. Currently, the compiler accepts either self.f or f. In a future commit I'll require writing self.f and not f. Not sure whether self.f() works if f is a method (making sure that works next).
Diffstat (limited to 'src/rustc/syntax/parse')
| -rw-r--r-- | src/rustc/syntax/parse/parser.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/rustc/syntax/parse/parser.rs b/src/rustc/syntax/parse/parser.rs index 3ca2e6a588b..61cc675c492 100644 --- a/src/rustc/syntax/parse/parser.rs +++ b/src/rustc/syntax/parse/parser.rs @@ -2092,10 +2092,12 @@ fn parse_item_class(p: parser, attrs: [ast::attribute]) -> @ast::item { } p.bump(); alt the_ctor { - some((ct_d, ct_b, ct_s)) { ret mk_item(p, lo, p.last_span.hi, + some((ct_d, ct_b, ct_s)) { + ret mk_item(p, lo, p.last_span.hi, class_name, ast::item_class(ty_params, items, {node: {id: ctor_id, + self_id: p.get_id(), dec: ct_d, body: ct_b}, span: ct_s}), attrs); } |
