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