Encode cross-crate opaque type origin
This commit is contained in:
parent
4add5e4211
commit
e093b82a41
19 changed files with 53 additions and 43 deletions
|
@ -246,7 +246,7 @@ fn associated_type_for_impl_trait_in_trait(
|
|||
) -> LocalDefId {
|
||||
let (hir::OpaqueTyOrigin::FnReturn { parent: fn_def_id, .. }
|
||||
| hir::OpaqueTyOrigin::AsyncFn { parent: fn_def_id, .. }) =
|
||||
tcx.opaque_type_origin(opaque_ty_def_id)
|
||||
tcx.local_opaque_ty_origin(opaque_ty_def_id)
|
||||
else {
|
||||
bug!("expected opaque for {opaque_ty_def_id:?}");
|
||||
};
|
||||
|
@ -284,8 +284,6 @@ fn associated_type_for_impl_trait_in_trait(
|
|||
// Copy defaultness of the containing function.
|
||||
trait_assoc_ty.defaultness(tcx.defaultness(fn_def_id));
|
||||
|
||||
trait_assoc_ty.is_type_alias_impl_trait(false);
|
||||
|
||||
// There are no inferred outlives for the synthesized associated type.
|
||||
trait_assoc_ty.inferred_outlives_of(&[]);
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ impl<'tcx> OpaqueTypeCollector<'tcx> {
|
|||
}
|
||||
|
||||
// TAITs outside their defining scopes are ignored.
|
||||
let origin = self.tcx.opaque_type_origin(alias_ty.def_id.expect_local());
|
||||
let origin = self.tcx.local_opaque_ty_origin(alias_ty.def_id.expect_local());
|
||||
trace!(?origin);
|
||||
match origin {
|
||||
rustc_hir::OpaqueTyOrigin::FnReturn { .. }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue