diff options
| author | Graydon Hoare <[email protected]> | 2010-12-30 15:27:52 -0800 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-12-30 15:27:52 -0800 |
| commit | bc9db2e9722e34ecfaa73c3561e32c440a6cedd2 (patch) | |
| tree | fb73c9b671ec6d849e592f9de16bf5800e451746 | |
| parent | Add def id to ast for obj fields. (diff) | |
| download | rust-bc9db2e9722e34ecfaa73c3561e32c440a6cedd2.tar.xz rust-bc9db2e9722e34ecfaa73c3561e32c440a6cedd2.zip | |
Teach resolve to find obj fields and ty params from methods.
| -rw-r--r-- | src/comp/middle/resolve.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs index 7e02b3d3..2ee54804 100644 --- a/src/comp/middle/resolve.rs +++ b/src/comp/middle/resolve.rs @@ -115,6 +115,18 @@ fn lookup_name(&env e, ast.ident i) -> option.t[def] { } } } + case (ast.item_obj(_, ?ob, ?ty_params, _, _)) { + for (ast.obj_field f in ob.fields) { + if (_str.eq(f.ident, i)) { + ret some[def](ast.def_obj_field(f.id)); + } + } + for (ast.ty_param tp in ty_params) { + if (_str.eq(tp.ident, i)) { + ret some[def](ast.def_ty_arg(tp.id)); + } + } + } case (ast.item_mod(_, ?m, _)) { ret check_mod(i, m); } |