Skip to content

Commit

Permalink
Add a UI test 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 4, 2024
1 parent a219b32 commit 1bc946b
Show file tree
Hide file tree
Showing 2 changed files with 68 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() {}
38 changes: 38 additions & 0 deletions tests/ui/resolve/primitive-usage.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//@ check-pass
#![feature(f128)]
#![feature(f16)]

// Same as the feature gate tests but ensure we can use the types
mod m1 {
const A: f128 = 10.0;

pub fn ffoo() {
let a: f128 = 100.0;
let b = 0.0f128;
bar(1.23);
}

fn bar(a: f128) {}

struct Bar {
a: f128,
}
}

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

0 comments on commit 1bc946b

Please sign in to comment.