about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-12-30 15:27:52 -0800
committerGraydon Hoare <graydon@mozilla.com>2010-12-30 15:27:52 -0800
commitbc9db2e9722e34ecfaa73c3561e32c440a6cedd2 (patch)
treefb73c9b671ec6d849e592f9de16bf5800e451746 /src/comp
parenta9d03dd1a2ae812d081af7a919bf30161c956814 (diff)
downloadrust-bc9db2e9722e34ecfaa73c3561e32c440a6cedd2.tar.gz
rust-bc9db2e9722e34ecfaa73c3561e32c440a6cedd2.zip
Teach resolve to find obj fields and ty params from methods.
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/resolve.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs
index 7e02b3d3b1b..2ee54804724 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);
                     }