Remove redundant in_trait from hir::TyKind::OpaqueDef
This commit is contained in:
parent
4891dd4627
commit
ce22fd34d9
|
@ -199,7 +199,7 @@ impl<'cx, 'tcx> Visitor<'tcx> for TypeWalker<'cx, 'tcx> {
|
||||||
fn visit_ty(&mut self, t: &'tcx Ty<'tcx>) {
|
fn visit_ty(&mut self, t: &'tcx Ty<'tcx>) {
|
||||||
if let Some((def_id, _)) = t.peel_refs().as_generic_param() {
|
if let Some((def_id, _)) = t.peel_refs().as_generic_param() {
|
||||||
self.ty_params.remove(&def_id);
|
self.ty_params.remove(&def_id);
|
||||||
} else if let TyKind::OpaqueDef(id, _, _) = t.kind {
|
} else if let TyKind::OpaqueDef(id, _) = t.kind {
|
||||||
// Explicitly walk OpaqueDef. Normally `walk_ty` would do the job, but it calls
|
// Explicitly walk OpaqueDef. Normally `walk_ty` would do the job, but it calls
|
||||||
// `visit_nested_item`, which checks that `Self::NestedFilter::INTER` is set. We're
|
// `visit_nested_item`, which checks that `Self::NestedFilter::INTER` is set. We're
|
||||||
// using `OnlyBodies`, so the check ends up failing and the type isn't fully walked.
|
// using `OnlyBodies`, so the check ends up failing and the type isn't fully walked.
|
||||||
|
|
|
@ -523,7 +523,7 @@ impl<'a, 'tcx> Visitor<'tcx> for RefVisitor<'a, 'tcx> {
|
||||||
|
|
||||||
fn visit_ty(&mut self, ty: &'tcx Ty<'_>) {
|
fn visit_ty(&mut self, ty: &'tcx Ty<'_>) {
|
||||||
match ty.kind {
|
match ty.kind {
|
||||||
TyKind::OpaqueDef(item, bounds, _) => {
|
TyKind::OpaqueDef(item, bounds) => {
|
||||||
let map = self.cx.tcx.hir();
|
let map = self.cx.tcx.hir();
|
||||||
let item = map.item(item);
|
let item = map.item(item);
|
||||||
let len = self.lts.len();
|
let len = self.lts.len();
|
||||||
|
|
|
@ -105,7 +105,7 @@ fn future_trait_ref<'tcx>(
|
||||||
cx: &LateContext<'tcx>,
|
cx: &LateContext<'tcx>,
|
||||||
ty: &'tcx Ty<'tcx>,
|
ty: &'tcx Ty<'tcx>,
|
||||||
) -> Option<(&'tcx TraitRef<'tcx>, Vec<LifetimeName>)> {
|
) -> Option<(&'tcx TraitRef<'tcx>, Vec<LifetimeName>)> {
|
||||||
if let TyKind::OpaqueDef(item_id, bounds, false) = ty.kind
|
if let TyKind::OpaqueDef(item_id, bounds) = ty.kind
|
||||||
&& let item = cx.tcx.hir().item(item_id)
|
&& let item = cx.tcx.hir().item(item_id)
|
||||||
&& let ItemKind::OpaqueTy(opaque) = &item.kind
|
&& let ItemKind::OpaqueTy(opaque) = &item.kind
|
||||||
&& let Some(trait_ref) = opaque.bounds.iter().find_map(|bound| {
|
&& let Some(trait_ref) = opaque.bounds.iter().find_map(|bound| {
|
||||||
|
|
|
@ -1115,9 +1115,8 @@ impl<'a, 'tcx> SpanlessHash<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
TyKind::Path(ref qpath) => self.hash_qpath(qpath),
|
TyKind::Path(ref qpath) => self.hash_qpath(qpath),
|
||||||
TyKind::OpaqueDef(_, arg_list, in_trait) => {
|
TyKind::OpaqueDef(_, arg_list) => {
|
||||||
self.hash_generic_args(arg_list);
|
self.hash_generic_args(arg_list);
|
||||||
in_trait.hash(&mut self.s);
|
|
||||||
},
|
},
|
||||||
TyKind::TraitObject(_, lifetime, _) => {
|
TyKind::TraitObject(_, lifetime, _) => {
|
||||||
self.hash_lifetime(lifetime);
|
self.hash_lifetime(lifetime);
|
||||||
|
|
Loading…
Reference in New Issue