@@ -581,13 +581,13 @@ pub enum BindingMode {
581581 ByRef ( BorrowKind ) ,
582582}
583583
584- #[ derive( Clone , Debug , HashStable ) ]
584+ #[ derive( Clone , Debug , HashStable , TypeVisitable ) ]
585585pub struct FieldPat < ' tcx > {
586586 pub field : FieldIdx ,
587587 pub pattern : Box < Pat < ' tcx > > ,
588588}
589589
590- #[ derive( Clone , Debug , HashStable ) ]
590+ #[ derive( Clone , Debug , HashStable , TypeVisitable ) ]
591591pub struct Pat < ' tcx > {
592592 pub ty : Ty < ' tcx > ,
593593 pub span : Span ,
@@ -664,7 +664,7 @@ impl<'tcx> IntoDiagnosticArg for Pat<'tcx> {
664664 }
665665}
666666
667- #[ derive( Clone , Debug , HashStable ) ]
667+ #[ derive( Clone , Debug , HashStable , TypeVisitable ) ]
668668pub struct Ascription < ' tcx > {
669669 pub annotation : CanonicalUserTypeAnnotation < ' tcx > ,
670670 /// Variance to use when relating the `user_ty` to the **type of the value being
@@ -688,7 +688,7 @@ pub struct Ascription<'tcx> {
688688 pub variance : ty:: Variance ,
689689}
690690
691- #[ derive( Clone , Debug , HashStable ) ]
691+ #[ derive( Clone , Debug , HashStable , TypeVisitable ) ]
692692pub enum PatKind < ' tcx > {
693693 /// A wildcard pattern: `_`.
694694 Wild ,
@@ -702,7 +702,9 @@ pub enum PatKind<'tcx> {
702702 Binding {
703703 mutability : Mutability ,
704704 name : Symbol ,
705+ #[ type_visitable( ignore) ]
705706 mode : BindingMode ,
707+ #[ type_visitable( ignore) ]
706708 var : LocalVarId ,
707709 ty : Ty < ' tcx > ,
708710 subpattern : Option < Box < Pat < ' tcx > > > ,
@@ -767,10 +769,11 @@ pub enum PatKind<'tcx> {
767769 } ,
768770}
769771
770- #[ derive( Clone , Debug , PartialEq , HashStable ) ]
772+ #[ derive( Clone , Debug , PartialEq , HashStable , TypeVisitable ) ]
771773pub struct PatRange < ' tcx > {
772774 pub lo : mir:: Const < ' tcx > ,
773775 pub hi : mir:: Const < ' tcx > ,
776+ #[ type_visitable( ignore) ]
774777 pub end : RangeEnd ,
775778}
776779
0 commit comments