@@ -3,10 +3,10 @@ use rustc_hir::def::DefKind;
33use rustc_hir:: def_id:: LocalDefId ;
44use rustc_hir:: intravisit;
55use rustc_hir:: intravisit:: Visitor ;
6- use rustc_middle:: bug;
76use rustc_middle:: query:: Providers ;
87use rustc_middle:: ty:: util:: { CheckRegions , NotUniqueParam } ;
98use rustc_middle:: ty:: { self , Ty , TyCtxt , TypeSuperVisitable , TypeVisitable , TypeVisitor } ;
9+ use rustc_middle:: { bug, span_bug} ;
1010use rustc_span:: Span ;
1111use tracing:: { instrument, trace} ;
1212
@@ -320,9 +320,12 @@ fn opaque_types_defined_by<'tcx>(
320320 | DefKind :: AnonConst => {
321321 collector. collect_taits_declared_in_body ( ) ;
322322 }
323+ // Closures and coroutines are type checked with their parent
324+ DefKind :: Closure | DefKind :: InlineConst => {
325+ collector. opaques . extend ( tcx. opaque_types_defined_by ( tcx. local_parent ( item) ) ) ;
326+ }
327+ DefKind :: AssocTy | DefKind :: TyAlias | DefKind :: GlobalAsm => { }
323328 DefKind :: OpaqueTy
324- | DefKind :: TyAlias
325- | DefKind :: AssocTy
326329 | DefKind :: Mod
327330 | DefKind :: Struct
328331 | DefKind :: Union
@@ -340,12 +343,13 @@ fn opaque_types_defined_by<'tcx>(
340343 | DefKind :: ForeignMod
341344 | DefKind :: Field
342345 | DefKind :: LifetimeParam
343- | DefKind :: GlobalAsm
344346 | DefKind :: Impl { .. }
345- | DefKind :: SyntheticCoroutineBody => { }
346- // Closures and coroutines are type checked with their parent
347- DefKind :: Closure | DefKind :: InlineConst => {
348- collector. opaques . extend ( tcx. opaque_types_defined_by ( tcx. local_parent ( item) ) ) ;
347+ | DefKind :: SyntheticCoroutineBody => {
348+ span_bug ! (
349+ tcx. def_span( item) ,
350+ "`opaque_types_defined_by` not defined for {} `{item:?}`" ,
351+ kind. descr( item. to_def_id( ) )
352+ ) ;
349353 }
350354 }
351355 tcx. mk_local_def_ids ( & collector. opaques )
0 commit comments