Add UI tests related to feature-gated primitives
Add a test that `f16` and `f128` are usable with the feature gate enabled, as well as a test that user types with the same name as primitives are not improperly gated.
This commit is contained in:
parent
2529bf2650
commit
2098fec080
30
tests/ui/resolve/conflicting-primitive-names.rs
Normal file
30
tests/ui/resolve/conflicting-primitive-names.rs
Normal file
@ -0,0 +1,30 @@
|
||||
//@ check-pass
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(unused)]
|
||||
|
||||
// Ensure that primitives do not interfere with user types of similar names
|
||||
|
||||
macro_rules! make_ty_mod {
|
||||
($modname:ident, $ty:tt) => {
|
||||
mod $modname {
|
||||
struct $ty {
|
||||
a: i32,
|
||||
}
|
||||
|
||||
fn assignment() {
|
||||
let $ty = ();
|
||||
}
|
||||
|
||||
fn access(a: $ty) -> i32 {
|
||||
a.a
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
make_ty_mod!(check_f16, f16);
|
||||
make_ty_mod!(check_f32, f32);
|
||||
make_ty_mod!(check_f64, f64);
|
||||
make_ty_mod!(check_f128, f128);
|
||||
|
||||
fn main() {}
|
42
tests/ui/resolve/primitive-usage.rs
Normal file
42
tests/ui/resolve/primitive-usage.rs
Normal file
@ -0,0 +1,42 @@
|
||||
//@ run-pass
|
||||
#![allow(unused)]
|
||||
#![feature(f128)]
|
||||
#![feature(f16)]
|
||||
|
||||
// Same as the feature gate tests but ensure we can use the types
|
||||
mod check_f128 {
|
||||
const A: f128 = 10.0;
|
||||
|
||||
pub fn foo() {
|
||||
let a: f128 = 100.0;
|
||||
let b = 0.0f128;
|
||||
bar(1.23);
|
||||
}
|
||||
|
||||
fn bar(a: f128) {}
|
||||
|
||||
struct Bar {
|
||||
a: f128,
|
||||
}
|
||||
}
|
||||
|
||||
mod check_f16 {
|
||||
const A: f16 = 10.0;
|
||||
|
||||
pub fn foo() {
|
||||
let a: f16 = 100.0;
|
||||
let b = 0.0f16;
|
||||
bar(1.23);
|
||||
}
|
||||
|
||||
fn bar(a: f16) {}
|
||||
|
||||
struct Bar {
|
||||
a: f16,
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
check_f128::foo();
|
||||
check_f16::foo();
|
||||
}
|
Loading…
Reference in New Issue
Block a user