Closed
Description
When building https://github.com/substrate-developer-hub/substrate-node-template , I've attempted to use the nightly version of Rust to speed up builds by using incremental compilation. Instead, I've encountered an ICE that suggested to create an issue.
Unfortunately, I was not able to minimize the error. I will try to minimize it, but the attempts to do so are hampered by extremely long build times. Which is why I would like to use incremental compilation in the first place.
Any directions on how to minimize the error are appreciated.
Code
These are the commands that can be used to reproduce the error:
# assuming debian/ubuntu, required dependencies
$ sudo apt install -y cmake pkg-config libssl-dev git build-essential clang libclang-dev curl
$ rustup target add wasm32-unknown-unknown --toolchain nightly
# at the moment of writing this issue, commit https://github.com/substrate-developer-hub/substrate-node-template/commit/3b547c94a23c5ff56b6773078215436c95c44ca0 was the latest
$ git clone https://github.com/substrate-developer-hub/substrate-node-template.git
$ cd substrate-node-template
$ cargo +nightly build
# -- wait 5 minutes --
$ touch runtime/src/lib.rs
$ RUST_BACKTRACE=1 cargo +nightly build
Meta
rustc --version --verbose
:
rustc 1.57.0-nightly (51e514c0f 2021-09-12)
binary: rustc
commit-hash: 51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8
commit-date: 2021-09-12
host: x86_64-unknown-linux-gnu
release: 1.57.0-nightly
LLVM version: 13.0.0
Error output
error: internal compiler error: encountered incremental compilation error with evaluate_obligation(656c2f434dba2d88-7e463fb72c1233f7)
|
= help: This is a known issue with the compiler. Run `cargo clean -p node_template` or `cargo clean` to allow your project to compile
= note: Please follow the instructions below to create a bug report with the provided information
= note: See <https://github.com/rust-lang/rust/issues/84970> for more information
thread 'rustc' panicked at 'Found unstable fingerprints for evaluate_obligation(656c2f434dba2d88-7e463fb72c1233f7): Ok(EvaluatedToOkModuloRegions)', /rustc/51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8/compiler/rustc_query_system/src/query/plumbing.rs:632:13
Backtrace
0: rust_begin_unwind
at /rustc/51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8/library/std/src/panicking.rs:517:5
1: std::panicking::begin_panic_fmt
at /rustc/51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8/library/std/src/panicking.rs:460:5
2: rustc_query_system::query::plumbing::incremental_verify_ich
3: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
4: rustc_query_system::query::plumbing::get_query
5: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::evaluate_obligation
6: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
7: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
8: rustc_trait_selection::traits::fulfill::FulfillProcessor::process_trait_obligation
9: rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations
10: rustc_data_structures::obligation_forest::ObligationForest<O>::process_obligations
11: rustc_trait_selection::traits::fulfill::FulfillmentContext::select
12: <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible
13: <rustc_infer::infer::InferCtxtBuilder as rustc_trait_selection::infer::InferCtxtBuilderExt>::enter_canonical_trait_query
14: rustc_traits::normalize_projection_ty::normalize_projection_ty
15: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
16: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
17: rustc_query_system::query::plumbing::get_query
18: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::normalize_projection_ty
19: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
20: rustc_middle::ty::subst::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>>::super_fold_with
21: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
22: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
23: rustc_middle::ty::subst::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>>::super_fold_with
24: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
25: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
26: <rustc_infer::infer::at::At as rustc_trait_selection::traits::query::normalize::AtExt>::normalize
27: rustc_infer::infer::InferCtxtBuilder::enter
28: core::ops::function::FnOnce::call_once
29: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
30: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
31: rustc_query_system::query::plumbing::get_query
32: rustc_middle::ty::normalize_erasing_regions::NormalizeAfterErasingRegionsFolder::normalize_generic_arg_after_erasing_regions
33: <rustc_middle::ty::normalize_erasing_regions::NormalizeAfterErasingRegionsFolder as rustc_middle::ty::fold::TypeFolder>::fold_ty
34: <rustc_monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator
35: rustc_monomorphize::collector::collect_neighbours
36: rustc_monomorphize::collector::collect_items_rec
37: rustc_monomorphize::collector::collect_items_rec
38: rustc_monomorphize::collector::collect_items_rec
39: rustc_monomorphize::collector::collect_items_rec
40: rustc_monomorphize::collector::collect_items_rec
41: rustc_monomorphize::collector::collect_items_rec
42: rustc_session::utils::<impl rustc_session::session::Session>::time
43: rustc_monomorphize::collector::collect_crate_mono_items
44: rustc_monomorphize::partitioning::collect_and_partition_mono_items
45: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
46: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
47: rustc_data_structures::stack::ensure_sufficient_stack
48: rustc_query_system::query::plumbing::try_execute_query
49: rustc_query_system::query::plumbing::force_query_impl
50: rustc_query_system::query::plumbing::force_query
51: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
52: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
53: rustc_query_system::query::plumbing::try_execute_query
54: rustc_query_system::query::plumbing::get_query
55: rustc_metadata::rmeta::encoder::EncodeContext::encode_crate_root
56: rustc_metadata::rmeta::encoder::encode_metadata_impl
57: rustc_data_structures::sync::join
58: rustc_metadata::rmeta::decoder::cstore_impl::<impl rustc_middle::middle::cstore::CrateStore for rustc_metadata::creader::CStore>::encode_metadata
59: rustc_middle::ty::context::TyCtxt::encode_metadata
60: rustc_interface::queries::Queries::ongoing_codegen
61: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
62: rustc_span::with_source_map
63: 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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: rustc 1.57.0-nightly (51e514c0f 2021-09-12) running on x86_64-unknown-linux-gnu
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type lib
note: some of the compiler flags provided by cargo are hidden
Query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>: std::marker::Sized`
#1 [normalize_projection_ty] normalizing `Canonical { max_universe: U0, variables: [], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: ProjectionTy { substs: [sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>], item_def_id: DefId(171:128 ~ futures_core[bda1]::stream::TryStream::Ok) } } }`
#2 [normalize_generic_arg_after_erasing_regions] normalizing `fn(jsonrpc_core::futures::stream::MapErr<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>, fn(sc_finality_grandpa::Error) -> sc_finality_grandpa::CommandOrError<sp_core::H256, u32> {<sc_finality_grandpa::CommandOrError<sp_core::H256, u32> as std::convert::From<sc_finality_grandpa::Error>>::from}>) -> jsonrpc_core::futures::stream::MapErr<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>, fn(sc_finality_grandpa::Error) -> sc_finality_grandpa::CommandOrError<sp_core::H256, u32> {<sc_finality_grandpa::CommandOrError<sp_core::H256, u32> as std::convert::From<sc_finality_grandpa::Error>>::from}> {jsonrpc_core::futures::stream::assert_stream::<sc_service::Result<<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>> as jsonrpc_core::futures::TryStream>::Ok, sc_finality_grandpa::CommandOrError<sp_core::H256, u32>>, jsonrpc_core::futures::stream::MapErr<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>, fn(sc_finality_grandpa::Error) -> sc_finality_grandpa::CommandOrError<sp_core::H256, u32> {<sc_finality_grandpa::CommandOrError<sp_core::H256, u32> as std::convert::From<sc_finality_grandpa::Error>>::from}>>}`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
#4 [exported_symbols] exported_symbols
end of query stack