Skip to content

Commit e1a236d

Browse files
committed
Simplify
1 parent f9c59d3 commit e1a236d

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

crates/hir_ty/src/lower.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ impl<'a> TyLoweringContext<'a> {
9696
debruijn: DebruijnIndex,
9797
f: impl FnOnce(&TyLoweringContext) -> T,
9898
) -> T {
99-
let opaque_ty_data_vec = self.opaque_type_data.replace(Vec::new());
100-
let expander = self.expander.replace(None);
101-
let unsized_types = self.unsized_types.replace(Default::default());
99+
let opaque_ty_data_vec = self.opaque_type_data.take();
100+
let expander = self.expander.take();
101+
let unsized_types = self.unsized_types.take();
102102
let new_ctx = Self {
103103
in_binders: debruijn,
104104
impl_trait_counter: Cell::new(self.impl_trait_counter.get()),
@@ -615,7 +615,7 @@ impl<'a> TyLoweringContext<'a> {
615615
// `Option::None::<T>` are both allowed (though the former is
616616
// preferred). See also `def_ids_for_path_segments` in rustc.
617617
let len = path.segments().len();
618-
let penultimate = if len >= 2 { path.segments().get(len - 2) } else { None };
618+
let penultimate = len.checked_sub(2).and_then(|idx| path.segments().get(idx));
619619
let segment = match penultimate {
620620
Some(segment) if segment.args_and_bindings.is_some() => segment,
621621
_ => last,
@@ -841,23 +841,23 @@ impl<'a> TyLoweringContext<'a> {
841841
};
842842
last_segment
843843
.into_iter()
844-
.flat_map(|segment| segment.args_and_bindings.into_iter())
845-
.flat_map(|args_and_bindings| args_and_bindings.bindings.iter())
844+
.filter_map(|segment| segment.args_and_bindings)
845+
.flat_map(|args_and_bindings| &args_and_bindings.bindings)
846846
.flat_map(move |binding| {
847847
let found = associated_type_by_name_including_super_traits(
848848
self.db,
849849
trait_ref.clone(),
850850
&binding.name,
851851
);
852852
let (super_trait_ref, associated_ty) = match found {
853-
None => return SmallVec::<[QuantifiedWhereClause; 1]>::new(),
853+
None => return SmallVec::new(),
854854
Some(t) => t,
855855
};
856856
let projection_ty = ProjectionTy {
857857
associated_ty_id: to_assoc_type_id(associated_ty),
858858
substitution: super_trait_ref.substitution,
859859
};
860-
let mut preds = SmallVec::with_capacity(
860+
let mut preds: SmallVec<[_; 1]> = SmallVec::with_capacity(
861861
binding.type_ref.as_ref().map_or(0, |_| 1) + binding.bounds.len(),
862862
);
863863
if let Some(type_ref) = &binding.type_ref {

0 commit comments

Comments
 (0)