rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
98.55k stars 12.74k forks source link

thread 'rustc' panicked at 'Box<Any>': associated type missing default #86483

Closed Luro02 closed 3 years ago

Luro02 commented 3 years ago

Code

#![feature(generic_associated_types)]
pub trait IceIce<T>
where
    for<'a> T: 'a,
{
    type Ice<'v>: IntoIterator<Item = &'v T>;
}

fn main() {}

[playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=%23!%5Bfeature(generic_associated_types)%5D%0D%0Apub%20trait%20IceIce%3CT%3E%0D%0Awhere%0D%0A%20%20%20%20for%3C'a%3E%20T%3A%20'a%2C%0D%0A%7B%0D%0A%20%20%20%20type%20Ice%3C'v%3E%3A%20IntoIterator%3CItem%20%3D%20%26'v%20T%3E%3B%0D%0A%7D%0D%0A%0D%0Afn%20main()%20%7B%7D%0D%0A)

Meta

The ICE happens on nightly, beta and stable:

rustc --version --verbose:

rustc 1.52.1 (9bc8c42bb 2021-05-09)
binary: rustc
commit-hash: 9bc8c42bb2f19e745a63f3445f1ac248fb015e53
commit-date: 2021-05-09
host: x86_64-unknown-linux-gnu
release: 1.52.1
LLVM version: 12.0.0
rustc 1.55.0-nightly (150fad30e 2021-06-19)
binary: rustc
commit-hash: 150fad30ea25e812d481a784d02c95d3394b234b
commit-date: 2021-06-19
host: x86_64-unknown-linux-gnu
release: 1.55.0-nightly
LLVM version: 12.0.1
rustc 1.53.0-beta.12 (e7a67cc91 2021-06-12)
binary: rustc
commit-hash: e7a67cc91667fd2a66798691732fddbe23f909eb
commit-date: 2021-06-12
host: x86_64-unknown-linux-gnu
release: 1.53.0-beta.12
LLVM version: 12.0.1

Error output

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> src/main.rs:1:1
  |
1 | #![feature(generic_associated_types)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: the feature `generic_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes
 --> src/main.rs:1:12
  |
1 | #![feature(generic_associated_types)]
  |            ^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #44265 <https://github.com/rust-lang/rust/issues/44265> for more information

error[E0311]: the parameter type `T` may not live long enough
 --> src/main.rs:2:1
  |
2 |   pub trait IceIce<T>
  |   ^                - help: consider adding an explicit lifetime bound...: `T: 'a`
  |  _|
  | |
3 | | where
4 | |     for<'a> T: 'a,
5 | | {
6 | |     type Ice<'v>: IntoIterator<Item = &'v T>;
7 | | }
  | |_^ ...so that the type `T` will meet its required lifetime bounds

error: internal compiler error: compiler/rustc_typeck/src/collect/type_of.rs:296:17: associated type missing default
 --> src/main.rs:6:5
  |
6 |     type Ice<'v>: IntoIterator<Item = &'v T>;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Backtrace

``` error[E0554]: `#![feature]` may not be used on the stable release channel --> ice.rs:1:1 | 1 | #![feature(generic_associated_types)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: the feature `generic_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes --> ice.rs:1:12 | 1 | #![feature(generic_associated_types)] | ^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(incomplete_features)]` on by default = note: see issue #44265 for more information error[E0311]: the parameter type `T` may not live long enough --> ice.rs:2:1 | 2 | pub trait IceIce | ^ - help: consider adding an explicit lifetime bound...: `T: 'a` | _| | | 3 | | where 4 | | for<'a> T: 'a, 5 | | { 6 | | type Ice<'v>: IntoIterator; 7 | | } | |_^ ...so that the type `T` will meet its required lifetime bounds error: internal compiler error: compiler/rustc_typeck/src/collect/type_of.rs:278:17: associated type missing default --> ice.rs:6:5 | 6 | type Ice<'v>: IntoIterator; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ thread 'rustc' panicked at 'Box', /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panic.rs:59:5 stack backtrace: 0: 0x7f6a856e8990 - std::backtrace_rs::backtrace::libunwind::trace::h63b7a90188ab5fb3 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5 1: 0x7f6a856e8990 - std::backtrace_rs::backtrace::trace_unsynchronized::h80aefbf9b851eca7 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x7f6a856e8990 - std::sys_common::backtrace::_print_fmt::hbef05ae4237a4d72 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/sys_common/backtrace.rs:67:5 3: 0x7f6a856e8990 - ::fmt::h28abce2fdb9884c2 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/sys_common/backtrace.rs:46:22 4: 0x7f6a85756f1f - core::fmt::write::h3b84512577ca38a8 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/fmt/mod.rs:1092:17 5: 0x7f6a856dcae2 - std::io::Write::write_fmt::h465f8feea02e2aa1 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/io/mod.rs:1572:15 6: 0x7f6a856ec7d5 - std::sys_common::backtrace::_print::h525280ee0d29bdde at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/sys_common/backtrace.rs:49:5 7: 0x7f6a856ec7d5 - std::sys_common::backtrace::print::h1f0f5b9f3ef8fb78 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/sys_common/backtrace.rs:36:9 8: 0x7f6a856ec7d5 - std::panicking::default_hook::{{closure}}::ha5838f6faa4a5a8f at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:208:50 9: 0x7f6a856ec283 - std::panicking::default_hook::hfb9fe98acb0dcb3b at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:225:9 10: 0x7f6a85ebd5eb - rustc_driver::report_ice::hfd0c5c387cfb7249 11: 0x7f6a856ecf40 - std::panicking::rust_panic_with_hook::hb89f5f19036e6af8 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:595:17 12: 0x7f6a86291826 - std::panicking::begin_panic::{{closure}}::hcca02cda194c8e1c 13: 0x7f6a86291776 - std::sys_common::backtrace::__rust_end_short_backtrace::h0c07bb9016bd09dc 14: 0x7f6a8630320f - std::panicking::begin_panic::h7cbeb0e2d96b6723 15: 0x7f6a86281efd - std::panic::panic_any::h7253d23a606f6274 16: 0x7f6a86280235 - rustc_errors::HandlerInner::span_bug::h783b87c001029cbf 17: 0x7f6a86280940 - rustc_errors::Handler::span_bug::h9ca6a040147a4d46 18: 0x7f6a862e555c - rustc_middle::ty::context::tls::with_opt::h39c1db1c8f976501 19: 0x7f6a862e5600 - rustc_middle::util::bug::opt_span_bug_fmt::h6c08e68548cd2c38 20: 0x7f6a862e55cc - rustc_middle::util::bug::span_bug_fmt::h914c00f48ab16e8c 21: 0x7f6a873dedcc - rustc_typeck::collect::type_of::type_of::h7ac0ba90828dfb23 22: 0x7f6a8755ccff - rustc_query_system::dep_graph::graph::DepGraph::with_task_impl::hd6610421a3aa3b92 23: 0x7f6a8756258c - rustc_data_structures::stack::ensure_sufficient_stack::h053b57fc00909b7c 24: 0x7f6a87516113 - rustc_query_system::query::plumbing::force_query_with_job::h63aefa0da7b7e088 25: 0x7f6a8750ad1e - rustc_query_system::query::plumbing::get_query_impl::hdf538e36dd46218c 26: 0x7f6a8754cf2a - ::type_of::h9ef5becbd0143cf7 27: 0x7f6a86f996ee - rustc_middle::ty::context::TyCtxt::return_type_impl_trait::h1e3ffc97762ce604 28: 0x7f6a86eafcb9 - rustc_infer::infer::error_reporting::::construct_generic_bound_failure::h772151037ca89461 29: 0x7f6a86eaf114 - rustc_infer::infer::error_reporting::::report_generic_bound_failure::hbed3bd357e4dcfa2 30: 0x7f6a87a1b94d - rustc_infer::infer::error_reporting::::report_region_errors::h1a991378c1ddcf81 31: 0x7f6a87a21d27 - rustc_infer::infer::InferCtxt::resolve_regions_and_report_errors::hf08d613642aaeb4e 32: 0x7f6a8734ee72 - rustc_typeck::check::regionck::::regionck_item::h5b3ea488257eaacb 33: 0x7f6a873bb45f - rustc_infer::infer::InferCtxtBuilder::enter::he642a0bd6cc46746 34: 0x7f6a8737886a - rustc_typeck::check::wfcheck::check_associated_item::h0366cf7287896055 35: 0x7f6a87dc03a2 - rustc_typeck::check::wfcheck::check_trait_item::he2d4f60eb4e7ee76 36: 0x7f6a8755b967 - rustc_query_system::dep_graph::graph::DepGraph::with_task_impl::hcab31c3a329af1ae 37: 0x7f6a8751b480 - rustc_query_system::query::plumbing::force_query_with_job::h966485956f5fe2ad 38: 0x7f6a8750d3a7 - rustc_query_system::query::plumbing::get_query_impl::hec8974d12695d517 39: 0x7f6a87f8566d - ::check_trait_item_well_formed::h4cbe1c14edb4408c 40: 0x7f6a87dc3b39 - ::visit_trait_item::h9a561165f4fda9aa 41: 0x7f6a87dbbaf9 - rustc_data_structures::sync::par_for_each_in::h4acb0b8257fa5090 42: 0x7f6a87dece1a - rustc_hir::hir::Crate::par_visit_all_item_likes::h3cee1a432e03978c 43: 0x7f6a87ddb956 - rustc_session::session::Session::track_errors::h3646c81176cd45f5 44: 0x7f6a87de7157 - rustc_typeck::check_crate::h0eb6801ba7deb9c9 45: 0x7f6a87ba023d - rustc_interface::passes::analysis::hced9d204794eca4e 46: 0x7f6a87f91357 - rustc_query_system::dep_graph::graph::DepGraph::with_task_impl::h59970cf0c94f9cd8 47: 0x7f6a87fad6c7 - rustc_data_structures::stack::ensure_sufficient_stack::ha901701d858bba53 48: 0x7f6a87f2f681 - rustc_query_system::query::plumbing::force_query_with_job::h28efd7908f94e5d1 49: 0x7f6a87f06113 - rustc_query_system::query::plumbing::get_query_impl::h5c5b010893daac99 50: 0x7f6a87f81edf - ::analysis::h35e91d1e9a4d7390 51: 0x7f6a87b8e27b - rustc_interface::passes::QueryContext::enter::hed34c3214c24a16d 52: 0x7f6a87b65072 - rustc_interface::queries::::enter::h25e70888d22e3a4c 53: 0x7f6a87b5fa51 - rustc_span::with_source_map::h2cd9a6094ef7af0e 54: 0x7f6a87b6604e - rustc_interface::interface::create_compiler_and_run::h5877f5f12804db55 55: 0x7f6a87b608f8 - scoped_tls::ScopedKey::set::hd60de2a62f3fb82b 56: 0x7f6a87b663fb - std::sys_common::backtrace::__rust_begin_short_backtrace::hf09e28c4d01a4892 57: 0x7f6a87b7da35 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hff3afb7d3b239db0 58: 0x7f6a856fc72a - as core::ops::function::FnOnce>::call_once::hc444a77f8dd8d825 at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/alloc/src/boxed.rs:1546:9 59: 0x7f6a856fc72a - as core::ops::function::FnOnce>::call_once::h8b68a0a9a2093dfc at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/alloc/src/boxed.rs:1546:9 60: 0x7f6a856fc72a - std::sys::unix::thread::Thread::new::thread_start::hb95464447f61f48d at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/sys/unix/thread.rs:71:17 61: 0x7f6a85630259 - start_thread 62: 0x7f6a855455e3 - __GI___clone 63: 0x0 - note: 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.52.1 (9bc8c42bb 2021-05-09) running on x86_64-unknown-linux-gnu query stack during panic: #0 [type_of] computing type of `IceIce::Ice` #1 [check_trait_item_well_formed] checking that `IceIce::Ice` is well-formed #2 [analysis] running analysis passes on this crate end of query stack error: aborting due to 3 previous errors; 1 warning emitted For more information about this error, try `rustc --explain E0554`. ```

Luro02 commented 3 years ago

Maybe related to #78823

Luro02 commented 3 years ago

Bisection:

********************************************************************************
Regression in nightly-2021-02-14
********************************************************************************

fetching https://static.rust-lang.org/dist/2021-02-13/channel-rust-nightly-git-commit-hash.txt
nightly manifest 2021-02-13: 40 B / 40 B [===========================================================================================================================] 100.00 % 218.71 KB/s converted 2021-02-13 to 3f5aee2d5241139d808f4fdece0026603489afd1
fetching https://static.rust-lang.org/dist/2021-02-14/channel-rust-nightly-git-commit-hash.txt
nightly manifest 2021-02-14: 40 B / 40 B [===========================================================================================================================] 100.00 % 221.77 KB/s converted 2021-02-14 to 8e54a21139ae96a2aca3129100b057662e2799b9
looking for regression commit between 2021-02-13 and 2021-02-14
cloning rust repository
fetching (via local git) commits from 3f5aee2d5241139d808f4fdece0026603489afd1 to 8e54a21139ae96a2aca3129100b057662e2799b9
opening existing repository at "rust.git"
refreshing repository
looking up first commit
looking up second commit
checking that commits are by bors and thus have ci artifacts...
finding bors merge commits
found 7 bors merge commits in the specified range
  commit[0] 2021-02-12UTC: Auto merge of #81744 - rylev:overlapping-early-exit2, r=lcnr
  commit[1] 2021-02-13UTC: Auto merge of #82045 - Dylan-DPC:rollup-244l0sb, r=Dylan-DPC
  commit[2] 2021-02-13UTC: Auto merge of #82053 - JohnTitor:rollup-ymi9q0g, r=JohnTitor
  commit[3] 2021-02-13UTC: Auto merge of #81854 - the8472:specialize-clone-slice, r=Mark-Simulacrum
  commit[4] 2021-02-13UTC: Auto merge of #81666 - hyd-dev:miri-windows-test-fail, r=Mark-Simulacrum
  commit[5] 2021-02-13UTC: Auto merge of #81494 - cuviper:btree-node-init, r=Mark-Simulacrum
  commit[6] 2021-02-13UTC: Auto merge of #81238 - RalfJung:copy-intrinsics, r=m-ou-se
validated commits found, specifying toolchains

installing 3f5aee2d5241139d808f4fdece0026603489afd1
cargo for x86_64-unknown-linux-gnu: 5.97 MB / 5.97 MB [================================================================================================================] 100.00 % 7.18 MB/s testing...
RESULT: 3f5aee2d5241139d808f4fdece0026603489afd1, ===> No
uninstalling 3f5aee2d5241139d808f4fdece0026603489afd1

installing 8e54a21139ae96a2aca3129100b057662e2799b9
cargo for x86_64-unknown-linux-gnu: 5.96 MB / 5.96 MB [================================================================================================================] 100.00 % 7.38 MB/s testing...
RESULT: 8e54a21139ae96a2aca3129100b057662e2799b9, ===> Yes
uninstalling 8e54a21139ae96a2aca3129100b057662e2799b9

installing 3158857297417566824631a85c4cb3c0615ec6c2
cargo for x86_64-unknown-linux-gnu: 5.97 MB / 5.97 MB [================================================================================================================] 100.00 % 7.27 MB/s testing...
RESULT: 3158857297417566824631a85c4cb3c0615ec6c2, ===> Yes
uninstalling 3158857297417566824631a85c4cb3c0615ec6c2

installing 21cbbdc44de84e3ea99bca239091e5d1c49af654
cargo for x86_64-unknown-linux-gnu: 5.97 MB / 5.97 MB [================================================================================================================] 100.00 % 7.12 MB/s testing...
RESULT: 21cbbdc44de84e3ea99bca239091e5d1c49af654, ===> No
uninstalling 21cbbdc44de84e3ea99bca239091e5d1c49af654

installing dd4851d503f3fae0c0c742a19e0d8e6e2140bd2a
cargo for x86_64-unknown-linux-gnu: 5.97 MB / 5.97 MB [================================================================================================================] 100.00 % 7.58 MB/s testing...
RESULT: dd4851d503f3fae0c0c742a19e0d8e6e2140bd2a, ===> Yes
uninstalling dd4851d503f3fae0c0c742a19e0d8e6e2140bd2a

searched toolchains 3f5aee2d5241139d808f4fdece0026603489afd1 through 8e54a21139ae96a2aca3129100b057662e2799b9

********************************************************************************
Regression in dd4851d503f3fae0c0c742a19e0d8e6e2140bd2a
********************************************************************************

==================================================================================
= Please file this regression report on the rust-lang/rust GitHub repository     =
=        New issue: https://github.com/rust-lang/rust/issues/new                 =
=     Known issues: https://github.com/rust-lang/rust/issues                     =
= Copy and paste the text below into the issue report thread.  Thanks!           =
==================================================================================

searched nightlies: from nightly-2021-02-06 to nightly-2021-06-20
regressed nightly: nightly-2021-02-14
searched commits: from https://github.com/rust-lang/rust/commit/3f5aee2d5241139d808f4fdece0026603489afd1 to https://github.com/rust-lang/rust/commit/8e54a21139ae96a2aca3129100b057662e2799b9
regressed commit: https://github.com/rust-lang/rust/commit/dd4851d503f3fae0c0c742a19e0d8e6e2140bd2a

<details>
<summary>bisected with <a href='https://github.com/rust-lang/cargo-bisect-rustc'>cargo-bisect-rustc</a> v0.6.0</summary>

Host triple: x86_64-unknown-linux-gnu
Reproduce with:
```bash
cargo bisect-rustc --regress ice --test-dir=foo

jackh726 commented 3 years ago

Looks like #81995

steffahn commented 3 years ago

ICE happens on stable and also even without the #[feature(generic_associated_type)] line so no requires-nightly.

@rustbot label regression-from-stable-to-stable, A-traits

apiraino commented 3 years ago

Assigning priority as discussed in the Zulip thread of the Prioritization Working Group.

@rustbot label -I-prioritize +P-low