Add more tests for conditional compilation. Issue #489

This commit is contained in:
Brian Anderson 2011-06-30 11:22:10 -07:00
parent 7fd04a21a1
commit 6346a67cbd
1 changed files with 67 additions and 1 deletions

View File

@ -1,8 +1,74 @@
// xfail-stage0
#[cfg(bogus)]
const bool b = false;
const bool b = true;
#[cfg(bogus)]
native "rust" mod rustrt {
// This symbol doesn't exist and would be a link error if this
// module was translated
fn bogus();
}
native "rust" mod rustrt {
}
#[cfg(bogus)]
type t = int;
type t = bool;
#[cfg(bogus)]
tag tg {
foo;
}
tag tg {
bar;
}
#[cfg(bogus)]
obj o() {
fn f() { ret bogus; }
}
obj o() {
}
#[cfg(bogus)]
resource r(int i) {}
resource r(int i) {}
#[cfg(bogus)]
mod m {
// This needs to parse but would fail in typeck. Since it's not in
// the current config it should not be typechecked.
fn bogus() { ret 0; }
}
mod m {
// Submodules have slightly different code paths than the top-level
// module, so let's make sure this jazz works here as well
#[cfg(bogus)]
fn f() {}
fn f() {}
}
// Since the bogus configuration isn't defined main will just be
// parsed, but nothing further will be done with it
#[cfg(bogus)]
fn main() { fail }
fn main() {}
fn main() {
// Exercise some of the configured items in ways that wouldn't be possible
// if they had the bogus definition
assert b;
let t x = true;
let tg y = bar;
}