@@ -19,7 +19,6 @@ extern crate tracing;
19
19
20
20
use rustc_data_structures:: fx:: { FxIndexMap , FxIndexSet } ;
21
21
use rustc_data_structures:: graph:: dominators:: Dominators ;
22
- use rustc_data_structures:: vec_map:: VecMap ;
23
22
use rustc_errors:: { Diagnostic , DiagnosticBuilder , DiagnosticMessage , SubdiagnosticMessage } ;
24
23
use rustc_hir as hir;
25
24
use rustc_hir:: def_id:: LocalDefId ;
@@ -141,7 +140,7 @@ fn mir_borrowck(tcx: TyCtxt<'_>, def: ty::WithOptConstParam<LocalDefId>) -> &Bor
141
140
debug ! ( "Skipping borrowck because of injected body" ) ;
142
141
// Let's make up a borrowck result! Fun times!
143
142
let result = BorrowCheckResult {
144
- concrete_opaque_types : VecMap :: new ( ) ,
143
+ concrete_opaque_types : FxIndexMap :: default ( ) ,
145
144
closure_requirements : None ,
146
145
used_mut_upvars : SmallVec :: new ( ) ,
147
146
tainted_by_errors : None ,
@@ -511,16 +510,11 @@ impl<'cx, 'tcx> BorrowckInferCtxt<'cx, 'tcx> {
511
510
. as_var ( )
512
511
. unwrap_or_else ( || bug ! ( "expected RegionKind::RegionVar on {:?}" , next_region) ) ;
513
512
514
- if cfg ! ( debug_assertions) {
513
+ if cfg ! ( debug_assertions) && ! self . inside_canonicalization_ctxt ( ) {
515
514
debug ! ( "inserting vid {:?} with origin {:?} into var_to_origin" , vid, origin) ;
516
515
let ctxt = get_ctxt_fn ( ) ;
517
516
let mut var_to_origin = self . reg_var_to_origin . borrow_mut ( ) ;
518
- let prev = var_to_origin. insert ( vid, ctxt) ;
519
-
520
- // This only makes sense if not called in a canonicalization context. If this
521
- // ever changes we either want to get rid of `BorrowckInferContext::reg_var_to_origin`
522
- // or modify how we track nll region vars for that map.
523
- assert ! ( matches!( prev, None ) ) ;
517
+ var_to_origin. insert ( vid, ctxt) ;
524
518
}
525
519
526
520
next_region
@@ -540,16 +534,11 @@ impl<'cx, 'tcx> BorrowckInferCtxt<'cx, 'tcx> {
540
534
. as_var ( )
541
535
. unwrap_or_else ( || bug ! ( "expected RegionKind::RegionVar on {:?}" , next_region) ) ;
542
536
543
- if cfg ! ( debug_assertions) {
537
+ if cfg ! ( debug_assertions) && ! self . inside_canonicalization_ctxt ( ) {
544
538
debug ! ( "inserting vid {:?} with origin {:?} into var_to_origin" , vid, origin) ;
545
539
let ctxt = get_ctxt_fn ( ) ;
546
540
let mut var_to_origin = self . reg_var_to_origin . borrow_mut ( ) ;
547
- let prev = var_to_origin. insert ( vid, ctxt) ;
548
-
549
- // This only makes sense if not called in a canonicalization context. If this
550
- // ever changes we either want to get rid of `BorrowckInferContext::reg_var_to_origin`
551
- // or modify how we track nll region vars for that map.
552
- assert ! ( matches!( prev, None ) ) ;
541
+ var_to_origin. insert ( vid, ctxt) ;
553
542
}
554
543
555
544
next_region
0 commit comments