Skip to content

Commit fdaec57

Browse files
committed
XSimplifiedType to SimplifiedType::X
1 parent c67cb3e commit fdaec57

File tree

7 files changed

+116
-118
lines changed

7 files changed

+116
-118
lines changed

compiler/rustc_hir_analysis/src/coherence/orphan.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -568,10 +568,10 @@ fn fast_reject_auto_impl<'tcx>(tcx: TyCtxt<'tcx>, trait_def_id: DefId, self_ty:
568568

569569
impl<'tcx> TypeVisitor<TyCtxt<'tcx>> for DisableAutoTraitVisitor<'tcx> {
570570
type BreakTy = ();
571-
fn visit_ty(&mut self, t: Ty<'tcx>) -> ControlFlow<Self::BreakTy> {
571+
fn visit_ty(&mut self, ty: Ty<'tcx>) -> ControlFlow<Self::BreakTy> {
572572
let tcx = self.tcx;
573-
if t != self.self_ty_root {
574-
for impl_def_id in tcx.non_blanket_impls_for_ty(self.trait_def_id, t) {
573+
if ty != self.self_ty_root {
574+
for impl_def_id in tcx.non_blanket_impls_for_ty(self.trait_def_id, ty) {
575575
match tcx.impl_polarity(impl_def_id) {
576576
ImplPolarity::Negative => return ControlFlow::Break(()),
577577
ImplPolarity::Reservation => {}
@@ -584,7 +584,7 @@ fn fast_reject_auto_impl<'tcx>(tcx: TyCtxt<'tcx>, trait_def_id: DefId, self_ty:
584584
}
585585
}
586586

587-
match t.kind() {
587+
match ty.kind() {
588588
ty::Adt(def, args) if def.is_phantom_data() => args.visit_with(self),
589589
ty::Adt(def, args) => {
590590
// @lcnr: This is the only place where cycles can happen. We avoid this
@@ -599,7 +599,7 @@ fn fast_reject_auto_impl<'tcx>(tcx: TyCtxt<'tcx>, trait_def_id: DefId, self_ty:
599599

600600
ControlFlow::Continue(())
601601
}
602-
_ => t.super_visit_with(self),
602+
_ => ty.super_visit_with(self),
603603
}
604604
}
605605
}

compiler/rustc_middle/src/ty/fast_reject.rs

Lines changed: 57 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,33 @@ use std::fmt::Debug;
66
use std::hash::Hash;
77
use std::iter;
88

9-
use self::SimplifiedType::*;
10-
119
/// See `simplify_type`.
1210
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, TyEncodable, TyDecodable, HashStable)]
1311
pub enum SimplifiedType {
14-
BoolSimplifiedType,
15-
CharSimplifiedType,
16-
IntSimplifiedType(ty::IntTy),
17-
UintSimplifiedType(ty::UintTy),
18-
FloatSimplifiedType(ty::FloatTy),
19-
AdtSimplifiedType(DefId),
20-
ForeignSimplifiedType(DefId),
21-
StrSimplifiedType,
22-
ArraySimplifiedType,
23-
SliceSimplifiedType,
24-
RefSimplifiedType(Mutability),
25-
PtrSimplifiedType(Mutability),
26-
NeverSimplifiedType,
27-
TupleSimplifiedType(usize),
12+
Bool,
13+
Char,
14+
Int(ty::IntTy),
15+
Uint(ty::UintTy),
16+
Float(ty::FloatTy),
17+
Adt(DefId),
18+
Foreign(DefId),
19+
Str,
20+
Array,
21+
Slice,
22+
Ref(Mutability),
23+
Ptr(Mutability),
24+
Never,
25+
Tuple(usize),
2826
/// A trait object, all of whose components are markers
2927
/// (e.g., `dyn Send + Sync`).
30-
MarkerTraitObjectSimplifiedType,
31-
TraitSimplifiedType(DefId),
32-
ClosureSimplifiedType(DefId),
33-
GeneratorSimplifiedType(DefId),
34-
GeneratorWitnessSimplifiedType(usize),
35-
GeneratorWitnessMIRSimplifiedType(DefId),
36-
FunctionSimplifiedType(usize),
37-
PlaceholderSimplifiedType,
28+
MarkerTraitObject,
29+
Trait(DefId),
30+
Closure(DefId),
31+
Generator(DefId),
32+
GeneratorWitness(usize),
33+
GeneratorWitnessMIR(DefId),
34+
Function(usize),
35+
Placeholder,
3836
}
3937

4038
/// Generic parameters are pretty much just bound variables, e.g.
@@ -110,34 +108,36 @@ pub fn simplify_type<'tcx>(
110108
treat_params: TreatParams,
111109
) -> Option<SimplifiedType> {
112110
match *ty.kind() {
113-
ty::Bool => Some(BoolSimplifiedType),
114-
ty::Char => Some(CharSimplifiedType),
115-
ty::Int(int_type) => Some(IntSimplifiedType(int_type)),
116-
ty::Uint(uint_type) => Some(UintSimplifiedType(uint_type)),
117-
ty::Float(float_type) => Some(FloatSimplifiedType(float_type)),
118-
ty::Adt(def, _) => Some(AdtSimplifiedType(def.did())),
119-
ty::Str => Some(StrSimplifiedType),
120-
ty::Array(..) => Some(ArraySimplifiedType),
121-
ty::Slice(..) => Some(SliceSimplifiedType),
122-
ty::RawPtr(ptr) => Some(PtrSimplifiedType(ptr.mutbl)),
111+
ty::Bool => Some(SimplifiedType::Bool),
112+
ty::Char => Some(SimplifiedType::Char),
113+
ty::Int(int_type) => Some(SimplifiedType::Int(int_type)),
114+
ty::Uint(uint_type) => Some(SimplifiedType::Uint(uint_type)),
115+
ty::Float(float_type) => Some(SimplifiedType::Float(float_type)),
116+
ty::Adt(def, _) => Some(SimplifiedType::Adt(def.did())),
117+
ty::Str => Some(SimplifiedType::Str),
118+
ty::Array(..) => Some(SimplifiedType::Array),
119+
ty::Slice(..) => Some(SimplifiedType::Slice),
120+
ty::RawPtr(ptr) => Some(SimplifiedType::Ptr(ptr.mutbl)),
123121
ty::Dynamic(trait_info, ..) => match trait_info.principal_def_id() {
124122
Some(principal_def_id) if !tcx.trait_is_auto(principal_def_id) => {
125-
Some(TraitSimplifiedType(principal_def_id))
123+
Some(SimplifiedType::Trait(principal_def_id))
126124
}
127-
_ => Some(MarkerTraitObjectSimplifiedType),
125+
_ => Some(SimplifiedType::MarkerTraitObject),
128126
},
129-
ty::Ref(_, _, mutbl) => Some(RefSimplifiedType(mutbl)),
130-
ty::FnDef(def_id, _) | ty::Closure(def_id, _) => Some(ClosureSimplifiedType(def_id)),
131-
ty::Generator(def_id, _, _) => Some(GeneratorSimplifiedType(def_id)),
132-
ty::GeneratorWitness(tys) => Some(GeneratorWitnessSimplifiedType(tys.skip_binder().len())),
133-
ty::GeneratorWitnessMIR(def_id, _) => Some(GeneratorWitnessMIRSimplifiedType(def_id)),
134-
ty::Never => Some(NeverSimplifiedType),
135-
ty::Tuple(tys) => Some(TupleSimplifiedType(tys.len())),
136-
ty::FnPtr(f) => Some(FunctionSimplifiedType(f.skip_binder().inputs().len())),
137-
ty::Placeholder(..) => Some(PlaceholderSimplifiedType),
127+
ty::Ref(_, _, mutbl) => Some(SimplifiedType::Ref(mutbl)),
128+
ty::FnDef(def_id, _) | ty::Closure(def_id, _) => Some(SimplifiedType::Closure(def_id)),
129+
ty::Generator(def_id, _, _) => Some(SimplifiedType::Generator(def_id)),
130+
ty::GeneratorWitness(tys) => {
131+
Some(SimplifiedType::GeneratorWitness(tys.skip_binder().len()))
132+
}
133+
ty::GeneratorWitnessMIR(def_id, _) => Some(SimplifiedType::GeneratorWitnessMIR(def_id)),
134+
ty::Never => Some(SimplifiedType::Never),
135+
ty::Tuple(tys) => Some(SimplifiedType::Tuple(tys.len())),
136+
ty::FnPtr(f) => Some(SimplifiedType::Function(f.skip_binder().inputs().len())),
137+
ty::Placeholder(..) => Some(SimplifiedType::Placeholder),
138138
ty::Param(_) => match treat_params {
139139
TreatParams::ForLookup | TreatParams::NextSolverLookup => {
140-
Some(PlaceholderSimplifiedType)
140+
Some(SimplifiedType::Placeholder)
141141
}
142142
TreatParams::AsCandidateKey => None,
143143
},
@@ -147,24 +147,26 @@ pub fn simplify_type<'tcx>(
147147
//
148148
// We will have to be careful with lazy normalization here.
149149
// FIXME(lazy_normalization): This is probably not right...
150-
TreatParams::ForLookup if !ty.has_non_region_infer() => Some(PlaceholderSimplifiedType),
151-
TreatParams::NextSolverLookup => Some(PlaceholderSimplifiedType),
150+
TreatParams::ForLookup if !ty.has_non_region_infer() => {
151+
Some(SimplifiedType::Placeholder)
152+
}
153+
TreatParams::NextSolverLookup => Some(SimplifiedType::Placeholder),
152154
TreatParams::ForLookup | TreatParams::AsCandidateKey => None,
153155
},
154-
ty::Foreign(def_id) => Some(ForeignSimplifiedType(def_id)),
156+
ty::Foreign(def_id) => Some(SimplifiedType::Foreign(def_id)),
155157
ty::Bound(..) | ty::Infer(_) | ty::Error(_) => None,
156158
}
157159
}
158160

159161
impl SimplifiedType {
160162
pub fn def(self) -> Option<DefId> {
161163
match self {
162-
AdtSimplifiedType(d)
163-
| ForeignSimplifiedType(d)
164-
| TraitSimplifiedType(d)
165-
| ClosureSimplifiedType(d)
166-
| GeneratorSimplifiedType(d)
167-
| GeneratorWitnessMIRSimplifiedType(d) => Some(d),
164+
SimplifiedType::Adt(d)
165+
| SimplifiedType::Foreign(d)
166+
| SimplifiedType::Trait(d)
167+
| SimplifiedType::Closure(d)
168+
| SimplifiedType::Generator(d)
169+
| SimplifiedType::GeneratorWitnessMIR(d) => Some(d),
168170
_ => None,
169171
}
170172
}

compiler/rustc_trait_selection/src/solve/trait_goals.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
686686
| ty::Tuple(_)
687687
| ty::Adt(_, _)
688688
// FIXME: Handling opaques here is kinda sus. Especially because we
689-
// simplify them to PlaceholderSimplifiedType.
689+
// simplify them to SimplifiedType::Placeholder.
690690
| ty::Alias(ty::Opaque, _) => {
691691
let mut disqualifying_impl = None;
692692
self.tcx().for_each_relevant_impl_treating_projections(

src/librustdoc/clean/inline.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use rustc_hir::def::{DefKind, Res};
1212
use rustc_hir::def_id::{DefId, DefIdSet, LocalDefId};
1313
use rustc_hir::Mutability;
1414
use rustc_metadata::creader::{CStore, LoadedMacro};
15+
use rustc_middle::ty::fast_reject::SimplifiedType;
1516
use rustc_middle::ty::{self, TyCtxt};
1617
use rustc_span::hygiene::MacroKind;
1718
use rustc_span::symbol::{kw, sym, Symbol};
@@ -314,9 +315,8 @@ pub(crate) fn build_impls(
314315
// * https://github.com/rust-lang/rust/pull/99917 — where the feature got used
315316
// * https://github.com/rust-lang/rust/issues/53487 — overall tracking issue for Error
316317
if tcx.has_attr(did, sym::rustc_has_incoherent_inherent_impls) {
317-
use rustc_middle::ty::fast_reject::SimplifiedType::*;
318318
let type_ =
319-
if tcx.is_trait(did) { TraitSimplifiedType(did) } else { AdtSimplifiedType(did) };
319+
if tcx.is_trait(did) { SimplifiedType::Trait(did) } else { SimplifiedType::Adt(did) };
320320
for &did in tcx.incoherent_impls(type_) {
321321
build_impl(cx, did, attrs, ret);
322322
}

src/librustdoc/clean/types.rs

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1776,46 +1776,45 @@ impl PrimitiveType {
17761776
}
17771777

17781778
pub(crate) fn simplified_types() -> &'static SimplifiedTypes {
1779-
use ty::fast_reject::SimplifiedType::*;
17801779
use ty::{FloatTy, IntTy, UintTy};
17811780
use PrimitiveType::*;
17821781
static CELL: OnceCell<SimplifiedTypes> = OnceCell::new();
17831782

17841783
let single = |x| iter::once(x).collect();
17851784
CELL.get_or_init(move || {
17861785
map! {
1787-
Isize => single(IntSimplifiedType(IntTy::Isize)),
1788-
I8 => single(IntSimplifiedType(IntTy::I8)),
1789-
I16 => single(IntSimplifiedType(IntTy::I16)),
1790-
I32 => single(IntSimplifiedType(IntTy::I32)),
1791-
I64 => single(IntSimplifiedType(IntTy::I64)),
1792-
I128 => single(IntSimplifiedType(IntTy::I128)),
1793-
Usize => single(UintSimplifiedType(UintTy::Usize)),
1794-
U8 => single(UintSimplifiedType(UintTy::U8)),
1795-
U16 => single(UintSimplifiedType(UintTy::U16)),
1796-
U32 => single(UintSimplifiedType(UintTy::U32)),
1797-
U64 => single(UintSimplifiedType(UintTy::U64)),
1798-
U128 => single(UintSimplifiedType(UintTy::U128)),
1799-
F32 => single(FloatSimplifiedType(FloatTy::F32)),
1800-
F64 => single(FloatSimplifiedType(FloatTy::F64)),
1801-
Str => single(StrSimplifiedType),
1802-
Bool => single(BoolSimplifiedType),
1803-
Char => single(CharSimplifiedType),
1804-
Array => single(ArraySimplifiedType),
1805-
Slice => single(SliceSimplifiedType),
1786+
Isize => single(SimplifiedType::Int(IntTy::Isize)),
1787+
I8 => single(SimplifiedType::Int(IntTy::I8)),
1788+
I16 => single(SimplifiedType::Int(IntTy::I16)),
1789+
I32 => single(SimplifiedType::Int(IntTy::I32)),
1790+
I64 => single(SimplifiedType::Int(IntTy::I64)),
1791+
I128 => single(SimplifiedType::Int(IntTy::I128)),
1792+
Usize => single(SimplifiedType::Uint(UintTy::Usize)),
1793+
U8 => single(SimplifiedType::Uint(UintTy::U8)),
1794+
U16 => single(SimplifiedType::Uint(UintTy::U16)),
1795+
U32 => single(SimplifiedType::Uint(UintTy::U32)),
1796+
U64 => single(SimplifiedType::Uint(UintTy::U64)),
1797+
U128 => single(SimplifiedType::Uint(UintTy::U128)),
1798+
F32 => single(SimplifiedType::Float(FloatTy::F32)),
1799+
F64 => single(SimplifiedType::Float(FloatTy::F64)),
1800+
Str => single(SimplifiedType::Str),
1801+
Bool => single(SimplifiedType::Bool),
1802+
Char => single(SimplifiedType::Char),
1803+
Array => single(SimplifiedType::Array),
1804+
Slice => single(SimplifiedType::Slice),
18061805
// FIXME: If we ever add an inherent impl for tuples
18071806
// with different lengths, they won't show in rustdoc.
18081807
//
18091808
// Either manually update this arrayvec at this point
18101809
// or start with a more complex refactoring.
1811-
Tuple => [TupleSimplifiedType(1), TupleSimplifiedType(2), TupleSimplifiedType(3)].into(),
1812-
Unit => single(TupleSimplifiedType(0)),
1813-
RawPointer => [PtrSimplifiedType(Mutability::Not), PtrSimplifiedType(Mutability::Mut)].into_iter().collect(),
1814-
Reference => [RefSimplifiedType(Mutability::Not), RefSimplifiedType(Mutability::Mut)].into_iter().collect(),
1810+
Tuple => [SimplifiedType::Tuple(1), SimplifiedType::Tuple(2), SimplifiedType::Tuple(3)].into(),
1811+
Unit => single(SimplifiedType::Tuple(0)),
1812+
RawPointer => [SimplifiedType::Ptr(Mutability::Not), SimplifiedType::Ptr(Mutability::Mut)].into_iter().collect(),
1813+
Reference => [SimplifiedType::Ref(Mutability::Not), SimplifiedType::Ref(Mutability::Mut)].into_iter().collect(),
18151814
// FIXME: This will be wrong if we ever add inherent impls
18161815
// for function pointers.
1817-
Fn => single(FunctionSimplifiedType(1)),
1818-
Never => single(NeverSimplifiedType),
1816+
Fn => single(SimplifiedType::Function(1)),
1817+
Never => single(SimplifiedType::Never),
18191818
}
18201819
})
18211820
}

src/tools/clippy/clippy_lints/src/utils/internal_lints/invalid_paths.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ pub fn check_path(cx: &LateContext<'_>, path: &[&str]) -> bool {
7474
let lang_items = cx.tcx.lang_items();
7575
// This list isn't complete, but good enough for our current list of paths.
7676
let incoherent_impls = [
77-
SimplifiedType::FloatSimplifiedType(FloatTy::F32),
78-
SimplifiedType::FloatSimplifiedType(FloatTy::F64),
79-
SimplifiedType::SliceSimplifiedType,
80-
SimplifiedType::StrSimplifiedType,
77+
SimplifiedType::Float(FloatTy::F32),
78+
SimplifiedType::Float(FloatTy::F64),
79+
SimplifiedType::Slice,
80+
SimplifiedType::Str,
8181
]
8282
.iter()
8383
.flat_map(|&ty| cx.tcx.incoherent_impls(ty).iter().copied());

src/tools/clippy/clippy_utils/src/lib.rs

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,7 @@ use rustc_middle::mir::ConstantKind;
100100
use rustc_middle::ty as rustc_ty;
101101
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow};
102102
use rustc_middle::ty::binding::BindingMode;
103-
use rustc_middle::ty::fast_reject::SimplifiedType::{
104-
ArraySimplifiedType, BoolSimplifiedType, CharSimplifiedType, FloatSimplifiedType, IntSimplifiedType,
105-
PtrSimplifiedType, SliceSimplifiedType, StrSimplifiedType, UintSimplifiedType,
106-
};
103+
use rustc_middle::ty::fast_reject::SimplifiedType;
107104
use rustc_middle::ty::layout::IntegerExt;
108105
use rustc_middle::ty::{
109106
BorrowKind, ClosureKind, FloatTy, IntTy, Ty, TyCtxt, TypeAndMut, TypeVisitableExt, UintTy, UpvarCapture,
@@ -512,30 +509,30 @@ pub fn path_def_id<'tcx>(cx: &LateContext<'_>, maybe_path: &impl MaybePath<'tcx>
512509

513510
fn find_primitive_impls<'tcx>(tcx: TyCtxt<'tcx>, name: &str) -> impl Iterator<Item = DefId> + 'tcx {
514511
let ty = match name {
515-
"bool" => BoolSimplifiedType,
516-
"char" => CharSimplifiedType,
517-
"str" => StrSimplifiedType,
518-
"array" => ArraySimplifiedType,
519-
"slice" => SliceSimplifiedType,
512+
"bool" => SimplifiedType::Bool,
513+
"char" => SimplifiedType::Char,
514+
"str" => SimplifiedType::Str,
515+
"array" => SimplifiedType::Array,
516+
"slice" => SimplifiedType::Slice,
520517
// FIXME: rustdoc documents these two using just `pointer`.
521518
//
522519
// Maybe this is something we should do here too.
523-
"const_ptr" => PtrSimplifiedType(Mutability::Not),
524-
"mut_ptr" => PtrSimplifiedType(Mutability::Mut),
525-
"isize" => IntSimplifiedType(IntTy::Isize),
526-
"i8" => IntSimplifiedType(IntTy::I8),
527-
"i16" => IntSimplifiedType(IntTy::I16),
528-
"i32" => IntSimplifiedType(IntTy::I32),
529-
"i64" => IntSimplifiedType(IntTy::I64),
530-
"i128" => IntSimplifiedType(IntTy::I128),
531-
"usize" => UintSimplifiedType(UintTy::Usize),
532-
"u8" => UintSimplifiedType(UintTy::U8),
533-
"u16" => UintSimplifiedType(UintTy::U16),
534-
"u32" => UintSimplifiedType(UintTy::U32),
535-
"u64" => UintSimplifiedType(UintTy::U64),
536-
"u128" => UintSimplifiedType(UintTy::U128),
537-
"f32" => FloatSimplifiedType(FloatTy::F32),
538-
"f64" => FloatSimplifiedType(FloatTy::F64),
520+
"const_ptr" => SimplifiedType::Ptr(Mutability::Not),
521+
"mut_ptr" => SimplifiedType::Ptr(Mutability::Mut),
522+
"isize" => SimplifiedType::Int(IntTy::Isize),
523+
"i8" => SimplifiedType::Int(IntTy::I8),
524+
"i16" => SimplifiedType::Int(IntTy::I16),
525+
"i32" => SimplifiedType::Int(IntTy::I32),
526+
"i64" => SimplifiedType::Int(IntTy::I64),
527+
"i128" => SimplifiedType::Int(IntTy::I128),
528+
"usize" => SimplifiedType::Uint(UintTy::Usize),
529+
"u8" => SimplifiedType::Uint(UintTy::U8),
530+
"u16" => SimplifiedType::Uint(UintTy::U16),
531+
"u32" => SimplifiedType::Uint(UintTy::U32),
532+
"u64" => SimplifiedType::Uint(UintTy::U64),
533+
"u128" => SimplifiedType::Uint(UintTy::U128),
534+
"f32" => SimplifiedType::Float(FloatTy::F32),
535+
"f64" => SimplifiedType::Float(FloatTy::F64),
539536
_ => return [].iter().copied(),
540537
};
541538

0 commit comments

Comments
 (0)