Closed
Description
Code
All files packaged in a single Gist: https://gist.github.com/yvt/da205c5805b14f85c6c133c193b00485
lib1/src/lib.rs
:
use lib2::func_name;
pub const ARRAY: [u32; 4] = [0; 4];
pub const A: () = func_name::<{ARRAY.as_ptr()}>();
pub const B: () = func_name::<{ARRAY.as_ptr()}>();
lib2/src/lib.rs
:
#![feature(const_compare_raw_pointers)]
#![feature(const_generics)]
pub const fn func_name<const X: *const u32>() {}
Meta
rustc --version --verbose
:
$ rustc --version --verbose
rustc 1.46.0-nightly (feb3536eb 2020-06-09)
binary: rustc
commit-hash: feb3536eba10c2e4585d066629598f03d5ddc7c6
commit-date: 2020-06-09
host: x86_64-apple-darwin
release: 1.46.0-nightly
LLVM version: 10.0
Error output
warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes
--> WORKSPACE_DIRECTORY/lib2/src/lib.rs:2:12
|
2 | #![feature(const_generics)]
| ^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information
warning: 1 warning emitted
Compiling lib1 v0.1.0 (WORKSPACE_DIRECTORY/lib1)
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
- query-key: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All, def_id: None }, value: fn() {lib2::func_name::<{&_: *const u32}>} }
- dep-node: layout_raw(4fe507491a1ba333-41649aa2143e2d01)', /rustc/feb3536eba10c2e4585d066629598f03d5ddc7c6/src/libstd/macros.rs:16:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
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/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.46.0-nightly (feb3536eb 2020-06-09) running on x86_64-apple-darwin
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental -C target-cpu=native --crate-type lib
note: some of the compiler flags provided by cargo are hidden
error: could not compile `lib1`.
To learn more, run the command again with --verbose.
Backtrace
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
- query-key: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All, def_id: None }, value: fn() {lib2::func_name::<{&_: *const u32}>} }
- dep-node: layout_raw(4fe507491a1ba333-41649aa2143e2d01)', /rustc/feb3536eba10c2e4585d066629598f03d5ddc7c6/src/libstd/macros.rs:16:9
stack backtrace:
0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
1: core::fmt::write
2: std::io::Write::write_fmt
3: std::panicking::default_hook::{{closure}}
4: std::panicking::default_hook
5: rustc_driver::report_ice
6: std::panicking::rust_panic_with_hook
7: rust_begin_unwind
8: std::panicking::begin_panic_fmt
9: rustc_query_system::query::plumbing::get_query_impl
10: <rustc_middle::ty::layout::LayoutCx<rustc_middle::ty::query::TyCtxtAt> as rustc_target::abi::LayoutOf>::layout_of
11: rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::eval_const_to_op
12: rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::eval_operand
13: rustc_mir::interpret::step::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::run
14: rustc_mir::const_eval::eval_queries::const_eval_raw_provider
15: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::const_eval_raw>::compute
16: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
17: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
18: rustc_query_system::query::plumbing::get_query_impl::{{closure}}
19: rustc_query_system::query::plumbing::get_query_impl
20: rustc_mir::const_eval::eval_queries::const_eval_validated_provider
21: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::const_eval_validated>::compute
22: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
23: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
24: rustc_query_system::query::plumbing::get_query_impl::{{closure}}
25: rustc_query_system::query::plumbing::get_query_impl
26: rustc_mir::const_eval::eval_queries::const_eval_validated_provider
27: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::const_eval_validated>::compute
28: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
29: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
30: rustc_data_structures::stack::ensure_sufficient_stack
31: rustc_query_system::query::plumbing::get_query_impl
32: rustc_middle::mir::interpret::queries::<impl rustc_middle::ty::context::TyCtxt>::const_eval_global_id
33: rustc_middle::mir::interpret::queries::<impl rustc_middle::ty::context::TyCtxt>::const_eval_poly
34: <rustc_lint::BuiltinCombinedLateLintPass as rustc_lint::passes::LateLintPass>::check_item
35: rustc_hir::intravisit::Visitor::visit_nested_item
36: rustc_hir::intravisit::walk_crate
37: rustc_session::utils::<impl rustc_session::session::Session>::time
38: std::panicking::try
39: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
40: rustc_session::utils::<impl rustc_session::session::Session>::time
41: rustc_interface::passes::analysis
42: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
43: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
44: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
45: rustc_query_system::query::plumbing::get_query_impl
46: rustc_middle::ty::context::tls::enter_global
47: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
48: rustc_span::with_source_map
49: rustc_interface::interface::run_compiler_in_existing_thread_pool
50: scoped_tls::ScopedKey<T>::set
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
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/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.46.0-nightly (feb3536eb 2020-06-09) running on x86_64-apple-darwin
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental -C target-cpu=native --crate-type lib
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [const_eval_raw] const-evaluating `B`
#1 [const_eval_validated] const-evaluating + checking `B`
#2 [const_eval_validated] const-evaluating + checking `B`
#3 [analysis] running analysis passes on this crate
end of query stack
error: could not compile `lib1`.
To learn more, run the command again with --verbose.