@@ -957,27 +957,14 @@ impl<'tcx> InferCtxt<'tcx> {
957
957
( & ty:: Infer ( ty:: TyVar ( a_vid) ) , & ty:: Infer ( ty:: TyVar ( b_vid) ) ) => {
958
958
return Err ( ( a_vid, b_vid) ) ;
959
959
}
960
- // We don't silently want to constrain hidden types here, so we assert that either one side is
961
- // an infer var, so it'll get constrained to whatever the other side is, or there are no opaque
962
- // types involved.
963
- // We don't expect this to actually get hit, but if it does, we now at least know how to write
964
- // a test for it.
965
- ( _, ty:: Infer ( ty:: TyVar ( _) ) ) => { }
966
- ( ty:: Infer ( ty:: TyVar ( _) ) , _) => { }
967
- _ if r_a != r_b && ( r_a, r_b) . has_opaque_types ( ) => {
968
- span_bug ! (
969
- cause. span( ) ,
970
- "opaque types got hidden types registered from within subtype predicate: {r_a:?} vs {r_b:?}"
971
- )
972
- }
973
960
_ => { }
974
961
}
975
962
976
963
self . enter_forall ( predicate, |ty:: SubtypePredicate { a_is_expected, a, b } | {
977
964
if a_is_expected {
978
- Ok ( self . at ( cause, param_env) . sub ( DefineOpaqueTypes :: Yes , a, b) )
965
+ Ok ( self . at ( cause, param_env) . sub ( DefineOpaqueTypes :: No , a, b) )
979
966
} else {
980
- Ok ( self . at ( cause, param_env) . sup ( DefineOpaqueTypes :: Yes , b, a) )
967
+ Ok ( self . at ( cause, param_env) . sup ( DefineOpaqueTypes :: No , b, a) )
981
968
}
982
969
} )
983
970
}
0 commit comments