fn drop_tys_helper<'tcx>(
    tcx: TyCtxt<'tcx>,
    ty: Ty<'tcx>,
    param_env: ParamEnv<'tcx>,
    adt_has_dtor: impl Fn(AdtDef<'tcx>) -> Option<DtorType>,
    only_significant: bool
) -> impl Iterator<Item = Result<Ty<'tcx>, AlwaysRequiresDrop>>