From 3119afc6e844fea76512e45c392bdcbeeeec2c00 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Wed, 18 Jul 2012 15:14:23 -0700 Subject: [PATCH] In resolve3, error on non-existent imports Closes #2937 --- src/rustc/middle/resolve3.rs | 10 ++++++++++ src/test/compile-fail/issue-2937.rs | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 src/test/compile-fail/issue-2937.rs diff --git a/src/rustc/middle/resolve3.rs b/src/rustc/middle/resolve3.rs index 7bbb43a14f9..3803d9634e5 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 00000000000..01fa3cbfa0a --- /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