Skip to content

Commit 5da0fb1

Browse files
committed
Switch can_eq and can_sub to DefineOpaqueTypes::Yes
They are mostly used in diagnostics anyway
1 parent e56f0d7 commit 5da0fb1

File tree

1 file changed

+6
-2
lines changed
  • compiler/rustc_infer/src/infer

1 file changed

+6
-2
lines changed

compiler/rustc_infer/src/infer/mod.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -936,7 +936,9 @@ impl<'tcx> InferCtxt<'tcx> {
936936
{
937937
let origin = &ObligationCause::dummy();
938938
self.probe(|_| {
939-
self.at(origin, param_env).sub(DefineOpaqueTypes::No, expected, actual).is_ok()
939+
// We're only answering whether there could be a subtyping relation, and with
940+
// opaque types, "there could be one", via registering a hidden type.
941+
self.at(origin, param_env).sub(DefineOpaqueTypes::Yes, expected, actual).is_ok()
940942
})
941943
}
942944

@@ -945,7 +947,9 @@ impl<'tcx> InferCtxt<'tcx> {
945947
T: at::ToTrace<'tcx>,
946948
{
947949
let origin = &ObligationCause::dummy();
948-
self.probe(|_| self.at(origin, param_env).eq(DefineOpaqueTypes::No, a, b).is_ok())
950+
// We're only answering whether the types could be the same, and with
951+
// opaque types, "they can be the same", via registering a hidden type.
952+
self.probe(|_| self.at(origin, param_env).eq(DefineOpaqueTypes::Yes, a, b).is_ok())
949953
}
950954

951955
#[instrument(skip(self), level = "debug")]

0 commit comments

Comments
 (0)