diff --git a/src/rustc/middle/resolve3.rs b/src/rustc/middle/resolve3.rs index 7bbb43a14f90..3803d9634e5c 100644 --- a/src/rustc/middle/resolve3.rs +++ b/src/rustc/middle/resolve3.rs @@ -1904,6 +1904,16 @@ class Resolver { } } + let i = import_resolution; + alt (i.module_target, i.value_target, i.type_target, i.impl_target) { + /* + If this name wasn't found in any of the four namespaces, it's + definitely unresolved + */ + (none, none, none, v) if v.len() == 0 { ret Failed; } + _ {} + } + assert import_resolution.outstanding_references >= 1u; import_resolution.outstanding_references -= 1u; diff --git a/src/test/compile-fail/issue-2937.rs b/src/test/compile-fail/issue-2937.rs new file mode 100644 index 000000000000..01fa3cbfa0a1 --- /dev/null +++ b/src/test/compile-fail/issue-2937.rs @@ -0,0 +1,10 @@ +// error-pattern:failed to resolve imports +// n.b. Can't use a //~ ERROR because there's a non-spanned error +// message. +import x = m::f; + +mod m { +} + +fn main() { +} \ No newline at end of file