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 @@ -361,13 +361,14 @@ where
361
361
if let Some ( v) = opt_values[ ty:: BoundVar :: from_usize ( index) ] {
362
362
if let CanonicalVarKind :: Ty { universe : _, sub_root } = info. kind {
363
363
if let Some ( prev) = var_values. get ( sub_root. as_usize ( ) ) {
364
- let ty:: Infer ( ty:: TyVar ( vid) ) = v. expect_ty ( ) . kind ( ) else {
365
- unreachable ! ( "expected `sub_root` to be an inference variable" ) ;
366
- } ;
367
- let ty:: Infer ( ty:: TyVar ( sub_root) ) = prev. expect_ty ( ) . kind ( ) else {
368
- unreachable ! ( "expected `sub_root` to be an inference variable" ) ;
369
- } ;
370
- delegate. sub_ty_vids_raw ( vid, sub_root) ;
364
+ let v = delegate. shallow_resolve ( v. expect_ty ( ) ) ;
365
+ let prev = delegate. shallow_resolve ( prev. expect_ty ( ) ) ;
366
+ match ( v. kind ( ) , prev. kind ( ) ) {
367
+ ( ty:: Infer ( ty:: TyVar ( vid) ) , ty:: Infer ( ty:: TyVar ( sub_root) ) ) => {
368
+ delegate. sub_ty_vids_raw ( vid, sub_root)
369
+ }
370
+ _ => { }
371
+ }
371
372
}
372
373
}
373
374
v
You can’t perform that action at this time.
0 commit comments