|
1 | 1 | use rustc_errors::StashKey; |
2 | 2 | use rustc_hir::def::DefKind; |
3 | | -use rustc_hir::def_id::{LocalDefId, CRATE_DEF_ID}; |
| 3 | +use rustc_hir::def_id::LocalDefId; |
4 | 4 | use rustc_hir::intravisit::{self, Visitor}; |
5 | 5 | use rustc_hir::{self as hir, def, Expr, ImplItem, Item, Node, TraitItem}; |
6 | 6 | use rustc_middle::bug; |
7 | 7 | use rustc_middle::hir::nested_filter; |
8 | 8 | use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt}; |
9 | | -use rustc_span::{sym, ErrorGuaranteed, DUMMY_SP}; |
| 9 | +use rustc_span::DUMMY_SP; |
10 | 10 |
|
11 | | -use crate::errors::{TaitForwardCompat, TaitForwardCompat2, TypeOf, UnconstrainedOpaqueType}; |
12 | | - |
13 | | -pub fn test_opaque_hidden_types(tcx: TyCtxt<'_>) -> Result<(), ErrorGuaranteed> { |
14 | | - let mut res = Ok(()); |
15 | | - if tcx.has_attr(CRATE_DEF_ID, sym::rustc_hidden_type_of_opaques) { |
16 | | - for id in tcx.hir().items() { |
17 | | - if matches!(tcx.def_kind(id.owner_id), DefKind::OpaqueTy) { |
18 | | - let type_of = tcx.type_of(id.owner_id).instantiate_identity(); |
19 | | - |
20 | | - res = Err(tcx.dcx().emit_err(TypeOf { span: tcx.def_span(id.owner_id), type_of })); |
21 | | - } |
22 | | - } |
23 | | - } |
24 | | - res |
25 | | -} |
| 11 | +use crate::errors::{TaitForwardCompat, TaitForwardCompat2, UnconstrainedOpaqueType}; |
26 | 12 |
|
27 | 13 | /// Checks "defining uses" of opaque `impl Trait` in associated types. |
28 | 14 | /// These can only be defined by associated items of the same trait. |
|
0 commit comments