mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 19:47:59 +00:00
Emit error when construct_runtime imports a non-existent pallet part (#8949)
* Emit error when construct_runtime imports a non-existent Call part * Reword and display pallet name when emitting part not found error * Migrate decl_outer_dispatch to a proc macro * Rename calls.rs to call.rs * Create new construct_runtime_v2 macro * Add UI test for importing non-existent call part in construct_runtime * Emit error when construct_runtime imports a non-existent Config part * Emit error when construct_runtime imports a non-existent Event part * Migrate decl_outer_inherent to a proc macro * Emit error when construct_runtime imports a non-existent Inherent part * Migrate decl_outer_validate_unsigned to a proc macro * Emit error when construct_runtime imports a non-existent ValidateUnsigned part * impl for old macro * fix line width * add doc * hide macroes and use unique counter everywhere * Remove construct_runtime_v2 * Encapsulate pallet part check macros in a module * Fix macro definitions in dummy part checker * Tag ProvideInherent impl with #[pallet::inherent] properly for authorship pallet * Remove Call part from pallets that do not define it * Add Call part unit tests * Remove undefined Call part import from offences pallet * Add tests for expand_outer_inherent * Remove Call part from pallets that do not define them * Remove Call part imports from pallets that do not have it defined * Remove Call part import of the offences pallet from grandpa pallet mocks * Update frame/support/test/tests/pallet.rs Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> * Remove Call part imports for pallets that do not define them * Move inherent tests to inherent_expand * Add unit tests for expand_outer_validate_unsigned * Add newline at the end of file * fix ui test * Small prayer to RNGsus for fixing CI * Remove Call part from construct_runtime for randomness collective flip pallet * Remove Call part import for randomness collective flip pallet * Summon Laplace's demon instead of praying to RNGsus * Update test expectations * fix ui test and make sure it's flaky * Revert "fix ui test and make sure it's flaky" This reverts commit 362b6881389c911ef8d9ef85d71c9463f5694b20. * Comment out test instead of putting it in conditional compilation * Update UI test expectations * Update UI test expectations * Emit error when construct_runtime imports a non-existent Origin part Co-authored-by: thiolliere <gui.thiolliere@gmail.com> Co-authored-by: Denis P <denis.pisarev@parity.io>
This commit is contained in:
@@ -29,9 +29,29 @@ mod clone_no_bound;
|
||||
mod partial_eq_no_bound;
|
||||
mod default_no_bound;
|
||||
mod key_prefix;
|
||||
mod dummy_part_checker;
|
||||
|
||||
pub(crate) use storage::INHERENT_INSTANCE_NAME;
|
||||
use proc_macro::TokenStream;
|
||||
use std::cell::RefCell;
|
||||
|
||||
thread_local! {
|
||||
/// A global counter, can be used to generate a relatively unique identifier.
|
||||
static COUNTER: RefCell<Counter> = RefCell::new(Counter(0));
|
||||
}
|
||||
|
||||
/// Counter to generate a relatively unique identifier for macros querying for the existence of
|
||||
/// pallet parts. This is necessary because declarative macros gets hoisted to the crate root,
|
||||
/// which shares the namespace with other pallets containing the very same query macros.
|
||||
struct Counter(u64);
|
||||
|
||||
impl Counter {
|
||||
fn inc(&mut self) -> u64 {
|
||||
let ret = self.0;
|
||||
self.0 += 1;
|
||||
ret
|
||||
}
|
||||
}
|
||||
|
||||
/// Declares strongly-typed wrappers around codec-compatible types in storage.
|
||||
///
|
||||
@@ -453,3 +473,9 @@ pub(crate) const NUMBER_OF_INSTANCE: u8 = 16;
|
||||
pub fn impl_key_prefix_for_tuples(input: TokenStream) -> TokenStream {
|
||||
key_prefix::impl_key_prefix_for_tuples(input).unwrap_or_else(syn::Error::into_compile_error).into()
|
||||
}
|
||||
|
||||
/// Internal macro use by frame_support to generate dummy part checker for old pallet declaration
|
||||
#[proc_macro]
|
||||
pub fn __generate_dummy_part_checker(input: TokenStream) -> TokenStream {
|
||||
dummy_part_checker::generate_dummy_part_checker(input)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user