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 @@ -371,13 +371,14 @@ where
371371 if let Some ( v) = opt_values[ ty:: BoundVar :: from_usize ( index) ] {
372372 if let CanonicalVarKind :: Ty { universe : _, sub_root } = info. kind {
373373 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+ }
381382 }
382383 }
383384 v
You can’t perform that action at this time.
0 commit comments