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:
Trevor Gross 2024-03-03 23:59:44 -05:00
parent 2529bf2650
commit 2098fec080
2 changed files with 72 additions and 0 deletions

View 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() {}

View 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();
}