1
Fork 0

Use Option::map instead of open-coding it

This commit is contained in:
LingMan 2020-12-30 18:22:41 +01:00
parent efdb859dcd
commit 76003f31f1
3 changed files with 17 additions and 25 deletions

View file

@ -254,8 +254,6 @@ pub fn handle_native_features(sess: &Session) -> Vec<String> {
} }
pub fn tune_cpu(sess: &Session) -> Option<&str> { pub fn tune_cpu(sess: &Session) -> Option<&str> {
match sess.opts.debugging_opts.tune_cpu { let name = sess.opts.debugging_opts.tune_cpu.as_ref()?;
Some(ref s) => Some(handle_native(&**s)), Some(handle_native(name))
None => None,
}
} }

View file

@ -39,10 +39,8 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
user_provided_sig = None; user_provided_sig = None;
} else { } else {
let typeck_results = self.tcx().typeck(mir_def_id); let typeck_results = self.tcx().typeck(mir_def_id);
user_provided_sig = match typeck_results.user_provided_sigs.get(&mir_def_id.to_def_id()) user_provided_sig = typeck_results.user_provided_sigs.get(&mir_def_id.to_def_id()).map(
{ |user_provided_poly_sig| {
None => None,
Some(user_provided_poly_sig) => {
// Instantiate the canonicalized variables from // Instantiate the canonicalized variables from
// user-provided signature (e.g., the `_` in the code // user-provided signature (e.g., the `_` in the code
// above) with fresh variables. // above) with fresh variables.
@ -54,18 +52,16 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
// Replace the bound items in the fn sig with fresh // Replace the bound items in the fn sig with fresh
// variables, so that they represent the view from // variables, so that they represent the view from
// "inside" the closure. // "inside" the closure.
Some(
self.infcx self.infcx
.replace_bound_vars_with_fresh_vars( .replace_bound_vars_with_fresh_vars(
body.span, body.span,
LateBoundRegionConversionTime::FnCall, LateBoundRegionConversionTime::FnCall,
poly_sig, poly_sig,
) )
.0, .0
) },
);
} }
}
};
debug!( debug!(
"equate_inputs_and_outputs: normalized_input_tys = {:?}, local_decls = {:?}", "equate_inputs_and_outputs: normalized_input_tys = {:?}, local_decls = {:?}",

View file

@ -365,12 +365,10 @@ fn check_region_bounds_on_impl_item<'tcx>(
let item_kind = assoc_item_kind_str(impl_m); let item_kind = assoc_item_kind_str(impl_m);
let def_span = tcx.sess.source_map().guess_head_span(span); let def_span = tcx.sess.source_map().guess_head_span(span);
let span = tcx.hir().get_generics(impl_m.def_id).map_or(def_span, |g| g.span); let span = tcx.hir().get_generics(impl_m.def_id).map_or(def_span, |g| g.span);
let generics_span = if let Some(sp) = tcx.hir().span_if_local(trait_m.def_id) { let generics_span = tcx.hir().span_if_local(trait_m.def_id).map(|sp| {
let def_sp = tcx.sess.source_map().guess_head_span(sp); let def_sp = tcx.sess.source_map().guess_head_span(sp);
Some(tcx.hir().get_generics(trait_m.def_id).map_or(def_sp, |g| g.span)) tcx.hir().get_generics(trait_m.def_id).map_or(def_sp, |g| g.span)
} else { });
None
};
tcx.sess.emit_err(LifetimesOrBoundsMismatchOnTrait { tcx.sess.emit_err(LifetimesOrBoundsMismatchOnTrait {
span, span,