Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rustdoc: stack overflow: rustdoc::clean::clean_qpath() #98250

Closed
matthiaskrgr opened this issue Jun 19, 2022 · 1 comment · Fixed by #130173
Closed

rustdoc: stack overflow: rustdoc::clean::clean_qpath() #98250

matthiaskrgr opened this issue Jun 19, 2022 · 1 comment · Fixed by #130173
Labels
C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. glacier ICE tracked in rust-lang/glacier. I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

I tried this code:
./src/test/ui/impl-trait/recursive-type-alias-impl-trait-declaration-too-subtle-2.rs

#![feature(type_alias_impl_trait)]

type Foo = impl PartialEq<(Foo, i32)>;

struct Bar;

impl PartialEq<(Foo, i32)> for Bar {
//~^ ERROR cannot implement trait on type alias impl trait
    fn eq(&self, _other: &(Foo, i32)) -> bool {
        true
    }
}

fn foo() -> Foo {
    Bar
}

fn main() {}

Meta

rustc --version --verbose:

rustdoc 1.63.0-nightly (ca122c7eb 2022-06-13)
binary: rustdoc
commit-hash: ca122c7ebb3ab50149c9d3d24ddb59c252b32272
commit-date: 2022-06-13
host: x86_64-unknown-linux-gnu
release: 1.63.0-nightly
LLVM version: 14.0.5
Backtrace

....
#32191 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32192 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32193 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32194 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32195 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32196 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32197 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32198 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32199 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32200 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32201 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32202 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32203 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32204 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32205 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32206 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32207 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32208 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32209 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32210 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32211 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32212 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32213 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32214 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32215 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32216 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32217 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32218 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32219 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32220 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32221 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32222 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32223 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32224 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32225 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32226 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32227 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32228 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32229 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32230 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32231 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32232 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32233 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32234 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32235 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32236 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32237 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32238 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32239 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32240 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
--Type <RET> for more, q to quit, c to continue without paging--
#32241 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32242 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32243 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32244 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32245 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32246 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32247 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32248 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32249 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32250 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32251 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32252 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32253 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32254 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32255 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32256 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32257 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32258 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32259 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32260 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32261 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32262 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32263 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32264 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32265 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32266 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32267 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32268 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32269 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32270 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32271 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32272 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32273 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32274 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32275 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32276 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32277 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32278 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32279 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32280 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32281 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32282 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32283 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32284 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32285 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32286 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32287 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32288 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32289 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32290 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32291 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32292 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32293 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32294 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32295 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32296 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32297 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32298 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32299 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32300 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32301 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32302 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
--Type <RET> for more, q to quit, c to continue without paging--
#32303 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32304 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32305 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32306 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32307 0x0000555555753f87 in <rustdoc::core::DocContext>::enter_alias::<rustdoc::clean::maybe_expand_private_type_alias::{closure#3}, rustdoc::clean::types::Type> ()
#32308 0x00005555557cd791 in rustdoc::clean::clean_qpath ()
#32309 0x000055555556f206 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32310 0x00005555556c88ce in <alloc::vec::Vec<rustdoc::clean::types::Type> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::Type, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Ty>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#0}>>>::from_iter ()
#32311 0x000055555556f425 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32312 0x000055555554fb4d in <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustdoc::clean::types::GenericArg, <alloc::vec::Vec<rustdoc::clean::types::GenericArg> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::GenericArg, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::GenericArg>, <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean::{closure#1}>>>::spec_extend::{closure#0}>::{closure#0}> ()
#32313 0x000055555556fc60 in <rustc_hir::hir::GenericArgs as rustdoc::clean::Clean<rustdoc::clean::types::GenericArgs>>::clean ()
#32314 0x00005555556c291f in <alloc::vec::Vec<rustdoc::clean::types::PathSegment> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::PathSegment, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::PathSegment>, <rustc_hir::hir::Path as rustdoc::clean::Clean<rustdoc::clean::types::Path>>::clean::{closure#0}>>>::from_iter ()
#32315 0x000055555556c2ae in <rustc_hir::hir::PolyTraitRef as rustdoc::clean::Clean<rustdoc::clean::types::PolyTrait>>::clean ()
#32316 0x000055555556b3de in <rustc_hir::hir::GenericBound as rustdoc::clean::Clean<core::option::Option<rustdoc::clean::types::GenericBound>>>::clean ()
#32317 0x00005555556c340c in <alloc::vec::Vec<rustdoc::clean::types::GenericBound> as alloc::vec::spec_from_iter::SpecFromIter<rustdoc::clean::types::GenericBound, core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<rustc_hir::hir::GenericBound>, <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean::{closure#1}>>>::from_iter ()
#32318 0x000055555556f488 in <rustc_hir::hir::Ty as rustdoc::clean::Clean<rustdoc::clean::types::Type>>::clean ()
#32319 0x00005555557516af in <rustdoc::core::DocContext>::with_param_env::<alloc::vec::Vec<rustdoc::clean::types::Item>, rustdoc::clean::clean_maybe_renamed_item::{closure#1}> ()
#32320 0x00005555556b9bb2 in <alloc::vec::Vec<rustdoc::clean::types::Item> as alloc::vec::spec_extend::SpecExtend<rustdoc::clean::types::Item, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<(&rustc_hir::hir::Item, core::option::Option<rustc_span::symbol::Symbol>)>, alloc::vec::Vec<rustdoc::clean::types::Item>, <rustdoc::visit_ast::Module as rustdoc::clean::Clean<rustdoc::clean::types::Item>>::clean::{closure#2}>>>::spec_extend ()
#32321 0x0000555555619ea6 in <rustdoc::visit_ast::Module as rustdoc::clean::Clean<rustdoc::clean::types::Item>>::clean ()
#32322 0x0000555555667865 in rustdoc::clean::utils::krate ()
#32323 0x0000555555789585 in <rustc_session::session::Session>::time::<rustdoc::clean::types::Crate, rustdoc::core::run_global_ctxt::{closure#5}> ()
#32324 0x00005555557592ca in rustdoc::core::run_global_ctxt ()
#32325 0x0000555555789bff in <rustc_session::session::Session>::time::<(rustdoc::clean::types::Crate, rustdoc::config::RenderOptions, rustdoc::formats::cache::Cache), rustdoc::main_options::{closure#0}::{closure#0}::{closure#1}::{closure#0}> ()
#32326 0x00005555557219a4 in <rustc_interface::passes::QueryContext>::enter::<rustdoc::main_options::{closure#0}::{closure#0}::{closure#1}, core::result::Result<(), rustc_errors::ErrorGuaranteed>> ()
#32327 0x000055555562502a in <rustc_interface::interface::Compiler>::enter::<rustdoc::main_options::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>> ()
#32328 0x00005555554dd8aa in rustc_span::with_source_map::<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustc_interface::interface::create_compiler_and_run<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustdoc::main_options::{closure#0}>::{closure#1}> ()
#32329 0x000055555564e691 in rustc_interface::interface::create_compiler_and_run::<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustdoc::main_options::{closure#0}> ()
#32330 0x00005555554e1d07 in <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustdoc::main_args::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>> ()
#32331 0x000055555564f4ef in std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_pool_with_globals<rustdoc::main_args::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>> ()



#32332 0x000055555573e029 in <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_pool_with_globals<rustdoc::main_args::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} ()

#32333 0x00007ffff36ab4f3 in alloc::boxed::{impl#44}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1951
#32334 alloc::boxed::{impl#44}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1951
#32335 std::sys::unix::thread::{impl#2}::new::thread_start () at library/std/src/sys/unix/thread.rs:108
#32336 0x00007ffff347f54d in ?? () from /usr/lib/libc.so.6
#32337 0x00007ffff3504b14 in clone () from /usr/lib/libc.so.6

@matthiaskrgr matthiaskrgr added I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels Jun 19, 2022
JohnTitor added a commit to rust-lang/glacier that referenced this issue Jun 24, 2022
* add 4 ices

rust-lang/rust#98432
rust-lang/rust#98250
rust-lang/rust#98171
rust-lang/rust#98016

* Update ices/98432.rs

Co-authored-by: Yuki Okushi <jtitor@2k36.org>
@rust-lang-glacier-bot rust-lang-glacier-bot added the glacier ICE tracked in rust-lang/glacier. label Jun 24, 2022
@JohnTitor
Copy link
Member

Triage: This seems to be fixed in the latest nightly.
@rustbot labels: +E-needs-test

@rustbot rustbot added the E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. label May 1, 2023
@bors bors closed this as completed in a204f87 Sep 10, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Sep 10, 2024
Rollup merge of rust-lang#130173 - fmease:rustdoc-regression-tests, r=notriddle

rustdoc: add two regression tests

They were basically copy/pasted from `tests/ui/` to `tests/rustdoc-ui/`.
Not sure if it's worth adding these, I can just close these issues as is if you want.

This brings the number of https://github.com/rust-lang/rust/labels/T-rustdoc + https://github.com/rust-lang/rust/labels/E-needs-test from 3 down to 1.
The remaining one – rust-lang#103004 — is a nasty one to retroactively find a proper(!) test for.

Fixes rust-lang#98250.
Fixes rust-lang#107872.

r? rustdoc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. glacier ICE tracked in rust-lang/glacier. I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants