X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustdoc%2Fscrape_examples.rs;h=10b6fdf87f41972c414708bfa452b91b8c9fe61e;hb=1e55c31cbbc43a21c93ed5652dc39c267e6557af;hp=3b39e3576e69a39d22f577b29dd3ab4c173feebf;hpb=3e97d9bd972e138b0aaf8fc697cdb8d181f43a1a;p=rust.git diff --git a/src/librustdoc/scrape_examples.rs b/src/librustdoc/scrape_examples.rs index 3b39e3576e6..10b6fdf87f4 100644 --- a/src/librustdoc/scrape_examples.rs +++ b/src/librustdoc/scrape_examples.rs @@ -142,16 +142,21 @@ fn visit_expr(&mut self, ex: &'tcx hir::Expr<'tcx>) { hir::ExprKind::Call(f, _) => { let types = tcx.typeck(ex.hir_id.owner); - match types.node_type_opt(f.hir_id) { - Some(ty) => (ty, ex.span), - None => { - return; - } + if let Some(ty) = types.node_type_opt(f.hir_id) { + (ty, ex.span) + } else { + trace!("node_type_opt({}) = None", f.hir_id); + return; } } hir::ExprKind::MethodCall(_, _, _, span) => { let types = tcx.typeck(ex.hir_id.owner); - let def_id = types.type_dependent_def_id(ex.hir_id).unwrap(); + let def_id = if let Some(def_id) = types.type_dependent_def_id(ex.hir_id) { + def_id + } else { + trace!("type_dependent_def_id({}) = None", ex.hir_id); + return; + }; (tcx.type_of(def_id), span) } _ => {