Auto merge of #121926 - tgross35:f16-f128-step3-feature-gate, r=compiler-errors,petrochenkov
`f16` and `f128` step 3: compiler support & feature gate Continuation of https://github.com/rust-lang/rust/pull/121841, another portion of https://github.com/rust-lang/rust/pull/114607 This PR exposes the new types to the world and adds a feature gate. Marking this as a draft because I need some feedback on where I did the feature gate check. It also does not yet catch type via suffixed literals (so the feature gate test will fail, probably some others too because I haven't belssed). If there is a better place to check all types after resolution, I can do that. If not, I figure maybe I can add a second gate location in AST when it checks numeric suffixes. Unfortunately I still don't think there is much testing to be done for correctness (codegen tests or parsed value checks) until we have basic library support. I think that will be the next step. Tracking issue: https://github.com/rust-lang/rust/issues/116909 r? `@compiler-errors` cc `@Nilstrieb` `@rustbot` label +F-f16_and_f128
This commit is contained in:
commit
c03ea3dfd9
21 changed files with 403 additions and 119 deletions
|
@ -2444,7 +2444,7 @@ pub enum PrimTy {
|
|||
|
||||
impl PrimTy {
|
||||
/// All of the primitive types
|
||||
pub const ALL: [Self; 17] = [
|
||||
pub const ALL: [Self; 19] = [
|
||||
// any changes here should also be reflected in `PrimTy::from_name`
|
||||
Self::Int(IntTy::I8),
|
||||
Self::Int(IntTy::I16),
|
||||
|
@ -2458,9 +2458,10 @@ impl PrimTy {
|
|||
Self::Uint(UintTy::U64),
|
||||
Self::Uint(UintTy::U128),
|
||||
Self::Uint(UintTy::Usize),
|
||||
Self::Float(FloatTy::F16),
|
||||
Self::Float(FloatTy::F32),
|
||||
Self::Float(FloatTy::F64),
|
||||
// FIXME(f16_f128): add these when enabled below
|
||||
Self::Float(FloatTy::F128),
|
||||
Self::Bool,
|
||||
Self::Char,
|
||||
Self::Str,
|
||||
|
@ -2508,12 +2509,10 @@ impl PrimTy {
|
|||
sym::u64 => Self::Uint(UintTy::U64),
|
||||
sym::u128 => Self::Uint(UintTy::U128),
|
||||
sym::usize => Self::Uint(UintTy::Usize),
|
||||
sym::f16 => Self::Float(FloatTy::F16),
|
||||
sym::f32 => Self::Float(FloatTy::F32),
|
||||
sym::f64 => Self::Float(FloatTy::F64),
|
||||
// FIXME(f16_f128): enabling these will open the gates of f16 and f128 being
|
||||
// understood by rustc.
|
||||
// sym::f16 => Self::Float(FloatTy::F16),
|
||||
// sym::f128 => Self::Float(FloatTy::F128),
|
||||
sym::f128 => Self::Float(FloatTy::F128),
|
||||
sym::bool => Self::Bool,
|
||||
sym::char => Self::Char,
|
||||
sym::str => Self::Str,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue