Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit 1fae45f

Browse files
authored
sp-npos-elections should not depend on itself (#6444)
This removes the `dev-dependency` onto `sp-npos-elections` from itself. A crate should not depend on itself directly, especially not to make any macros work.
1 parent 8032321 commit 1fae45f

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

primitives/npos-elections/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ sp-arithmetic = { version = "2.0.0-rc3", default-features = false, path = "../ar
2121
[dev-dependencies]
2222
substrate-test-utils = { version = "2.0.0-rc3", path = "../../test-utils" }
2323
rand = "0.7.3"
24-
sp-npos-elections = { version = "2.0.0-rc3", path = "." }
2524
sp-runtime = { version = "2.0.0-rc3", path = "../../primitives/runtime" }
2625

2726
[features]

primitives/npos-elections/compact/src/assignment.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
//! Code generation for the ratio assignment type.
1919
2020
use crate::field_name_for;
21-
use proc_macro2::{TokenStream as TokenStream2};
22-
use syn::{GenericArgument};
21+
use proc_macro2::TokenStream as TokenStream2;
22+
use syn::GenericArgument;
2323
use quote::quote;
2424

2525
fn from_impl(count: usize) -> TokenStream2 {

primitives/npos-elections/compact/src/lib.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -224,17 +224,19 @@ fn struct_def(
224224
}
225225

226226
fn imports() -> Result<TokenStream2> {
227-
let sp_phragmen_imports = match crate_name("sp-npos-elections") {
228-
Ok(sp_npos_elections) => {
229-
let ident = syn::Ident::new(&sp_npos_elections, Span::call_site());
230-
quote!( extern crate #ident as _phragmen; )
227+
if std::env::var("CARGO_PKG_NAME").unwrap() == "sp-npos-elections" {
228+
Ok(quote! {
229+
use crate as _phragmen;
230+
})
231+
} else {
232+
match crate_name("sp-npos-elections") {
233+
Ok(sp_npos_elections) => {
234+
let ident = syn::Ident::new(&sp_npos_elections, Span::call_site());
235+
Ok(quote!( extern crate #ident as _phragmen; ))
236+
},
237+
Err(e) => Err(syn::Error::new(Span::call_site(), &e)),
231238
}
232-
Err(e) => return Err(syn::Error::new(Span::call_site(), &e)),
233-
};
234-
235-
Ok(quote!(
236-
#sp_phragmen_imports
237-
))
239+
}
238240
}
239241

240242
struct CompactSolutionDef {

primitives/npos-elections/src/tests.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
//! Tests for npos-elections.
1919
20-
#![cfg(test)]
21-
2220
use crate::mock::*;
2321
use crate::{
2422
seq_phragmen, balance_solution, build_support_map, is_score_better, helpers::*,
@@ -772,10 +770,12 @@ fn score_comparison_large_value() {
772770

773771
mod compact {
774772
use codec::{Decode, Encode};
775-
use crate::{generate_compact_solution_type, VoteWeight};
776-
use super::{AccountId};
773+
use super::AccountId;
777774
// these need to come from the same dev-dependency `sp-npos-elections`, not from the crate.
778-
use sp_npos_elections::{Assignment, StakedAssignment, Error as PhragmenError, ExtendedBalance};
775+
use crate::{
776+
generate_compact_solution_type, VoteWeight, Assignment, StakedAssignment,
777+
Error as PhragmenError, ExtendedBalance,
778+
};
779779
use sp_std::{convert::{TryInto, TryFrom}, fmt::Debug};
780780
use sp_arithmetic::Percent;
781781

0 commit comments

Comments
 (0)