Get rid of can_eq_shallow
This commit is contained in:
parent
20f23abbec
commit
7bca516b35
2 changed files with 3 additions and 14 deletions
|
@ -755,18 +755,6 @@ impl<'tcx> InferCtxt<'tcx> {
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME(-Znext-solver): Get rid of this method, it's never correct. Either that,
|
|
||||||
// or we need to process the obligations.
|
|
||||||
pub fn can_eq_shallow<T>(&self, param_env: ty::ParamEnv<'tcx>, a: T, b: T) -> bool
|
|
||||||
where
|
|
||||||
T: at::ToTrace<'tcx>,
|
|
||||||
{
|
|
||||||
let origin = &ObligationCause::dummy();
|
|
||||||
// We're only answering whether the types could be the same, and with
|
|
||||||
// opaque types, "they can be the same", via registering a hidden type.
|
|
||||||
self.probe(|_| self.at(origin, param_env).eq(DefineOpaqueTypes::Yes, a, b).is_ok())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[instrument(skip(self), level = "debug")]
|
#[instrument(skip(self), level = "debug")]
|
||||||
pub fn sub_regions(
|
pub fn sub_regions(
|
||||||
&self,
|
&self,
|
||||||
|
|
|
@ -12,6 +12,7 @@ use rustc_middle::{
|
||||||
use rustc_span::{def_id::DefId, sym, BytePos, Span, Symbol};
|
use rustc_span::{def_id::DefId, sym, BytePos, Span, Symbol};
|
||||||
|
|
||||||
use crate::error_reporting::TypeErrCtxt;
|
use crate::error_reporting::TypeErrCtxt;
|
||||||
|
use crate::infer::InferCtxtExt;
|
||||||
|
|
||||||
impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||||
pub fn note_and_explain_type_err(
|
pub fn note_and_explain_type_err(
|
||||||
|
@ -821,7 +822,7 @@ fn foo(&self) -> Self::T { String::new() }
|
||||||
tcx.defaultness(item.id.owner_id)
|
tcx.defaultness(item.id.owner_id)
|
||||||
{
|
{
|
||||||
let assoc_ty = tcx.type_of(item.id.owner_id).instantiate_identity();
|
let assoc_ty = tcx.type_of(item.id.owner_id).instantiate_identity();
|
||||||
if self.infcx.can_eq_shallow(param_env, assoc_ty, found) {
|
if self.infcx.can_eq(param_env, assoc_ty, found) {
|
||||||
diag.span_label(
|
diag.span_label(
|
||||||
item.span,
|
item.span,
|
||||||
"associated type defaults can't be assumed inside the \
|
"associated type defaults can't be assumed inside the \
|
||||||
|
@ -844,7 +845,7 @@ fn foo(&self) -> Self::T { String::new() }
|
||||||
let assoc_ty = tcx.type_of(item.id.owner_id).instantiate_identity();
|
let assoc_ty = tcx.type_of(item.id.owner_id).instantiate_identity();
|
||||||
if let hir::Defaultness::Default { has_value: true } =
|
if let hir::Defaultness::Default { has_value: true } =
|
||||||
tcx.defaultness(item.id.owner_id)
|
tcx.defaultness(item.id.owner_id)
|
||||||
&& self.infcx.can_eq_shallow(param_env, assoc_ty, found)
|
&& self.infcx.can_eq(param_env, assoc_ty, found)
|
||||||
{
|
{
|
||||||
diag.span_label(
|
diag.span_label(
|
||||||
item.span,
|
item.span,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue