From e0f44730e8dc75c17dc86fcb48769d62a4dbcaae Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sat, 29 Oct 2011 01:21:43 -0700 Subject: rustc: Support 'companion mod's for crates and directory mods Under this scheme when parsing foo.rc the parser will also look for foo.rs to fill in the crate-level module, and when evaluating a directory module directive it will look for a .rs file with the same name as the directory. --- src/test/run-pass/companionmod-src/b.rs | 2 ++ src/test/run-pass/companionmod-src/b/x.rs | 1 + src/test/run-pass/companionmod-src/d.rs | 2 ++ src/test/run-pass/companionmod-src/d/x.rs | 1 + src/test/run-pass/companionmod.rc | 10 ++++++++++ src/test/run-pass/companionmod.rs | 7 +++++++ 6 files changed, 23 insertions(+) create mode 100644 src/test/run-pass/companionmod-src/b.rs create mode 100644 src/test/run-pass/companionmod-src/b/x.rs create mode 100644 src/test/run-pass/companionmod-src/d.rs create mode 100644 src/test/run-pass/companionmod-src/d/x.rs create mode 100644 src/test/run-pass/companionmod.rc create mode 100644 src/test/run-pass/companionmod.rs (limited to 'src/test') diff --git a/src/test/run-pass/companionmod-src/b.rs b/src/test/run-pass/companionmod-src/b.rs new file mode 100644 index 00000000000..e867ff713cd --- /dev/null +++ b/src/test/run-pass/companionmod-src/b.rs @@ -0,0 +1,2 @@ +import g = x::f; +export g; \ No newline at end of file diff --git a/src/test/run-pass/companionmod-src/b/x.rs b/src/test/run-pass/companionmod-src/b/x.rs new file mode 100644 index 00000000000..413b834fb11 --- /dev/null +++ b/src/test/run-pass/companionmod-src/b/x.rs @@ -0,0 +1 @@ +fn f() -> str { "ralph" } \ No newline at end of file diff --git a/src/test/run-pass/companionmod-src/d.rs b/src/test/run-pass/companionmod-src/d.rs new file mode 100644 index 00000000000..e867ff713cd --- /dev/null +++ b/src/test/run-pass/companionmod-src/d.rs @@ -0,0 +1,2 @@ +import g = x::f; +export g; \ No newline at end of file diff --git a/src/test/run-pass/companionmod-src/d/x.rs b/src/test/run-pass/companionmod-src/d/x.rs new file mode 100644 index 00000000000..94f006f9a1f --- /dev/null +++ b/src/test/run-pass/companionmod-src/d/x.rs @@ -0,0 +1 @@ +fn f() -> str { "nelson" } \ No newline at end of file diff --git a/src/test/run-pass/companionmod.rc b/src/test/run-pass/companionmod.rc new file mode 100644 index 00000000000..405e5efc846 --- /dev/null +++ b/src/test/run-pass/companionmod.rc @@ -0,0 +1,10 @@ +// Test that crates and directory modules can contain code + +mod a = "companionmod-src" { + mod b { + mod x; + } + mod c = "d" { + mod x; + } +} \ No newline at end of file diff --git a/src/test/run-pass/companionmod.rs b/src/test/run-pass/companionmod.rs new file mode 100644 index 00000000000..9b9d1a00f0f --- /dev/null +++ b/src/test/run-pass/companionmod.rs @@ -0,0 +1,7 @@ +// This isn't really xfailed; it's used by the companionmod.rc test +// xfail-test + +fn main() { + assert a::b::g() == "ralph"; + assert a::c::g() == "nelson"; +} \ No newline at end of file -- cgit 1.4.1-3-g733a5