Skip to content

Commit

Permalink
Add UI tests related to feature-gated primitives
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
tgross35 committed Mar 14, 2024
1 parent 2529bf2 commit 2098fec
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
30 changes: 30 additions & 0 deletions tests/ui/resolve/conflicting-primitive-names.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 42 additions & 0 deletions tests/ui/resolve/primitive-usage.rs
Original file line number Diff line number Diff line change
@@ -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();
}

0 comments on commit 2098fec

Please sign in to comment.