Move /src/test to /tests
This commit is contained in:
parent
ca855e6e42
commit
cf2dff2b1e
27592 changed files with 0 additions and 0 deletions
|
@ -0,0 +1,47 @@
|
|||
// stderr-per-bitwidth
|
||||
use std::mem::transmute;
|
||||
|
||||
fn get_flag<const FlagSet: bool, const ShortName: char>() -> Option<char> {
|
||||
if FlagSet {
|
||||
Some(ShortName)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
union CharRaw {
|
||||
byte: u8,
|
||||
character: char,
|
||||
}
|
||||
|
||||
union BoolRaw {
|
||||
byte: u8,
|
||||
boolean: bool,
|
||||
}
|
||||
|
||||
const char_raw: CharRaw = CharRaw { byte: 0xFF };
|
||||
const bool_raw: BoolRaw = BoolRaw { byte: 0x42 };
|
||||
|
||||
fn main() {
|
||||
// Test that basic cases don't work
|
||||
assert!(get_flag::<true, 'c'>().is_some());
|
||||
assert!(get_flag::<false, 'x'>().is_none());
|
||||
get_flag::<false, 0xFF>();
|
||||
//~^ ERROR mismatched types
|
||||
get_flag::<7, 'c'>();
|
||||
//~^ ERROR mismatched types
|
||||
get_flag::<42, 0x5ad>();
|
||||
//~^ ERROR mismatched types
|
||||
//~| ERROR mismatched types
|
||||
|
||||
|
||||
get_flag::<false, { unsafe { char_raw.character } }>();
|
||||
//~^ ERROR evaluation of constant value failed
|
||||
//~| uninitialized
|
||||
get_flag::<{ unsafe { bool_raw.boolean } }, 'z'>();
|
||||
//~^ ERROR it is undefined behavior
|
||||
get_flag::<{ unsafe { bool_raw.boolean } }, { unsafe { char_raw.character } }>();
|
||||
//~^ ERROR evaluation of constant value failed
|
||||
//~| uninitialized
|
||||
//~| ERROR it is undefined behavior
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue