| 
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