@@ -132,12 +132,16 @@ impl<'tcx> PatCtxt<'tcx> {
132132 debug ! ( "{:?}: wrapping pattern with adjustment {:?}" , thir_pat, adjust) ;
133133 let span = thir_pat. span ;
134134 let kind = match adjust. kind {
135- PatAdjust :: BuiltinDeref => PatKind :: Deref { subpattern : thir_pat } ,
135+ PatAdjust :: BuiltinDeref => {
136+ PatKind :: Deref { pin : hir:: Pinnedness :: Not , subpattern : thir_pat }
137+ }
136138 PatAdjust :: OverloadedDeref => {
137139 let borrow = self . typeck_results . deref_pat_borrow_mode ( adjust. source , pat) ;
138140 PatKind :: DerefPattern { subpattern : thir_pat, borrow }
139141 }
140- PatAdjust :: PinDeref => PatKind :: Deref { subpattern : thir_pat } ,
142+ PatAdjust :: PinDeref => {
143+ PatKind :: Deref { pin : hir:: Pinnedness :: Pinned , subpattern : thir_pat }
144+ }
141145 } ;
142146 Box :: new ( Pat { span, ty : adjust. source , kind, extra : None } )
143147 } ) ;
@@ -334,15 +338,15 @@ impl<'tcx> PatCtxt<'tcx> {
334338 let borrow = self . typeck_results . deref_pat_borrow_mode ( ty, subpattern) ;
335339 PatKind :: DerefPattern { subpattern : self . lower_pattern ( subpattern) , borrow }
336340 }
337- hir:: PatKind :: Ref ( subpattern, _ , _) => {
341+ hir:: PatKind :: Ref ( subpattern, pin , _) => {
338342 // Track the default binding mode for the Rust 2024 migration suggestion.
339343 let opt_old_mode_span =
340344 self . rust_2024_migration . as_mut ( ) . and_then ( |s| s. visit_explicit_deref ( ) ) ;
341345 let subpattern = self . lower_pattern ( subpattern) ;
342346 if let Some ( s) = & mut self . rust_2024_migration {
343347 s. leave_ref ( opt_old_mode_span) ;
344348 }
345- PatKind :: Deref { subpattern }
349+ PatKind :: Deref { pin , subpattern }
346350 }
347351 hir:: PatKind :: Box ( subpattern) => PatKind :: DerefPattern {
348352 subpattern : self . lower_pattern ( subpattern) ,
0 commit comments