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

Type params and assoc types have unit metadata if they are sized #93977

Merged
merged 3 commits into from
Mar 15, 2022

Conversation

compiler-errors
Copy link
Member

Extend the logic in Pointee projection to ensure that we can satisfy <T as Pointee>::Metadata = () if T: Sized.

cc: @SimonSapin and #93959

@rustbot rustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Feb 13, 2022
@rust-highfive
Copy link
Collaborator

r? @wesleywiser

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 13, 2022
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@SimonSapin
Copy link
Contributor

SimonSapin commented Feb 14, 2022

Implementing #93959 on top of this causes an ICE:

Building stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling alloc v0.0.0 (/home/simon/projects/rust/library/alloc)
thread 'rustc' panicked at 'no entry found for key', compiler/rustc_metadata/src/rmeta/decoder.rs:1617:13
Building stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling alloc v0.0.0 (/home/simon/projects/rust/library/alloc)
thread 'rustc' panicked at 'no entry found for key', compiler/rustc_metadata/src/rmeta/decoder.rs:1617:13
stack backtrace:
   0:     0x7f6180be8ccc - std::backtrace_rs::backtrace::libunwind::trace::hc419169bf6ef9454
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f6180be8ccc - std::backtrace_rs::backtrace::trace_unsynchronized::h9d59fe14733c6869
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f6180be8ccc - std::sys_common::backtrace::_print_fmt::h7b4753f1990145e4
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x7f6180be8ccc - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he933bf90d5f823a3
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/sys_common/backtrace.rs:46:22
   4:     0x7f6180c49b5c - core::fmt::write::h4f22e68bd4c318cf
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/core/src/fmt/mod.rs:1168:17
   5:     0x7f6180bd8143 - std::io::Write::write_fmt::h91e45975cc2ac4f4
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/io/mod.rs:1660:15
   6:     0x7f6180becdd2 - std::sys_common::backtrace::_print::h53eaa013323ce8bd
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/sys_common/backtrace.rs:49:5
   7:     0x7f6180becdd2 - std::sys_common::backtrace::print::hddd71819e54744d2
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/sys_common/backtrace.rs:36:9
   8:     0x7f6180becdd2 - std::panicking::default_hook::{{closure}}::ha7bb60f433497f90
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/panicking.rs:211:50
   9:     0x7f6180bec9b5 - std::panicking::default_hook::he08c1b6dbe4ebf2d
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/panicking.rs:228:9
  10:     0x7f61813d95f1 - rustc_driver[6192c8833b08d212]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7f6180bed585 - std::panicking::rust_panic_with_hook::h4a7addec02e7dc8c
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/panicking.rs:610:17
  12:     0x7f6180bed280 - std::panicking::begin_panic_handler::{{closure}}::hd61a91341efd4038
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/panicking.rs:502:13
  13:     0x7f6180be9174 - std::sys_common::backtrace::__rust_end_short_backtrace::hf785c5cc16e3ea16
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/sys_common/backtrace.rs:139:18
  14:     0x7f6180becfb9 - rust_begin_unwind
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/panicking.rs:498:5
  15:     0x7f6180bb5041 - core::panicking::panic_fmt::ha2f5c0f1190ddcde
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/core/src/panicking.rs:107:14
  16:     0x7f6180c469e1 - core::panicking::panic_display::ha88d4cfddda37f53
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/core/src/panicking.rs:63:5
  17:     0x7f6180c4698b - core::panicking::panic_str::h1d816edb2312ac8d
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/core/src/panicking.rs:55:5
  18:     0x7f6180bb4f36 - core::option::expect_failed::hfe692c498deeb864
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/core/src/option.rs:1817:5
  19:     0x7f6182037a6e - <rustc_metadata[72dae10b32ad85]::creader::CStore as rustc_session[d69b998f511832b7]::cstore::CrateStore>::expn_hash_to_expn_id
  20:     0x7f6183869088 - <rustc_span[257a5d576bad4151]::hygiene::ExpnId as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode
  21:     0x7f6183869675 - <rustc_span[257a5d576bad4151]::hygiene::SyntaxContextData as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode
  22:     0x7f6182d508b1 - <rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder as rustc_middle[57c2e03db41ceede]::ty::codec::TyDecoder>::with_position::<<rustc_span[257a5d576bad4151]::hygiene::SyntaxContext as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode::{closure#0}::{closure#0}, core[5ae97c210862f887]::result::Result<rustc_span[257a5d576bad4151]::hygiene::SyntaxContextData, alloc[5dfd09a990d64525]::string::String>>
  23:     0x7f6182d894c1 - <rustc_span[257a5d576bad4151]::span_encoding::Span as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode
  24:     0x7f6182d8608b - <rustc_middle[57c2e03db41ceede]::ty::VariantDef as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode
  25:     0x7f6182d49d97 - <rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder as rustc_serialize[e0a901503b8dbcae]::serialize::Decoder>::read_seq::<alloc[5dfd09a990d64525]::vec::Vec<rustc_middle[57c2e03db41ceede]::ty::VariantDef>, <alloc[5dfd09a990d64525]::vec::Vec<rustc_middle[57c2e03db41ceede]::ty::VariantDef> as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode::{closure#0}>
  26:     0x7f61837f0347 - <rustc_middle[57c2e03db41ceede]::ty::adt::AdtDef as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode
  27:     0x7f6182d2ec4b - <rustc_middle[57c2e03db41ceede]::ty::sty::TyKind as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode
  28:     0x7f6182d7f2c1 - <&rustc_middle[57c2e03db41ceede]::ty::TyS as rustc_serialize[e0a901503b8dbcae]::serialize::Decodable<rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::CacheDecoder>>::decode
  29:     0x7f618380d029 - <rustc_query_impl[18d0a3fa2bdd5685]::on_disk_cache::OnDiskCache>::try_load_query_result::<&rustc_middle[57c2e03db41ceede]::ty::TyS>
  30:     0x7f6182cce098 - rustc_query_system[89fe9b701e431ad8]::query::plumbing::try_load_from_disk_and_cache_in_memory::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt, rustc_span[257a5d576bad4151]::def_id::DefId, &rustc_middle[57c2e03db41ceede]::ty::TyS>
  31:     0x7f6182d19ccc - <rustc_query_impl[18d0a3fa2bdd5685]::Queries as rustc_middle[57c2e03db41ceede]::ty::query::QueryEngine>::type_of
  32:     0x7f61828cc9d1 - <rustc_typeck[3061d5ce007a7ddd]::outlives::implicit_infer::InferVisitor as rustc_hir[486658192172cdf0]::itemlikevisit::ItemLikeVisitor>::visit_item
  33:     0x7f61828a425b - <rustc_middle[57c2e03db41ceede]::hir::map::Map>::visit_all_item_likes::<rustc_typeck[3061d5ce007a7ddd]::outlives::implicit_infer::InferVisitor>
  34:     0x7f6183556517 - rustc_typeck[3061d5ce007a7ddd]::outlives::inferred_outlives_crate
  35:     0x7f6181ce3d80 - <rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind as rustc_query_system[89fe9b701e431ad8]::dep_graph::DepKind>::with_deps::<<rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_middle[57c2e03db41ceede]::ty::context::TyCtxt, (), rustc_middle[57c2e03db41ceede]::ty::CratePredicatesMap>::{closure#0}, rustc_middle[57c2e03db41ceede]::ty::CratePredicatesMap>
  36:     0x7f6181db62e9 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[57c2e03db41ceede]::ty::context::TyCtxt, (), rustc_middle[57c2e03db41ceede]::ty::CratePredicatesMap>
  37:     0x7f6181cd09fc - rustc_data_structures[5bcc8dcfb4a3daf1]::stack::ensure_sufficient_stack::<(rustc_middle[57c2e03db41ceede]::ty::CratePredicatesMap, rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepNodeIndex), rustc_query_system[89fe9b701e431ad8]::query::plumbing::execute_job<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt, (), rustc_middle[57c2e03db41ceede]::ty::CratePredicatesMap>::{closure#3}>
  38:     0x7f61836f906b - rustc_query_system[89fe9b701e431ad8]::query::plumbing::try_execute_query::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt, rustc_query_system[89fe9b701e431ad8]::query::caches::ArenaCache<(), rustc_middle[57c2e03db41ceede]::ty::CratePredicatesMap>>
  39:     0x7f6181c755aa - rustc_query_system[89fe9b701e431ad8]::query::plumbing::force_query::<rustc_query_impl[18d0a3fa2bdd5685]::queries::inferred_outlives_crate, rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  40:     0x7f6181d233c6 - rustc_query_impl[18d0a3fa2bdd5685]::query_callbacks::inferred_outlives_crate::force_from_dep_node
  41:     0x7f6183ad7b21 - <rustc_middle[57c2e03db41ceede]::ty::context::TyCtxt as rustc_query_system[89fe9b701e431ad8]::dep_graph::DepContext>::try_force_from_dep_node
  42:     0x7f6182d5ef47 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  43:     0x7f6182d5e6f6 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  44:     0x7f6182d5e6f6 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  45:     0x7f6182d5e6f6 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  46:     0x7f6182d5e6f6 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  47:     0x7f6182d5e6f6 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  48:     0x7f6182d5e6f6 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  49:     0x7f6182d5e6f6 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  50:     0x7f6182cce5d6 - rustc_query_system[89fe9b701e431ad8]::query::plumbing::ensure_must_run::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt, rustc_span[257a5d576bad4151]::def_id::LocalDefId, ()>
  51:     0x7f618377f91a - rustc_query_system[89fe9b701e431ad8]::query::plumbing::get_query::<rustc_query_impl[18d0a3fa2bdd5685]::queries::check_mod_const_bodies, rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  52:     0x7f61832b34fd - <core[5ae97c210862f887]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[dcd6c118f3bc6900]::passes::analysis::{closure#0}::{closure#1}> as core[5ae97c210862f887]::ops::function::FnOnce<()>>::call_once
  53:     0x7f61832b003e - <rustc_session[d69b998f511832b7]::session::Session>::time::<(), rustc_interface[dcd6c118f3bc6900]::passes::analysis::{closure#0}>
  54:     0x7f618328ab6e - rustc_interface[dcd6c118f3bc6900]::passes::analysis
  55:     0x7f6183853446 - <rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepGraph<rustc_middle[57c2e03db41ceede]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[57c2e03db41ceede]::ty::context::TyCtxt, (), core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>
  56:     0x7f61837b09a3 - rustc_data_structures[5bcc8dcfb4a3daf1]::stack::ensure_sufficient_stack::<(core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>, rustc_query_system[89fe9b701e431ad8]::dep_graph::graph::DepNodeIndex), rustc_query_system[89fe9b701e431ad8]::query::plumbing::execute_job<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt, (), core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>::{closure#3}>
  57:     0x7f6183731f66 - rustc_query_system[89fe9b701e431ad8]::query::plumbing::try_execute_query::<rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt, rustc_query_system[89fe9b701e431ad8]::query::caches::DefaultCache<(), core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>>
  58:     0x7f618378ae75 - rustc_query_system[89fe9b701e431ad8]::query::plumbing::get_query::<rustc_query_impl[18d0a3fa2bdd5685]::queries::analysis, rustc_query_impl[18d0a3fa2bdd5685]::plumbing::QueryCtxt>
  59:     0x7f618326bab0 - <rustc_interface[dcd6c118f3bc6900]::interface::Compiler>::enter::<rustc_driver[6192c8833b08d212]::run_compiler::{closure#1}::{closure#2}, core[5ae97c210862f887]::result::Result<core[5ae97c210862f887]::option::Option<rustc_interface[dcd6c118f3bc6900]::queries::Linker>, rustc_errors[3fa4551cef5b7d38]::ErrorReported>>
  60:     0x7f618324d7bc - rustc_span[257a5d576bad4151]::with_source_map::<core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>, rustc_interface[dcd6c118f3bc6900]::interface::create_compiler_and_run<core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>, rustc_driver[6192c8833b08d212]::run_compiler::{closure#1}>::{closure#1}>
  61:     0x7f618326ae8e - rustc_interface[dcd6c118f3bc6900]::interface::create_compiler_and_run::<core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>, rustc_driver[6192c8833b08d212]::run_compiler::{closure#1}>
  62:     0x7f618324ed1b - <scoped_tls[bc78695e5e7f043a]::ScopedKey<rustc_span[257a5d576bad4151]::SessionGlobals>>::set::<rustc_interface[dcd6c118f3bc6900]::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface[dcd6c118f3bc6900]::interface::run_compiler<core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>, rustc_driver[6192c8833b08d212]::run_compiler::{closure#1}>::{closure#0}, core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>::{closure#0}::{closure#0}, core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>
  63:     0x7f618324eb15 - std[b709ef98f7a12fb4]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[dcd6c118f3bc6900]::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface[dcd6c118f3bc6900]::interface::run_compiler<core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>, rustc_driver[6192c8833b08d212]::run_compiler::{closure#1}>::{closure#0}, core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>::{closure#0}, core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>
  64:     0x7f618327b429 - <<std[b709ef98f7a12fb4]::thread::Builder>::spawn_unchecked<rustc_interface[dcd6c118f3bc6900]::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface[dcd6c118f3bc6900]::interface::run_compiler<core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>, rustc_driver[6192c8833b08d212]::run_compiler::{closure#1}>::{closure#0}, core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>::{closure#0}, core[5ae97c210862f887]::result::Result<(), rustc_errors[3fa4551cef5b7d38]::ErrorReported>>::{closure#1} as core[5ae97c210862f887]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  65:     0x7f6180bf91a3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2f7659ee59dd0ada
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/alloc/src/boxed.rs:1854:9
  66:     0x7f6180bf91a3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h95b83a7b24076276
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/alloc/src/boxed.rs:1854:9
  67:     0x7f6180bf91a3 - std::sys::unix::thread::Thread::new::thread_start::h1cd6c1faf6f6ab03
                               at /rustc/28c8a34e18fc05277c81328d1bbf5ed931f4d22e/library/std/src/sys/unix/thread.rs:108:17
  68:     0x7f6180b08259 - start_thread
  69:     0x7f6180a245e3 - __GI___clone
  70:                0x0 - <unknown>

error: internal compiler error: unexpected panic

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.59.0-beta.5 (28c8a34e1 2022-01-27) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z unstable-options -Z macro-backtrace -Z crate-attr=doc(html_root_url="https://doc.rust-lang.org/nightly/") -Z binary-dep-depinfo -Z force-unstable-if-unmarked -C opt-level=3 -C embed-bitcode=no -C debuginfo=0 -C incremental -C symbol-mangling-version=legacy -C link-args=-Wl,-z,origin -C link-args=-Wl,-rpath,$ORIGIN/../lib -C prefer-dynamic -C llvm-args=-import-instr-limit=10 --crate-type lib

note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [type_of] computing type of `sync::ArcInner::strong`
#1 [inferred_outlives_crate] computing the inferred outlives predicates for items in this crate
#2 [analysis] running analysis passes on this crate
end of query stack
error: could not compile `alloc`

Map indexing in expn_hash_to_expn_id panics:

for i in 0..end_id {
let i = ExpnIndex::from_u32(i);
if let Some(hash) = self.root.expn_hashes.get(self, i) {
map.insert(hash.decode(self), i);
}
}
map
});
map[&hash]

@compiler-errors
Copy link
Member Author

compiler-errors commented Feb 14, 2022

Are you sure you don't need to ./x.py clean? I see things like this when I have dirty build artifacts left over for stage0 after rebasing/changing lots of code.

Like I don't know if this is related to the PR.

@SimonSapin
Copy link
Contributor

Indeed ./x.py clean seems to fix this. That was confusing. Sorry for the noise!

@bors
Copy link
Contributor

bors commented Feb 15, 2022

☔ The latest upstream changes (presumably #93148) made this pull request unmergeable. Please resolve the merge conflicts.

@SimonSapin
Copy link
Contributor

@rust-log-analyzer

This comment has been minimized.

@compiler-errors
Copy link
Member Author

compiler-errors commented Feb 22, 2022

whoops! fixed bug after rebase

@compiler-errors compiler-errors force-pushed the sized-generic-metadata branch from b1d6179 to 210e829 Compare March 4, 2022 06:04
@compiler-errors

This comment was marked as outdated.

@compiler-errors
Copy link
Member Author

@wesleywiser, mind taking a look at this again? added that test you asked for

@wesleywiser
Copy link
Member

Thanks @compiler-errors!

@bors r+

@bors
Copy link
Contributor

bors commented Mar 14, 2022

📌 Commit 210e829 has been approved by wesleywiser

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 14, 2022
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 14, 2022
…askrgr

Rollup of 5 pull requests

Successful merges:

 - rust-lang#90621 (Stabilise `aarch64_target_feature`)
 - rust-lang#93977 (Type params and assoc types have unit metadata if they are sized)
 - rust-lang#94670 (Improve `expect` impl and handle `#[expect(unfulfilled_lint_expectations)]` (RFC 2383))
 - rust-lang#94884 (Fix remaining meta-variable expression TODOs)
 - rust-lang#94931 (update miri)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 774655d into rust-lang:master Mar 15, 2022
@rustbot rustbot added this to the 1.61.0 milestone Mar 15, 2022
@compiler-errors compiler-errors deleted the sized-generic-metadata branch April 7, 2022 04:32
SimonSapin added a commit to SimonSapin/rust that referenced this pull request May 13, 2022
Fixes rust-lang#93959

This change was accepted in https://rust-lang.github.io/rfcs/2580-ptr-meta.html

Note that this changes the signature of **stable** functions.
The change should be backward-compatible, but it is **insta-stable**
since it cannot (easily, at all?) be made available only
through a `#![feature(…)]` opt-in.

The RFC also proposed the same change for `NonNull::dangling`,
which makes sense it terms of its signature but not in terms of its implementation.
`dangling` uses `align_of()` as an address. But what `align_of()` should be for
extern types or whether it should be allowed at all remains an open question.

This commit depends on rust-lang#93977, which is not yet
part of the bootstrap compiler. So `#[cfg]` is used to only apply the change in
stage 1+. As far a I know bounds cannot be made conditional with `#[cfg]`, so the
entire functions are duplicated. This is unfortunate but temporary.

Since this duplication makes it less obvious in the diff,
the new definitions differ in:

* More permissive bounds (`Thin` instead of implied `Sized`)
* Different implementation
* Having `rustc_allow_const_fn_unstable(ptr_metadata)`
bors added a commit to rust-lang-ci/rust that referenced this pull request May 25, 2022
Extend ptr::null and null_mut to all thin (including extern) types

Fixes rust-lang#93959

This change was accepted in https://rust-lang.github.io/rfcs/2580-ptr-meta.html

Note that this changes the signature of **stable** functions. The change should be backward-compatible, but it is **insta-stable** since it cannot (easily, at all?) be made available only through a `#![feature(…)]` opt-in.

The RFC also proposed the same change for `NonNull::dangling`, which makes sense it terms of its signature but not in terms of its implementation. `dangling` uses `align_of()` as an address. But what `align_of()` should be for extern types or whether it should be allowed at all remains an open question.

This commit depends on rust-lang#93977, which is not yet part of the bootstrap compiler. So `#[cfg]` is used to only apply the change in stage 1+. As far a I know bounds cannot be made conditional with `#[cfg]`, so the entire functions are duplicated. This is unfortunate but temporary.

Since this duplication makes it less obvious in the diff, the new definitions differ in:

* More permissive bounds (`Thin` instead of implied `Sized`)
* Different implementation
* Having `rustc_allow_const_fn_unstable(const_fn_trait_bound)`
* Having `rustc_allow_const_fn_unstable(ptr_metadata)`
workingjubilee pushed a commit to tcdi/postgrestd that referenced this pull request Sep 15, 2022
Fixes rust-lang/rust#93959

This change was accepted in https://rust-lang.github.io/rfcs/2580-ptr-meta.html

Note that this changes the signature of **stable** functions.
The change should be backward-compatible, but it is **insta-stable**
since it cannot (easily, at all?) be made available only
through a `#![feature(…)]` opt-in.

The RFC also proposed the same change for `NonNull::dangling`,
which makes sense it terms of its signature but not in terms of its implementation.
`dangling` uses `align_of()` as an address. But what `align_of()` should be for
extern types or whether it should be allowed at all remains an open question.

This commit depends on rust-lang/rust#93977, which is not yet
part of the bootstrap compiler. So `#[cfg]` is used to only apply the change in
stage 1+. As far a I know bounds cannot be made conditional with `#[cfg]`, so the
entire functions are duplicated. This is unfortunate but temporary.

Since this duplication makes it less obvious in the diff,
the new definitions differ in:

* More permissive bounds (`Thin` instead of implied `Sized`)
* Different implementation
* Having `rustc_allow_const_fn_unstable(ptr_metadata)`
workingjubilee pushed a commit to tcdi/postgrestd that referenced this pull request Sep 15, 2022
Extend ptr::null and null_mut to all thin (including extern) types

Fixes rust-lang/rust#93959

This change was accepted in https://rust-lang.github.io/rfcs/2580-ptr-meta.html

Note that this changes the signature of **stable** functions. The change should be backward-compatible, but it is **insta-stable** since it cannot (easily, at all?) be made available only through a `#![feature(…)]` opt-in.

The RFC also proposed the same change for `NonNull::dangling`, which makes sense it terms of its signature but not in terms of its implementation. `dangling` uses `align_of()` as an address. But what `align_of()` should be for extern types or whether it should be allowed at all remains an open question.

This commit depends on rust-lang/rust#93977, which is not yet part of the bootstrap compiler. So `#[cfg]` is used to only apply the change in stage 1+. As far a I know bounds cannot be made conditional with `#[cfg]`, so the entire functions are duplicated. This is unfortunate but temporary.

Since this duplication makes it less obvious in the diff, the new definitions differ in:

* More permissive bounds (`Thin` instead of implied `Sized`)
* Different implementation
* Having `rustc_allow_const_fn_unstable(const_fn_trait_bound)`
* Having `rustc_allow_const_fn_unstable(ptr_metadata)`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants