// constraint, and add it to our list. Since we make sure to never re-add
// deleted items, this process will always finish.
while !vid_map.is_empty() {
- let target = vid_map.keys().next().expect("Keys somehow empty").clone();
+ let target = *vid_map.keys().next().expect("Keys somehow empty");
let deps = vid_map.remove(&target).expect("Entry somehow missing");
for smaller in deps.smaller.iter() {
.filter(|p| {
!orig_bounds.contains(p)
|| match p {
- &&ty::Predicate::Trait(pred) => pred.def_id() == sized_trait,
+ ty::Predicate::Trait(pred, _) => pred.def_id() == sized_trait,
_ => false,
}
})
lifetime_to_bounds.entry(lifetime).or_default().extend(bounds);
}
WherePredicate::EqPredicate { lhs, rhs } => {
- match &lhs {
- &Type::QPath { name: ref left_name, ref self_type, ref trait_ } => {
+ match lhs {
+ Type::QPath { name: ref left_name, ref self_type, ref trait_ } => {
let ty = &*self_type;
match **trait_ {
Type::ResolvedPath {
continue;
}
- // FIXME: Remove this scope when NLL lands
- {
- let args = &mut new_trait_path
- .segments
- .last_mut()
- .expect("segments were empty")
- .args;
-
- match args {
- // Convert somethiung like '<T as Iterator::Item> = u8'
- // to 'T: Iterator<Item=u8>'
- &mut GenericArgs::AngleBracketed {
- ref mut bindings,
- ..
- } => {
- bindings.push(TypeBinding {
- name: left_name.clone(),
- kind: TypeBindingKind::Equality { ty: rhs },
- });
- }
- &mut GenericArgs::Parenthesized { .. } => {
- existing_predicates.push(
- WherePredicate::EqPredicate {
- lhs: lhs.clone(),
- rhs,
- },
- );
- continue; // If something other than a Fn ends up
- // with parenthesis, leave it alone
- }
+ let args = &mut new_trait_path
+ .segments
+ .last_mut()
+ .expect("segments were empty")
+ .args;
+
+ match args {
+ // Convert somethiung like '<T as Iterator::Item> = u8'
+ // to 'T: Iterator<Item=u8>'
+ GenericArgs::AngleBracketed {
+ ref mut bindings, ..
+ } => {
+ bindings.push(TypeBinding {
+ name: left_name.clone(),
+ kind: TypeBindingKind::Equality { ty: rhs },
+ });
+ }
+ GenericArgs::Parenthesized { .. } => {
+ existing_predicates.push(WherePredicate::EqPredicate {
+ lhs: lhs.clone(),
+ rhs,
+ });
+ continue; // If something other than a Fn ends up
+ // with parenthesis, leave it alone
}
}