Actually migrate OpaqueHiddenType
This commit is contained in:
parent
313d474b35
commit
7e4f433720
1 changed files with 6 additions and 16 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
use crate::errors::OpaqueHiddenTypeDiag;
|
||||||
use crate::infer::{DefiningAnchor, InferCtxt, InferOk};
|
use crate::infer::{DefiningAnchor, InferCtxt, InferOk};
|
||||||
use crate::traits;
|
use crate::traits;
|
||||||
use hir::def_id::{DefId, LocalDefId};
|
use hir::def_id::{DefId, LocalDefId};
|
||||||
|
@ -153,22 +154,11 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
|
||||||
if let Some(OpaqueTyOrigin::TyAlias) =
|
if let Some(OpaqueTyOrigin::TyAlias) =
|
||||||
did2.as_local().and_then(|did2| self.opaque_type_origin(did2, cause.span))
|
did2.as_local().and_then(|did2| self.opaque_type_origin(did2, cause.span))
|
||||||
{
|
{
|
||||||
self.tcx
|
self.tcx.sess.emit_err(OpaqueHiddenTypeDiag {
|
||||||
.sess
|
span: cause.span,
|
||||||
.struct_span_err(
|
hidden_type: self.tcx.def_span(did2),
|
||||||
cause.span,
|
opaque_type: self.tcx.def_span(def_id),
|
||||||
"opaque type's hidden type cannot be another opaque type from the same scope",
|
});
|
||||||
)
|
|
||||||
.span_label(cause.span, "one of the two opaque types used here has to be outside its defining scope")
|
|
||||||
.span_note(
|
|
||||||
self.tcx.def_span(def_id),
|
|
||||||
"opaque type whose hidden type is being assigned",
|
|
||||||
)
|
|
||||||
.span_note(
|
|
||||||
self.tcx.def_span(did2),
|
|
||||||
"opaque type being used as hidden type",
|
|
||||||
)
|
|
||||||
.emit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(self.register_hidden_type(
|
Some(self.register_hidden_type(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue