Skip to content

Commit c1f2e29

Browse files
cixtorgraydon
authored andcommitted
Produce better errors for invalid imports.
1 parent c489abe commit c1f2e29

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

src/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@ TEST_XFAILS_BOOT := $(TASK_XFAILS) \
404404
test/run-fail/task-comm-14.rs \
405405
test/compile-fail/import.rs \
406406
test/compile-fail/import2.rs \
407+
test/compile-fail/import3.rs \
407408
test/compile-fail/bad-recv.rs \
408409
test/compile-fail/bad-send.rs \
409410
test/compile-fail/infinite-vec-type-recursion.rs \

src/comp/middle/resolve.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,12 @@ fn find_final_def(&env e, &span sp, vec[ident] idents) -> option.t[def_wrap] {
9090
auto new_e = update_env_for_item(tmp_e, i);
9191
ret find_final_def(new_e, sp, new_idents);
9292
}
93+
case (def_wrap_use(?c)) {
94+
e.sess.span_err(sp, "Crate access is not implemented");
95+
}
96+
case (_) {
97+
e.sess.span_err(sp, first + " is not a module or crate");
98+
}
9399
}
94100
}
95101
}

src/test/compile-fail/import3.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// error-pattern: main is not a module or crate
2+
import main.bar;
3+
4+
fn main(vec[str] args) {
5+
log "foo";
6+
}

0 commit comments

Comments
 (0)