From 5b9eda4a41a410ffd8529a80c19f499ff856e07f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Fri, 14 Jan 2011 17:20:14 -0500 Subject: Fix the import handling in "complex" cases. When looking a.b.c and 'a' is a module, we should look for 'b' *just* in the module 'a' and then continue resolving b.c in the environment created by updating *with* a. Still not 100% correct, but getting there. --- src/test/compile-fail/import4.rs | 8 ++++++++ src/test/run-pass/import6.rs | 15 +++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/test/compile-fail/import4.rs create mode 100644 src/test/run-pass/import6.rs (limited to 'src/test') diff --git a/src/test/compile-fail/import4.rs b/src/test/compile-fail/import4.rs new file mode 100644 index 00000000..f769d6d3 --- /dev/null +++ b/src/test/compile-fail/import4.rs @@ -0,0 +1,8 @@ +// error-pattern: recursive import + +import zed.bar; +import bar.zed; + +fn main(vec[str] args) { + log "loop"; +} diff --git a/src/test/run-pass/import6.rs b/src/test/run-pass/import6.rs new file mode 100644 index 00000000..5e3a9d74 --- /dev/null +++ b/src/test/run-pass/import6.rs @@ -0,0 +1,15 @@ +import bar.baz; +import foo.zed; +mod foo { + mod zed { + fn baz() { + log "baz"; + } + } +} +mod bar { + import zed.baz; +} +fn main(vec[str] args) { + baz(); +} -- cgit v1.2.3