From e0fe271d3459d04af9e1580c396b4698063e1999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Sat, 1 Jan 2011 13:13:00 -0500 Subject: Add support for looking up a name introduced by a 'use'. With this we go from "error: unresolved name: foo" to "unimplemented definition variant for: foo" in use foo; fn main(vec[str] args) { foo.bar(); } --- src/comp/middle/resolve.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/comp/middle') diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs index 7f344d95..551993dd 100644 --- a/src/comp/middle/resolve.rs +++ b/src/comp/middle/resolve.rs @@ -67,10 +67,24 @@ fn lookup_name(&env e, ast.ident i) -> option.t[def] { ret none[def]; } + fn found_def_view(@ast.view_item i) -> option.t[def] { + alt (i.node) { + case (ast.view_item_use(_, _, ?id)) { + ret some[def](ast.def_use(id)); + } + case (ast.view_item_import(_,?id)) { + fail; + } + } + } + fn check_mod(ast.ident i, ast._mod m) -> option.t[def] { alt (m.index.find(i)) { case (some[ast.mod_index_entry](?ent)) { alt (ent) { + case (ast.mie_use(?ix)) { + ret found_def_view(m.view_items.(ix)); + } case (ast.mie_item(?ix)) { ret found_def_item(m.items.(ix)); } -- cgit v1.2.3