From 7a60ae12a90a9f0e45dc8e33070dbe7092a68f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Wed, 12 Jan 2011 15:03:00 -0500 Subject: [PATCH] Produce better errors for invalid imports. --- src/Makefile | 1 + src/comp/middle/resolve.rs | 6 ++++++ src/test/compile-fail/import3.rs | 6 ++++++ 3 files changed, 13 insertions(+) create mode 100644 src/test/compile-fail/import3.rs diff --git a/src/Makefile b/src/Makefile index 11b63f549ce6c..3c97709271226 100644 --- a/src/Makefile +++ b/src/Makefile @@ -404,6 +404,7 @@ TEST_XFAILS_BOOT := $(TASK_XFAILS) \ test/run-fail/task-comm-14.rs \ test/compile-fail/import.rs \ test/compile-fail/import2.rs \ + test/compile-fail/import3.rs \ test/compile-fail/bad-recv.rs \ test/compile-fail/bad-send.rs \ test/compile-fail/infinite-vec-type-recursion.rs \ diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs index 95f84f463e995..a0f44708201e0 100644 --- a/src/comp/middle/resolve.rs +++ b/src/comp/middle/resolve.rs @@ -90,6 +90,12 @@ fn find_final_def(&env e, &span sp, vec[ident] idents) -> option.t[def_wrap] { auto new_e = update_env_for_item(tmp_e, i); ret find_final_def(new_e, sp, new_idents); } + case (def_wrap_use(?c)) { + e.sess.span_err(sp, "Crate access is not implemented"); + } + case (_) { + e.sess.span_err(sp, first + " is not a module or crate"); + } } } } diff --git a/src/test/compile-fail/import3.rs b/src/test/compile-fail/import3.rs new file mode 100644 index 0000000000000..16aa43eab8372 --- /dev/null +++ b/src/test/compile-fail/import3.rs @@ -0,0 +1,6 @@ +// error-pattern: main is not a module or crate +import main.bar; + +fn main(vec[str] args) { + log "foo"; +}