提交 44d32d44 编写于 作者: L ljedrz

Avoid unnecessary pattern matching against Option and Result

上级 11a90243
......@@ -681,10 +681,7 @@ pub fn evaluate_nested_obligations<
}
}
&ty::Predicate::RegionOutlives(ref binder) => {
if let Err(_) = select
.infcx()
.region_outlives_predicate(&dummy_cause, binder)
{
if select.infcx().region_outlives_predicate(&dummy_cause, binder).is_err() {
return false;
}
}
......
......@@ -143,7 +143,7 @@ fn error_implies(&self,
// Eventually I'll need to implement param-env-aware
// `Γ₁ ⊦ φ₁ => Γ₂ ⊦ φ₂` logic.
let param_env = ty::ParamEnv::empty();
if let Ok(_) = self.can_sub(param_env, error, implication) {
if self.can_sub(param_env, error, implication).is_ok() {
debug!("error_implies: {:?} -> {:?} -> {:?}", cond, error, implication);
return true
}
......
......@@ -137,7 +137,7 @@ pub fn implied_outlives_bounds(
// variables. Process these constraints.
let mut fulfill_cx = FulfillmentContext::new();
fulfill_cx.register_predicate_obligations(self, result.obligations);
if let Err(_) = fulfill_cx.select_all_or_error(self) {
if fulfill_cx.select_all_or_error(self).is_err() {
self.tcx.sess.delay_span_bug(
span,
"implied_outlives_bounds failed to solve obligations from instantiation"
......
......@@ -1587,8 +1587,8 @@ fn match_projection(&mut self,
-> bool
{
assert!(!skol_trait_ref.has_escaping_regions());
if let Err(_) = self.infcx.at(&obligation.cause, obligation.param_env)
.sup(ty::Binder::dummy(skol_trait_ref), trait_bound) {
if self.infcx.at(&obligation.cause, obligation.param_env)
.sup(ty::Binder::dummy(skol_trait_ref), trait_bound).is_err() {
return false;
}
......
......@@ -294,7 +294,7 @@ fn resolve_associated_item<'a, 'tcx>(
})
}
traits::VtableBuiltin(..) => {
if let Some(_) = tcx.lang_items().clone_trait() {
if tcx.lang_items().clone_trait().is_some() {
Some(Instance {
def: ty::InstanceDef::CloneShim(def_id, trait_ref.self_ty()),
substs: rcvr_substs
......
......@@ -1295,7 +1295,7 @@ fn emit_suggestion_default(&mut self,
}
// if we elided some lines, add an ellipsis
if let Some(_) = lines.next() {
if lines.next().is_some() {
buffer.puts(row_num, max_line_num_len - 1, "...", Style::LineNumber);
} else if !show_underline {
draw_col_separator_no_space(&mut buffer, row_num, max_line_num_len + 1);
......
......@@ -138,7 +138,7 @@ pub(super) fn report_use_of_moved_or_uninitialized(
let tables = self.tcx.typeck_tables_of(id);
let node_id = self.tcx.hir.as_local_node_id(id).unwrap();
let hir_id = self.tcx.hir.node_to_hir_id(node_id);
if let Some(_) = tables.closure_kind_origins().get(hir_id) {
if tables.closure_kind_origins().get(hir_id).is_some() {
false
} else {
true
......@@ -735,7 +735,7 @@ fn append_place_to_string(
&including_downcast,
)?;
buf.push_str("[");
if let Err(_) = self.append_local_to_string(index, buf) {
if self.append_local_to_string(index, buf).is_err() {
buf.push_str("..");
}
buf.push_str("]");
......
......@@ -2698,7 +2698,7 @@ fn resolve_block(&mut self, block: &Block) {
self.label_ribs.pop();
}
self.ribs[ValueNS].pop();
if let Some(_) = anonymous_module {
if anonymous_module.is_some() {
self.ribs[TypeNS].pop();
}
debug!("(resolving block) leaving block");
......@@ -4254,7 +4254,7 @@ fn find_module(&mut self,
while let Some((in_module, path_segments)) = worklist.pop() {
// abort if the module is already found
if let Some(_) = result { break; }
if result.is_some() { break; }
self.populate_module_if_necessary(in_module);
......
......@@ -39,7 +39,7 @@ pub struct WriteOutput<'b, W: Write + 'b> {
impl<'b, W: Write> DumpOutput for WriteOutput<'b, W> {
fn dump(&mut self, result: &Analysis) {
if let Err(_) = write!(self.output, "{}", as_json(&result)) {
if write!(self.output, "{}", as_json(&result)).is_err() {
error!("Error writing output");
}
}
......
......@@ -758,8 +758,9 @@ pub fn matches_return_type(&self,
self.span, infer::FnCall, &fty);
if let Some(self_ty) = self_ty {
if let Err(_) = self.at(&ObligationCause::dummy(), self.param_env)
.sup(fty.inputs()[0], self_ty)
if self.at(&ObligationCause::dummy(), self.param_env)
.sup(fty.inputs()[0], self_ty)
.is_err()
{
return false
}
......
......@@ -3915,7 +3915,7 @@ fn check_expr_kind(&self,
}
hir::ExprKind::Continue(destination) => {
if let Ok(_) = destination.target_id {
if destination.target_id.is_ok() {
tcx.types.never
} else {
// There was an error, make typecheck fail
......
......@@ -486,7 +486,7 @@ pub fn run_core(search_paths: SearchPaths,
&name,
&output_filenames,
|tcx, analysis, _, result| {
if let Err(_) = result {
if result.is_err() {
sess.fatal("Compilation failed, aborting rustdoc");
}
......
......@@ -44,7 +44,7 @@ pub fn render_with_highlighting(src: &str, class: Option<&str>,
write_header(class, &mut out).unwrap();
let mut classifier = Classifier::new(lexer::StringReader::new(&sess, fm, None), sess.codemap());
if let Err(_) = classifier.write_source(&mut out) {
if classifier.write_source(&mut out).is_err() {
return format!("<pre>{}</pre>", src);
}
......
......@@ -625,7 +625,7 @@ fn parse(string: &str, allow_error_code_check: ErrorCodes) -> LangString {
data.no_run = true;
}
x if allow_error_code_check && x.starts_with("E") && x.len() == 5 => {
if let Ok(_) = x[1..].parse::<u32>() {
if x[1..].parse::<u32>().is_ok() {
data.error_codes.push(x.to_owned());
seen_rust_tags = !seen_other_tags || seen_rust_tags;
} else {
......
......@@ -631,7 +631,7 @@ fn path_name_i(idents: &[Ident]) -> String {
let mut idents_iter = idents.iter().peekable();
while let Some(ident) = idents_iter.next() {
path_name.push_str(&ident.as_str());
if let Some(_) = idents_iter.peek() {
if idents_iter.peek().is_some() {
path_name.push_str("::")
}
}
......
......@@ -81,7 +81,7 @@ pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt,
}
};
if let Some(_) = exprs.next() {
if exprs.next().is_some() {
cx.span_err(sp, "env! takes 1 or 2 arguments");
return DummyResult::expr(sp);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册