File tree 1 file changed +8
-7
lines changed
compiler/rustc_next_trait_solver/src/solve/eval_ctxt
1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -371,13 +371,14 @@ where
371
371
if let Some ( v) = opt_values[ ty:: BoundVar :: from_usize ( index) ] {
372
372
if let CanonicalVarKind :: Ty { universe : _, sub_root } = info. kind {
373
373
if let Some ( prev) = var_values. get ( sub_root. as_usize ( ) ) {
374
- let ty:: Infer ( ty:: TyVar ( vid) ) = v. expect_ty ( ) . kind ( ) else {
375
- unreachable ! ( "expected `sub_root` to be an inference variable" ) ;
376
- } ;
377
- let ty:: Infer ( ty:: TyVar ( sub_root) ) = prev. expect_ty ( ) . kind ( ) else {
378
- unreachable ! ( "expected `sub_root` to be an inference variable" ) ;
379
- } ;
380
- delegate. sub_ty_vids_raw ( vid, sub_root) ;
374
+ let v = delegate. shallow_resolve ( v. expect_ty ( ) ) ;
375
+ let prev = delegate. shallow_resolve ( prev. expect_ty ( ) ) ;
376
+ match ( v. kind ( ) , prev. kind ( ) ) {
377
+ ( ty:: Infer ( ty:: TyVar ( vid) ) , ty:: Infer ( ty:: TyVar ( sub_root) ) ) => {
378
+ delegate. sub_ty_vids_raw ( vid, sub_root)
379
+ }
380
+ _ => { }
381
+ }
381
382
}
382
383
}
383
384
v
You can’t perform that action at this time.
0 commit comments