File tree Expand file tree Collapse file tree 1 file changed +8
-7
lines changed
compiler/rustc_next_trait_solver/src/solve/eval_ctxt Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -361,13 +361,14 @@ where
361361 if let Some ( v) = opt_values[ ty:: BoundVar :: from_usize ( index) ] {
362362 if let CanonicalVarKind :: Ty { universe : _, sub_root } = info. kind {
363363 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+ }
371372 }
372373 }
373374 v
You can’t perform that action at this time.
0 commit comments