diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2021-01-05 09:52:42 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-05 09:52:42 +0900 |
| commit | faf8beddef859bbb387a24c536505d833c3821a5 (patch) | |
| tree | 68915ca2056946c6028a96f7bedc395e074964ff /compiler | |
| parent | 1c6593c473f2cd67a1199dac89fb0e6a811d26ab (diff) | |
| parent | 203d5025bb70b21a0f75235a8cec23c0b1b571a1 (diff) | |
| download | rust-faf8beddef859bbb387a24c536505d833c3821a5.tar.gz rust-faf8beddef859bbb387a24c536505d833c3821a5.zip | |
Rollup merge of #80637 - LingMan:filter, r=oli-obk
Use Option::filter instead of open-coding it `@rustbot` modify labels +C-cleanup +T-compiler
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs b/compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs index 373f0a602c0..e097264ec8a 100644 --- a/compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs +++ b/compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs @@ -43,22 +43,18 @@ impl<'a, 'tcx> FindHirNodeVisitor<'a, 'tcx> { } fn node_ty_contains_target(&mut self, hir_id: HirId) -> Option<Ty<'tcx>> { - let ty_opt = self - .infcx + self.infcx .in_progress_typeck_results - .and_then(|typeck_results| typeck_results.borrow().node_type_opt(hir_id)); - match ty_opt { - Some(ty) => { - let ty = self.infcx.resolve_vars_if_possible(ty); - if ty.walk().any(|inner| { + .and_then(|typeck_results| typeck_results.borrow().node_type_opt(hir_id)) + .map(|ty| self.infcx.resolve_vars_if_possible(ty)) + .filter(|ty| { + ty.walk().any(|inner| { inner == self.target || match (inner.unpack(), self.target.unpack()) { (GenericArgKind::Type(inner_ty), GenericArgKind::Type(target_ty)) => { + use ty::{Infer, TyVar}; match (inner_ty.kind(), target_ty.kind()) { - ( - &ty::Infer(ty::TyVar(a_vid)), - &ty::Infer(ty::TyVar(b_vid)), - ) => self + (&Infer(TyVar(a_vid)), &Infer(TyVar(b_vid))) => self .infcx .inner .borrow_mut() @@ -69,14 +65,8 @@ impl<'a, 'tcx> FindHirNodeVisitor<'a, 'tcx> { } _ => false, } - }) { - Some(ty) - } else { - None - } - } - None => None, - } + }) + }) } } |
