From 6374ffc5f36da5959d6752e5b15543bb4e00c7a9 Mon Sep 17 00:00:00 2001 From: Marijn Haverbeke Date: Fri, 23 Mar 2012 11:09:19 +0100 Subject: [PATCH] Kludge in resolve to be able to land builtins Something strange is happening to hash maps. I'm still investigating but want to get my snapshot built in the meantime. (Problem only happened on OS X.) --- src/rustc/middle/resolve.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/rustc/middle/resolve.rs b/src/rustc/middle/resolve.rs index 5afebaa699f6..5106401b1758 100644 --- a/src/rustc/middle/resolve.rs +++ b/src/rustc/middle/resolve.rs @@ -353,14 +353,19 @@ fn map_crate(e: @env, c: @ast::crate) { fn resolve_imports(e: env) { e.used_imports.track = true; - e.imports.values {|v| - alt v { - todo(node_id, name, path, span, scopes) { - resolve_import(e, local_def(node_id), name, *path, span, scopes); - } - resolved(_, _, _, _, _, _) | is_glob(_, _, _) { } - _ { e.sess.bug("shouldn't see a resolving in resolve_imports"); } + loop { + let mut done = true; + e.imports.values {|v| + alt check v { + todo(node_id, name, path, span, scopes) { + done = false; + resolve_import(e, local_def(node_id), name, *path, span, + scopes); + } + resolved(_, _, _, _, _, _) | is_glob(_, _, _) { } + } } + if done { break; } }; e.used_imports.track = false; e.sess.abort_if_errors();