remove useless ?s (clippy::needless_question_marks)

Example code:
```
fn opts() -> Option<String> {
    let s: Option<String> = Some(String::new());
    Some(s?) // this can just be "s"
}
```
This commit is contained in:
Matthias Krüger 2021-02-17 23:23:57 +01:00
parent 5ef21063f0
commit f7b834831f
7 changed files with 11 additions and 18 deletions

View file

@ -507,12 +507,7 @@ impl<'cx, 'tcx> InferCtxt<'cx, 'tcx> {
// Unify the original value for each variable with the value // Unify the original value for each variable with the value
// taken from `query_response` (after applying `result_subst`). // taken from `query_response` (after applying `result_subst`).
Ok(self.unify_canonical_vars( self.unify_canonical_vars(cause, param_env, original_values, substituted_query_response)
cause,
param_env,
original_values,
substituted_query_response,
)?)
} }
/// Converts the region constraints resulting from a query into an /// Converts the region constraints resulting from a query into an

View file

@ -253,7 +253,7 @@ impl<'tcx, D: TyDecoder<'tcx>> Decodable<D> for SubstsRef<'tcx> {
fn decode(decoder: &mut D) -> Result<Self, D::Error> { fn decode(decoder: &mut D) -> Result<Self, D::Error> {
let len = decoder.read_usize()?; let len = decoder.read_usize()?;
let tcx = decoder.tcx(); let tcx = decoder.tcx();
Ok(tcx.mk_substs((0..len).map(|_| Decodable::decode(decoder)))?) tcx.mk_substs((0..len).map(|_| Decodable::decode(decoder)))
} }
} }
@ -314,7 +314,7 @@ impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D> for ty::AdtDef {
impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D> for ty::List<Ty<'tcx>> { impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D> for ty::List<Ty<'tcx>> {
fn decode(decoder: &mut D) -> Result<&'tcx Self, D::Error> { fn decode(decoder: &mut D) -> Result<&'tcx Self, D::Error> {
let len = decoder.read_usize()?; let len = decoder.read_usize()?;
Ok(decoder.tcx().mk_type_list((0..len).map(|_| Decodable::decode(decoder)))?) decoder.tcx().mk_type_list((0..len).map(|_| Decodable::decode(decoder)))
} }
} }
@ -323,9 +323,7 @@ impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D>
{ {
fn decode(decoder: &mut D) -> Result<&'tcx Self, D::Error> { fn decode(decoder: &mut D) -> Result<&'tcx Self, D::Error> {
let len = decoder.read_usize()?; let len = decoder.read_usize()?;
Ok(decoder decoder.tcx().mk_poly_existential_predicates((0..len).map(|_| Decodable::decode(decoder)))
.tcx()
.mk_poly_existential_predicates((0..len).map(|_| Decodable::decode(decoder)))?)
} }
} }

View file

@ -607,7 +607,7 @@ pub trait PrettyPrinter<'tcx>:
return Ok(self); return Ok(self);
} }
return Ok(with_no_queries(|| { return with_no_queries(|| {
let def_key = self.tcx().def_key(def_id); let def_key = self.tcx().def_key(def_id);
if let Some(name) = def_key.disambiguated_data.data.get_opt_name() { if let Some(name) = def_key.disambiguated_data.data.get_opt_name() {
p!(write("{}", name)); p!(write("{}", name));
@ -649,7 +649,7 @@ pub trait PrettyPrinter<'tcx>:
p!(" Sized"); p!(" Sized");
} }
Ok(self) Ok(self)
})?); });
} }
ty::Str => p!("str"), ty::Str => p!("str"),
ty::Generator(did, substs, movability) => { ty::Generator(did, substs, movability) => {

View file

@ -154,7 +154,7 @@ pub fn relate_substs<R: TypeRelation<'tcx>>(
relation.relate_with_variance(variance, a, b) relation.relate_with_variance(variance, a, b)
}); });
Ok(tcx.mk_substs(params)?) tcx.mk_substs(params)
} }
impl<'tcx> Relate<'tcx> for ty::FnSig<'tcx> { impl<'tcx> Relate<'tcx> for ty::FnSig<'tcx> {
@ -647,7 +647,7 @@ impl<'tcx> Relate<'tcx> for &'tcx ty::List<ty::Binder<ty::ExistentialPredicate<'
_ => Err(TypeError::ExistentialMismatch(expected_found(relation, a, b))), _ => Err(TypeError::ExistentialMismatch(expected_found(relation, a, b))),
} }
}); });
Ok(tcx.mk_poly_existential_predicates(v)?) tcx.mk_poly_existential_predicates(v)
} }
} }

View file

@ -118,7 +118,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
.get_raw(vtable_slot.alloc_id)? .get_raw(vtable_slot.alloc_id)?
.read_ptr_sized(self, vtable_slot)? .read_ptr_sized(self, vtable_slot)?
.check_init()?; .check_init()?;
Ok(self.memory.get_fn(fn_ptr)?) self.memory.get_fn(fn_ptr)
} }
/// Returns the drop fn instance as well as the actual dynamic type. /// Returns the drop fn instance as well as the actual dynamic type.

View file

@ -43,7 +43,7 @@ where
info!("fully_perform({:?})", self); info!("fully_perform({:?})", self);
} }
scrape_region_constraints(infcx, || Ok((self.closure)(infcx)?)) scrape_region_constraints(infcx, || (self.closure)(infcx))
} }
} }

View file

@ -1141,7 +1141,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
let trait_def_ids: FxHashSet<DefId> = param let trait_def_ids: FxHashSet<DefId> = param
.bounds .bounds
.iter() .iter()
.filter_map(|bound| Some(bound.trait_ref()?.trait_def_id()?)) .filter_map(|bound| bound.trait_ref()?.trait_def_id())
.collect(); .collect();
if !candidates.iter().any(|t| trait_def_ids.contains(&t.def_id)) { if !candidates.iter().any(|t| trait_def_ids.contains(&t.def_id)) {
err.span_suggestions( err.span_suggestions(