rust-lang / rust

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

Rustc v1.70 nightly panics unexpectedly #113864

Open preston-evans98 opened 1 year ago

preston-evans98 commented 1 year ago

I tried this code: I was in the process of developing a somewhat complicated macro to derive clap::Parser on a generic type, and I encountered an unexpected panic in Rustc. The full code to reproduce the panic is here: https://github.com/Sovereign-Labs/sovereign-sdk/pull/423/commits/5935c6727e6f347f5f42fb4463e7595971799e01. To reproduce...

  1. git clone https://github.com/Sovereign-Labs/sovereign-sdk.git && cd sovereign-sdk
  2. git checkout 5935c6727e6f347f5f42fb4463e7595971799e01
  3. cargo check

I expected to see this happen: explanation

The code in question is almost certainly not correct, but it should have produced an error rather than a panic.

Instead, this happened: explanation

error[E0220]: associated type `Address` not found for `C`
  --> module-system/module-implementations/sov-bank/src/call.rs:33:28
   |
33 |         minter_address: C::Address,
   |                            ^^^^^^^ associated type `Address` not found

error[E0220]: associated type `Address` not found for `C`
  --> module-system/module-implementations/sov-bank/src/call.rs:35:36
   |
35 |         authorized_minters: Vec<C::Address>,
   |                                    ^^^^^^^ associated type `Address` not found

error[E0220]: associated type `Address` not found for `C`
  --> module-system/module-implementations/sov-bank/src/call.rs:41:16
   |
41 |         to: C::Address,
   |                ^^^^^^^ associated type `Address` not found

error[E0220]: associated type `Address` not found for `C`
  --> module-system/module-implementations/sov-bank/src/call.rs:57:28
   |
57 |         minter_address: C::Address,
   |                            ^^^^^^^ associated type `Address` not found

error[E0220]: associated type `Address` not found for `C`
  --> module-system/module-implementations/sov-bank/src/call.rs:63:27
   |
63 |         token_address: C::Address,
   |                           ^^^^^^^ associated type `Address` not found

For more information about this error, try `rustc --explain E0220`.
error: could not compile `sov-bank` due to 5 previous errors
warning: build failed, waiting for other jobs to finish...
error: could not compile `sov-bank` due to 5 previous errors
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<Self as std::marker::Sync>, polarity:Positive), []), Binder(OutlivesPredicate(ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrAnon(0, None) }), ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(TraitPredicate(<Self as query::ValueSetterRpcClient<C>>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Context>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::de::DeserializeOwned>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Deserialize<'de>>, polarity:Positive), [Region(BrNamed(DefId(24:1440 ~ serde[7c7f]::de::DeserializeOwned::'de), 'de))]), Binder(TraitPredicate(<C as call::_::_serde::Serialize>, polarity:Positive), []), Binder(TraitPredicate(<C as std::cmp::PartialEq>, polarity:Positive), []), Binder(TraitPredicate(<C as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<C as std::clone::Clone>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Spec>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<Self as jsonrpsee::jsonrpsee_core::client::ClientT>, polarity:Positive), []), Binder(OutlivesPredicate(Self, ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(OutlivesPredicate(C, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: [async block@module-system/module-implementations/examples/sov-value-setter/src/query.rs:11:1: 11:54] } }
- dep-node: dropck_outlives(7ccf0ccc180b24d0-180219d9f03062cc)', /rustc/7820b62d20bc548096d4632a3487987308cb4b5d/compiler/rustc_query_system/src/dep_graph/graph.rs:319:9
stack backtrace:
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<Self as std::marker::Sync>, polarity:Positive), []), Binder(OutlivesPredicate(ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrAnon(0, None) }), ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(TraitPredicate(<Self as query::AccountsRpcClient<C>>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Serialize>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Context>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::de::DeserializeOwned>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Deserialize<'de>>, polarity:Positive), [Region(BrNamed(DefId(23:1440 ~ serde[7c7f]::de::DeserializeOwned::'de), 'de))]), Binder(TraitPredicate(<C as std::cmp::PartialEq>, polarity:Positive), []), Binder(TraitPredicate(<C as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<C as std::clone::Clone>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Spec>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<Self as jsonrpsee::jsonrpsee_core::client::ClientT>, polarity:Positive), []), Binder(OutlivesPredicate(Self, ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(OutlivesPredicate(C, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: Normalize { value: [async block@module-system/module-implementations/sov-accounts/src/query.rs:13:1: 13:51] } } }
- dep-node: type_op_normalize_ty(f6bb5394a8f973c-61a6d7d0c9bdccd3)', /rustc/7820b62d20bc548096d4632a3487987308cb4b5d/compiler/rustc_query_system/src/dep_graph/graph.rs:319:9
stack backtrace:
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<Self as std::marker::Sync>, polarity:Positive), []), Binder(OutlivesPredicate(ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrAnon(0, None) }), ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(TraitPredicate(<Self as query::ElectionRpcClient<C>>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Context>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::de::DeserializeOwned>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Deserialize<'de>>, polarity:Positive), [Region(BrNamed(DefId(24:1440 ~ serde[7c7f]::de::DeserializeOwned::'de), 'de))]), Binder(TraitPredicate(<C as call::_::_serde::Serialize>, polarity:Positive), []), Binder(TraitPredicate(<C as std::cmp::PartialEq>, polarity:Positive), []), Binder(TraitPredicate(<C as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<C as std::clone::Clone>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Spec>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<Self as jsonrpsee::jsonrpsee_core::client::ClientT>, polarity:Positive), []), Binder(OutlivesPredicate(Self, ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(OutlivesPredicate(C, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: [async block@module-system/module-implementations/examples/sov-election/src/query.rs:18:1: 18:51] } }
- dep-node: dropck_outlives(d6b95b7bf90fe83d-5f2359250d627e38)', /rustc/7820b62d20bc548096d4632a3487987308cb4b5d/compiler/rustc_query_system/src/dep_graph/graph.rs:319:9
stack backtrace:
   0: _rust_begin_unwind
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::dropck_outlives, rustc_query_impl::plumbing::QueryCtxt>
   3: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::dropck_outlives
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::dropck_outlives, rustc_query_impl::plumbing::QueryCtxt>
   3: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::dropck_outlives
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::type_op_normalize_ty, rustc_query_impl::plumbing::QueryCtxt>
   3: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::type_op_normalize_ty
   4: <rustc_middle::ty::Ty as rustc_trait_selection::traits::query::type_op::normalize::Normalizable>::type_op_method
   4: <rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives as rustc_trait_selection::traits::query::type_op::QueryTypeOp>::perform_query
   4: <rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives as rustc_trait_selection::traits::query::type_op::QueryTypeOp>::perform_query
   5: <rustc_middle::traits::query::type_op::Normalize<rustc_middle::ty::Ty> as rustc_trait_selection::traits::query::type_op::QueryTypeOp>::fully_perform_into
   6: <rustc_middle::ty::ParamEnvAnd<rustc_middle::traits::query::type_op::Normalize<rustc_middle::ty::Ty>> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   5: <rustc_middle::ty::ParamEnvAnd<rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   5: <rustc_middle::ty::ParamEnvAnd<rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   7: rustc_borrowck::type_check::free_region_relations::create
   6: rustc_borrowck::type_check::liveness::trace::trace
   6: rustc_borrowck::type_check::liveness::trace::trace
   8: rustc_borrowck::type_check::type_check
   7: rustc_borrowck::type_check::liveness::generate
   8: rustc_borrowck::type_check::type_check
   9: rustc_borrowck::nll::compute_regions
   9: rustc_borrowck::nll::compute_regions
   7: rustc_borrowck::type_check::liveness::generate
   8: rustc_borrowck::type_check::type_check
   9: rustc_borrowck::nll::compute_regions
  10: rustc_borrowck::do_mir_borrowck
  10: rustc_borrowck::do_mir_borrowck
  11: rustc_borrowck::mir_borrowck
  11: rustc_borrowck::mir_borrowck
  10: rustc_borrowck::do_mir_borrowck
  12: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  12: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  11: rustc_borrowck::mir_borrowck
  13: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  12: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  13: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  13: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  16: <rustc_borrowck::type_check::TypeChecker>::prove_closure_bounds
  17: <rustc_borrowck::type_check::TypeChecker>::check_rvalue
  18: <rustc_borrowck::type_check::TypeChecker>::typeck_mir
  19: rustc_borrowck::type_check::type_check
  20: rustc_borrowck::nll::compute_regions
  21: rustc_borrowck::do_mir_borrowck
  22: rustc_borrowck::mir_borrowck
  23: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  24: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
  25: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  26: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  27: rustc_data_structures::sync::par_for_each_in::<&[rustc_span::def_id::LocalDefId], <rustc_middle::hir::map::Map>::par_body_owners<rustc_interface::passes::analysis::{closure#2}::{closure#0}>::{closure#0}>
  16: rustc_data_structures::sync::par_for_each_in::<&[rustc_span::def_id::LocalDefId], <rustc_middle::hir::map::Map>::par_body_owners<rustc_interface::passes::analysis::{closure#2}::{closure#0}>::{closure#0}>
  16: rustc_data_structures::sync::par_for_each_in::<&[rustc_span::def_id::LocalDefId], <rustc_middle::hir::map::Map>::par_body_owners<rustc_interface::passes::analysis::{closure#2}::{closure#0}>::{closure#0}>
  17: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#2}>
  28: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#2}>
  18: rustc_interface::passes::analysis
  19: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  29: rustc_interface::passes::analysis
  21: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  17: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#2}>
  18: rustc_interface::passes::analysis
  19: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  21: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  22: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  30: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  31: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  23: rustc_span::with_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  32: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

  22: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  33: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  34: rustc_span::with_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

  23: rustc_span::with_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.
error: the compiler unexpectedly panicked. this is a bug.
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.70.0-nightly (7820b62d2 2023-03-05) running on aarch64-apple-darwin

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: compiler flags: --crate-type lib -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:

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.70.0-nightly (7820b62d2 2023-03-05) running on aarch64-apple-darwin

note: rustc 1.70.0-nightly (7820b62d2 2023-03-05) running on aarch64-apple-darwin

note: compiler flags: --crate-type lib -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden
note: compiler flags: --crate-type lib -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

query stack during panic:

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [type_op_normalize_ty] normalizing `[async block@module-system/module-implementations/sov-accounts/src/query.rs:13:1: 13:51]`
#0 [dropck_outlives] computing dropck types for `[async block@module-system/module-implementations/examples/sov-value-setter/src/query.rs:11:1: 11:54]`
#1 [mir_borrowck] borrow-checking `query::ValueSetterRpcClient::query_value`
#0 [dropck_outlives] computing dropck types for `[async block@module-system/module-implementations/examples/sov-election/src/query.rs:18:1: 18:51]`
#2 [analysis] running analysis passes on this crate
end of query stack
#1 [mir_borrowck] borrow-checking `query::ElectionRpcClient::results`
#1 [mir_borrowck] borrow-checking `query::AccountsRpcClient::get_account::{closure#0}`
#2 [analysis] running analysis passes on this crate
end of query stack
#2 [mir_borrowck] borrow-checking `query::AccountsRpcClient::get_account`
#3 [analysis] running analysis passes on this crate
end of query stack
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<Self as std::marker::Sync>, polarity:Positive), []), Binder(OutlivesPredicate(ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrAnon(0, None) }), ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(TraitPredicate(<Self as query::ValueSetterRpcClient<C>>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Context>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::de::DeserializeOwned>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Deserialize<'de>>, polarity:Positive), [Region(BrNamed(DefId(24:1440 ~ serde[7c7f]::de::DeserializeOwned::'de), 'de))]), Binder(TraitPredicate(<C as call::_::_serde::Serialize>, polarity:Positive), []), Binder(TraitPredicate(<C as std::cmp::PartialEq>, polarity:Positive), []), Binder(TraitPredicate(<C as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<C as std::clone::Clone>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Spec>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<Self as jsonrpsee::jsonrpsee_core::client::ClientT>, polarity:Positive), []), Binder(OutlivesPredicate(Self, ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(OutlivesPredicate(C, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: [async block@module-system/module-implementations/examples/sov-value-setter/src/query.rs:11:1: 11:54] } }
- dep-node: dropck_outlives(87f6d64bdd0a8797-428a5194c5c83bee)', /rustc/7820b62d20bc548096d4632a3487987308cb4b5d/compiler/rustc_query_system/src/dep_graph/graph.rs:319:9
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::dropck_outlives, rustc_query_impl::plumbing::QueryCtxt>
   3: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::dropck_outlives
   4: <rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives as rustc_trait_selection::traits::query::type_op::QueryTypeOp>::perform_query
   5: <rustc_middle::ty::ParamEnvAnd<rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   6: rustc_borrowck::type_check::liveness::trace::trace
   7: rustc_borrowck::type_check::liveness::generate
   8: rustc_borrowck::type_check::type_check
   9: rustc_borrowck::nll::compute_regions
  10: rustc_borrowck::do_mir_borrowck
  11: rustc_borrowck::mir_borrowck
  12: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  13: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  16: rustc_data_structures::sync::par_for_each_in::<&[rustc_span::def_id::LocalDefId], <rustc_middle::hir::map::Map>::par_body_owners<rustc_interface::passes::analysis::{closure#2}::{closure#0}>::{closure#0}>
  17: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#2}>
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
  18: rustc_interface::passes::analysis
  19: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<Self as std::marker::Sync>, polarity:Positive), []), Binder(OutlivesPredicate(ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrAnon(0, None) }), ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(TraitPredicate(<Self as query::AccountsRpcClient<C>>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Serialize>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Context>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::de::DeserializeOwned>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Deserialize<'de>>, polarity:Positive), [Region(BrNamed(DefId(23:1440 ~ serde[7c7f]::de::DeserializeOwned::'de), 'de))]), Binder(TraitPredicate(<C as std::cmp::PartialEq>, polarity:Positive), []), Binder(TraitPredicate(<C as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<C as std::clone::Clone>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Spec>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<Self as jsonrpsee::jsonrpsee_core::client::ClientT>, polarity:Positive), []), Binder(OutlivesPredicate(Self, ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(OutlivesPredicate(C, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: [async block@module-system/module-implementations/sov-accounts/src/query.rs:13:1: 13:51] } }
  20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  21: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  22: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
- dep-node: dropck_outlives(7aeed422094d432e-35c152309d5fd570)', /rustc/7820b62d20bc548096d4632a3487987308cb4b5d/compiler/rustc_query_system/src/dep_graph/graph.rs:319:9
  23: rustc_span::with_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
   0: _rust_begin_unwind

   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::dropck_outlives, rustc_query_impl::plumbing::QueryCtxt>
   3: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::dropck_outlives
   4: <rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives as rustc_trait_selection::traits::query::type_op::QueryTypeOp>::perform_query
   5: <rustc_middle::ty::ParamEnvAnd<rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   6: rustc_borrowck::type_check::liveness::trace::trace
   7: rustc_borrowck::type_check::liveness::generate
   8: rustc_borrowck::type_check::type_check
   9: rustc_borrowck::nll::compute_regions
  10: rustc_borrowck::do_mir_borrowck
  11: rustc_borrowck::mir_borrowck
  12: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  13: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  16: rustc_data_structures::sync::par_for_each_in::<&[rustc_span::def_id::LocalDefId], <rustc_middle::hir::map::Map>::par_body_owners<rustc_interface::passes::analysis::{closure#2}::{closure#0}>::{closure#0}>
  17: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#2}>
  18: rustc_interface::passes::analysis
  19: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  21: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  22: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  23: rustc_span::with_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
error: the compiler unexpectedly panicked. this is a bug.
thread 'rustc' panicked at 'forcing query with already existing `DepNode`

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.70.0-nightly (7820b62d2 2023-03-05) running on aarch64-apple-darwin

note: compiler flags: --crate-type lib -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [dropck_outlives] computing dropck types for `[async block@module-system/module-implementations/examples/sov-value-setter/src/query.rs:11:1: 11:54]`
#1 [mir_borrowck] borrow-checking `query::ValueSetterRpcClient::health`
#2 [analysis] running analysis passes on this crate
end of query stack
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<Self as std::marker::Sync>, polarity:Positive), []), Binder(OutlivesPredicate(ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrAnon(0, None) }), ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(TraitPredicate(<Self as query::ElectionRpcClient<C>>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Context>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::de::DeserializeOwned>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Deserialize<'de>>, polarity:Positive), [Region(BrNamed(DefId(24:1440 ~ serde[7c7f]::de::DeserializeOwned::'de), 'de))]), Binder(TraitPredicate(<C as call::_::_serde::Serialize>, polarity:Positive), []), Binder(TraitPredicate(<C as std::cmp::PartialEq>, polarity:Positive), []), Binder(TraitPredicate(<C as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<C as std::clone::Clone>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Spec>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<Self as jsonrpsee::jsonrpsee_core::client::ClientT>, polarity:Positive), []), Binder(OutlivesPredicate(Self, ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(OutlivesPredicate(C, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: [async block@module-system/module-implementations/examples/sov-election/src/query.rs:18:1: 18:51] } }
- dep-node: dropck_outlives(efd0f0b5b5947967-953f697ac0885810)', /rustc/7820b62d20bc548096d4632a3487987308cb4b5d/compiler/rustc_query_system/src/dep_graph/graph.rs:319:9
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::dropck_outlives, rustc_query_impl::plumbing::QueryCtxt>
   3: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::dropck_outlives
   4: <rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives as rustc_trait_selection::traits::query::type_op::QueryTypeOp>::perform_query
   5: <rustc_middle::ty::ParamEnvAnd<rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   6: rustc_borrowck::type_check::liveness::trace::trace
   7: rustc_borrowck::type_check::liveness::generate
   8: rustc_borrowck::type_check::type_check
   9: rustc_borrowck::nll::compute_regions
  10: rustc_borrowck::do_mir_borrowck
  11: rustc_borrowck::mir_borrowck
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
  12: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once

  13: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
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
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>

note: rustc 1.70.0-nightly (7820b62d2 2023-03-05) running on aarch64-apple-darwin

  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  16: rustc_data_structures::sync::par_for_each_in::<&[rustc_span::def_id::LocalDefId], <rustc_middle::hir::map::Map>::par_body_owners<rustc_interface::passes::analysis::{closure#2}::{closure#0}>::{closure#0}>
  17: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#2}>
  18: rustc_interface::passes::analysis
  19: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  21: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  22: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  23: rustc_span::with_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

note: compiler flags: --crate-type lib -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [dropck_outlives] computing dropck types for `[async block@module-system/module-implementations/sov-accounts/src/query.rs:13:1: 13:51]`
#1 [mir_borrowck] borrow-checking `query::AccountsRpcClient::health`
#2 [analysis] running analysis passes on this crate
end of query stack
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.70.0-nightly (7820b62d2 2023-03-05) running on aarch64-apple-darwin

note: compiler flags: --crate-type lib -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [dropck_outlives] computing dropck types for `[async block@module-system/module-implementations/examples/sov-election/src/query.rs:18:1: 18:51]`
#1 [mir_borrowck] borrow-checking `query::ElectionRpcClient::number_of_votes`
#2 [analysis] running analysis passes on this crate
end of query stack
thread 'rustc' panicked at 'forcing query with already existing `DepNode`
- query-key: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [Binder(TraitPredicate(<Self as std::marker::Sync>, polarity:Positive), []), Binder(OutlivesPredicate(ReLateBound(DebruijnIndex(1), BoundRegion { var: 0, kind: BrAnon(0, None) }), ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(TraitPredicate(<Self as query::ElectionRpcClient<C>>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sync>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Send>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Context>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::de::DeserializeOwned>, polarity:Positive), []), Binder(TraitPredicate(<C as call::_::_serde::Deserialize<'de>>, polarity:Positive), [Region(BrNamed(DefId(24:1440 ~ serde[7c7f]::de::DeserializeOwned::'de), 'de))]), Binder(TraitPredicate(<C as call::_::_serde::Serialize>, polarity:Positive), []), Binder(TraitPredicate(<C as std::cmp::PartialEq>, polarity:Positive), []), Binder(TraitPredicate(<C as std::fmt::Debug>, polarity:Positive), []), Binder(TraitPredicate(<C as std::clone::Clone>, polarity:Positive), []), Binder(TraitPredicate(<C as sov_modules_api::Spec>, polarity:Positive), []), Binder(TraitPredicate(<C as std::marker::Sized>, polarity:Positive), []), Binder(TraitPredicate(<Self as jsonrpsee::jsonrpsee_core::client::ClientT>, polarity:Positive), []), Binder(OutlivesPredicate(Self, ReLateBound(DebruijnIndex(1), BoundRegion { var: 1, kind: BrAnon(1, None) })), []), Binder(OutlivesPredicate(C, ReStatic), [])], reveal: UserFacing, constness: NotConst }, value: [async block@module-system/module-implementations/examples/sov-election/src/query.rs:18:1: 18:51] } }
- dep-node: dropck_outlives(135854a5ea1d5842-ba289381b4a221d3)', /rustc/7820b62d20bc548096d4632a3487987308cb4b5d/compiler/rustc_query_system/src/dep_graph/graph.rs:319:9
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::dropck_outlives, rustc_query_impl::plumbing::QueryCtxt>
   3: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::dropck_outlives
   4: <rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives as rustc_trait_selection::traits::query::type_op::QueryTypeOp>::perform_query
   5: <rustc_middle::ty::ParamEnvAnd<rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform
   6: rustc_borrowck::type_check::liveness::trace::trace
   7: rustc_borrowck::type_check::liveness::generate
   8: rustc_borrowck::type_check::type_check
   9: rustc_borrowck::nll::compute_regions
  10: rustc_borrowck::do_mir_borrowck
  11: rustc_borrowck::mir_borrowck
  12: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
  13: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>::{closure#0}, &rustc_middle::mir::query::BorrowCheckResult>
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_borrowck
  16: rustc_data_structures::sync::par_for_each_in::<&[rustc_span::def_id::LocalDefId], <rustc_middle::hir::map::Map>::par_body_owners<rustc_interface::passes::analysis::{closure#2}::{closure#0}>::{closure#0}>
  17: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#2}>
  18: rustc_interface::passes::analysis
  19: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, (), core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  21: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  22: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  23: rustc_span::with_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.70.0-nightly (7820b62d2 2023-03-05) running on aarch64-apple-darwin

note: compiler flags: --crate-type lib -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [dropck_outlives] computing dropck types for `[async block@module-system/module-implementations/examples/sov-election/src/query.rs:18:1: 18:51]`
#1 [mir_borrowck] borrow-checking `query::ElectionRpcClient::health`
#2 [analysis] running analysis passes on this crate
end of query stack
error: could not compile `sov-accounts`
error: could not compile `sov-election`
error: could not compile `sov-value-setter`

Meta

rustc --version --verbose:

rustc 1.70.0-nightly (7820b62d2 2023-03-05)
binary: rustc
commit-hash: 7820b62d20bc548096d4632a3487987308cb4b5d
commit-date: 2023-03-05
host: aarch64-apple-darwin
release: 1.70.0-nightly
LLVM version: 15.0.7
GrigorenkoPV commented 9 months ago

A bit hard to bisect this one, considering there's no Cargo.lock and most of the dependencies end up being resolved to a version too new for the compiler to handle (not to mention reproducibility). As an additional bonus, the specified commit cannot even be found in the repository (thankfully, it is still possible to just download it as an archive instead of cloning it).