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: ice: has escaping bound vars, so it cannot be wrapped in a dummy binder #110900

Closed
matthiaskrgr opened this issue Apr 27, 2023 · 1 comment · Fixed by #110904
Closed
Assignees
Labels
C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

matthiaskrgr commented Apr 27, 2023

I tried this code:

#![crate_type="lib"]
#![feature(associated_type_bounds)]

trait A<'a> {}
trait B<'b> {}

trait C<'c>: for<'a> A<'a> + for<'b> B<'b> {
    type As;
}

trait E<'e> {
    type As;
}
trait F<'f>: for<'a> A<'a> + for<'e> E<'e> {}
struct G<T>
where
    T: for<'l, 'i> H<'l, 'i, As: for<'a> A<'a> + 'i>
{
    t: std::marker::PhantomData<T>,
}

trait I<'a, 'b, 'c> {
    type As;
}

trait H<'d, 'e>: for<'f> I<'d, 'f, 'e> + 'd {}

I expected to see this happen: explanation

Instead, this happened: explanation

Meta

rustc --version --verbose:

rustdoc 1.71.0-nightly (1c42cb4ef 2023-04-26)
binary: rustdoc
commit-hash: 1c42cb4ef0544fbfaa500216e53382d6b079c001
commit-date: 2023-04-26
host: x86_64-unknown-linux-gnu
release: 1.71.0-nightly
LLVM version: 16.0.2
Backtrace

warning: struct `G` is never constructed
  --> 30B0262E00C316EA1B4121A3F74A7B40BD0A1BBD6F303232F9C8C1438A7EEDA4.rs:15:8
   |
15 | struct G<T>
   |        ^
   |
   = note: `#[warn(dead_code)]` on by default

warning: 1 warning emitted

thread 'rustc' panicked at '`<T as I<'l, 'f, 'i>>::As` has escaping bound vars, so it cannot be wrapped in a dummy binder.', src/librustdoc/clean/mod.rs:367:29
stack backtrace:
   0:     0x7f741af68e73 - std::backtrace_rs::backtrace::libunwind::trace::h0c8179e89cc9893e
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f741af68e73 - std::backtrace_rs::backtrace::trace_unsynchronized::hfadffaff9fceb6ba
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f741af68e73 - std::sys_common::backtrace::_print_fmt::ha49f609af156c4cb
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7f741af68e73 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h0ad104dc9ebb0bab
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f741afc9c8f - core::fmt::write::h076b507083203424
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/core/src/fmt/mod.rs:1247:17
   5:     0x7f741af5bea1 - std::io::Write::write_fmt::ha4c326e8c8c981e1
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/io/mod.rs:1712:15
   6:     0x7f741af68c85 - std::sys_common::backtrace::_print::hbc9e8503f2c8583b
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7f741af68c85 - std::sys_common::backtrace::print::he24fec1d9c5516a7
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7f741af6b847 - std::panicking::default_hook::{{closure}}::hf29caaf6379226a6
   9:     0x7f741af6b635 - std::panicking::default_hook::h0765c9476c979227
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/panicking.rs:288:9
  10:     0x7f741e1bf8c5 - <rustc_driver_impl[b4ece89b41fa04d8]::DEFAULT_HOOK::{closure#0}::{closure#0} as core[a53159a38bb5d97c]::ops::function::FnOnce<(&core[a53159a38bb5d97c]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
  11:     0x7f741af6bf85 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a83df3f1b1b39ec
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/alloc/src/boxed.rs:1976:9
  12:     0x7f741af6bf85 - std::panicking::rust_panic_with_hook::h060701a46b500fdf
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/panicking.rs:695:13
  13:     0x7f741af6bcf9 - std::panicking::begin_panic_handler::{{closure}}::hcfb53c4ced379f9a
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/panicking.rs:582:13
  14:     0x7f741af692b6 - std::sys_common::backtrace::__rust_end_short_backtrace::h2100286b873f9af0
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/sys_common/backtrace.rs:150:18
  15:     0x7f741af6ba52 - rust_begin_unwind
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/panicking.rs:578:5
  16:     0x7f741afc5f23 - core::panicking::panic_fmt::hcbb1fb2c2e65f651
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/core/src/panicking.rs:67:14
  17:     0x55866dce60d7 - rustdoc[91caa3b57dab4aa7]::clean::clean_predicate
  18:     0x55866dba144b - <alloc[5698eed4a099ff47]::vec::Vec<rustdoc[91caa3b57dab4aa7]::clean::types::WherePredicate> as alloc[5698eed4a099ff47]::vec::spec_from_iter::SpecFromIter<rustdoc[91caa3b57dab4aa7]::clean::types::WherePredicate, core[a53159a38bb5d97c]::iter::adapters::flatten::FlatMap<alloc[5698eed4a099ff47]::vec::into_iter::IntoIter<&rustc_middle[74d31bc1c7288efd]::ty::Predicate>, core[a53159a38bb5d97c]::option::Option<rustdoc[91caa3b57dab4aa7]::clean::types::WherePredicate>, rustdoc[91caa3b57dab4aa7]::clean::clean_ty_generics::{closure#3}>>>::from_iter
  19:     0x55866dcea18d - rustdoc[91caa3b57dab4aa7]::clean::clean_ty_generics
  20:     0x55866da0e618 - <rustdoc[91caa3b57dab4aa7]::clean::auto_trait::AutoTraitFinder>::param_env_to_generics
  21:     0x55866dc7df0a - <rustc_trait_selection[ce8ecfa74af62748]::traits::auto_trait::AutoTraitFinder>::find_auto_trait_generics::<rustdoc[91caa3b57dab4aa7]::clean::types::Generics, <rustdoc[91caa3b57dab4aa7]::clean::auto_trait::AutoTraitFinder>::generate_for_trait::{closure#0}>
  22:     0x55866da0afdd - <rustdoc[91caa3b57dab4aa7]::clean::auto_trait::AutoTraitFinder>::generate_for_trait
  23:     0x55866dbb9e11 - <alloc[5698eed4a099ff47]::vec::Vec<rustdoc[91caa3b57dab4aa7]::clean::types::Item> as alloc[5698eed4a099ff47]::vec::spec_from_iter::SpecFromIter<rustdoc[91caa3b57dab4aa7]::clean::types::Item, core[a53159a38bb5d97c]::iter::adapters::filter_map::FilterMap<alloc[5698eed4a099ff47]::vec::into_iter::IntoIter<rustc_span[5acbb0d3e38bbf81]::def_id::DefId>, <rustdoc[91caa3b57dab4aa7]::clean::auto_trait::AutoTraitFinder>::get_auto_trait_impls::{closure#0}>>>::from_iter
  24:     0x55866da0b957 - <rustdoc[91caa3b57dab4aa7]::clean::auto_trait::AutoTraitFinder>::get_auto_trait_impls
  25:     0x55866da8eb13 - rustdoc[91caa3b57dab4aa7]::clean::utils::get_auto_trait_and_blanket_impls
  26:     0x55866dd0ff1f - <rustdoc[91caa3b57dab4aa7]::passes::collect_trait_impls::SyntheticImplCollector as rustdoc[91caa3b57dab4aa7]::visit::DocVisitor>::visit_item
  27:     0x55866dd1002a - <rustdoc[91caa3b57dab4aa7]::passes::collect_trait_impls::SyntheticImplCollector as rustdoc[91caa3b57dab4aa7]::visit::DocVisitor>::visit_item
  28:     0x55866dd112e6 - <rustdoc[91caa3b57dab4aa7]::passes::collect_trait_impls::SyntheticImplCollector as rustdoc[91caa3b57dab4aa7]::visit::DocVisitor>::visit_crate
  29:     0x55866db27e11 - <rustc_session[86cf650fda0448f5]::session::Session>::time::<alloc[5698eed4a099ff47]::vec::Vec<rustdoc[91caa3b57dab4aa7]::clean::types::Item>, rustdoc[91caa3b57dab4aa7]::passes::collect_trait_impls::collect_trait_impls::{closure#0}>
  30:     0x55866dd0d1e3 - rustdoc[91caa3b57dab4aa7]::passes::collect_trait_impls::collect_trait_impls
  31:     0x55866db28442 - <rustc_session[86cf650fda0448f5]::session::Session>::time::<rustdoc[91caa3b57dab4aa7]::clean::types::Crate, rustdoc[91caa3b57dab4aa7]::core::run_global_ctxt::{closure#8}>
  32:     0x55866dc7068d - rustdoc[91caa3b57dab4aa7]::core::run_global_ctxt
  33:     0x55866db286be - <rustc_session[86cf650fda0448f5]::session::Session>::time::<(rustdoc[91caa3b57dab4aa7]::clean::types::Crate, rustdoc[91caa3b57dab4aa7]::config::RenderOptions, rustdoc[91caa3b57dab4aa7]::formats::cache::Cache), rustdoc[91caa3b57dab4aa7]::main_args::{closure#1}::{closure#0}::{closure#0}::{closure#0}>
  34:     0x55866dcced90 - <rustc_middle[74d31bc1c7288efd]::ty::context::GlobalCtxt>::enter::<rustdoc[91caa3b57dab4aa7]::main_args::{closure#1}::{closure#0}::{closure#0}, core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>>
  35:     0x55866da59c25 - <rustc_interface[69aa8c17999313ff]::interface::Compiler>::enter::<rustdoc[91caa3b57dab4aa7]::main_args::{closure#1}::{closure#0}, core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>>
  36:     0x55866dc7754b - rustc_span[5acbb0d3e38bbf81]::set_source_map::<core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>, rustc_interface[69aa8c17999313ff]::interface::run_compiler<core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>, rustdoc[91caa3b57dab4aa7]::main_args::{closure#1}>::{closure#0}::{closure#0}>
  37:     0x55866dd1771d - <scoped_tls[f608a97ff3f9cbb]::ScopedKey<rustc_span[5acbb0d3e38bbf81]::SessionGlobals>>::set::<rustc_interface[69aa8c17999313ff]::interface::run_compiler<core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>, rustdoc[91caa3b57dab4aa7]::main_args::{closure#1}>::{closure#0}, core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>>
  38:     0x55866db35219 - std[b0e36382822581c2]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[69aa8c17999313ff]::util::run_in_thread_pool_with_globals<rustc_interface[69aa8c17999313ff]::interface::run_compiler<core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>, rustdoc[91caa3b57dab4aa7]::main_args::{closure#1}>::{closure#0}, core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>>
  39:     0x55866dc60e6d - <<std[b0e36382822581c2]::thread::Builder>::spawn_unchecked_<rustc_interface[69aa8c17999313ff]::util::run_in_thread_pool_with_globals<rustc_interface[69aa8c17999313ff]::interface::run_compiler<core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>, rustdoc[91caa3b57dab4aa7]::main_args::{closure#1}>::{closure#0}, core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a53159a38bb5d97c]::result::Result<(), rustc_span[5acbb0d3e38bbf81]::ErrorGuaranteed>>::{closure#1} as core[a53159a38bb5d97c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  40:     0x7f741af76365 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2b4cb02d9a218e1d
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/alloc/src/boxed.rs:1962:9
  41:     0x7f741af76365 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hbd8144eacfab6e10
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/alloc/src/boxed.rs:1962:9
  42:     0x7f741af76365 - std::sys::unix::thread::Thread::new::thread_start::h95499a4b2fca6f4a
                               at /rustc/1c42cb4ef0544fbfaa500216e53382d6b079c001/library/std/src/sys/unix/thread.rs:108:17
  43:     0x7f741ac1ebb5 - <unknown>
  44:     0x7f741aca0d90 - <unknown>
  45:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.71.0-nightly (1c42cb4ef 2023-04-26) running on x86_64-unknown-linux-gnu

query stack during panic:
end of query stack

@matthiaskrgr matthiaskrgr added T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ C-bug Category: This is a bug. labels Apr 27, 2023
@fmease
Copy link
Member

fmease commented Apr 27, 2023

@rustbot claim

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. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ 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.

2 participants