Skip to content

Commit 99856dd

Browse files
committed
Warn on unexpected libstd pull
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
1 parent c45dc78 commit 99856dd

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

src/cmd/lint/nostd.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,9 @@ impl DefaultFeaturesDisabledCmd {
134134
let ret = if content.contains("#![cfg_attr(not(feature = \"std\"), no_std)]") ||
135135
content.contains("#![no_std]")
136136
{
137+
if content.contains("#![cfg(") {
138+
println!("WARN: Crate may unexpectedly pull in libstd: {}", krate.name);
139+
}
137140
log::debug!("Crate supports no-std: {} (path={})", krate.name, krate.manifest_path);
138141
true
139142
} else {

tests/integration/sdk/nostd.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,15 @@ cases:
55
- cmd: lint no-std default-features-of-nostd-dependencies-disabled
66
stdout: |
77
Default features not disabled for dependency: sp-core -> sp-externalities
8+
WARN: Crate may unexpectedly pull in libstd: frame-try-runtime
9+
WARN: Crate may unexpectedly pull in libstd: frame-benchmarking
810
Default features not disabled for dependency: sp-session -> sp-runtime
911
Default features not disabled for dependency: sp-consensus-babe -> sp-timestamp
12+
WARN: Crate may unexpectedly pull in libstd: frame-system-benchmarking
13+
WARN: Crate may unexpectedly pull in libstd: pallet-election-provider-support-benchmarking
14+
WARN: Crate may unexpectedly pull in libstd: pallet-nomination-pools-benchmarking
15+
WARN: Crate may unexpectedly pull in libstd: pallet-offences-benchmarking
16+
WARN: Crate may unexpectedly pull in libstd: pallet-session-benchmarking
1017
Default features not disabled for dependency: pallet-contracts -> pallet-contracts-proc-macro
1118
Default features not disabled for dependency: pallet-nomination-pools -> pallet-balances
1219
Default features not disabled for dependency: pallet-nomination-pools -> sp-tracing
@@ -16,6 +23,8 @@ cases:
1623
Default features not disabled for dependency: cumulus-primitives-parachain-inherent -> sp-runtime
1724
Default features not disabled for dependency: cumulus-primitives-parachain-inherent -> sp-state-machine
1825
Default features not disabled for dependency: cumulus-primitives-parachain-inherent -> sp-storage
26+
WARN: Crate may unexpectedly pull in libstd: cumulus-pallet-session-benchmarking
27+
WARN: Crate may unexpectedly pull in libstd: xcm-executor-integration-tests
1928
Default features not disabled for dependency: xcm-executor-integration-tests -> frame-system
2029
Default features not disabled for dependency: xcm-executor-integration-tests -> pallet-xcm
2130
Default features not disabled for dependency: xcm-executor-integration-tests -> polkadot-test-runtime
@@ -31,8 +40,15 @@ cases:
3140
- cmd: lint no-std default-features-of-nostd-dependencies-disabled --fix
3241
stdout: |
3342
Default features not disabled for dependency: sp-core -> sp-externalities
43+
WARN: Crate may unexpectedly pull in libstd: frame-try-runtime
44+
WARN: Crate may unexpectedly pull in libstd: frame-benchmarking
3445
Default features not disabled for dependency: sp-session -> sp-runtime
3546
Default features not disabled for dependency: sp-consensus-babe -> sp-timestamp
47+
WARN: Crate may unexpectedly pull in libstd: frame-system-benchmarking
48+
WARN: Crate may unexpectedly pull in libstd: pallet-election-provider-support-benchmarking
49+
WARN: Crate may unexpectedly pull in libstd: pallet-nomination-pools-benchmarking
50+
WARN: Crate may unexpectedly pull in libstd: pallet-offences-benchmarking
51+
WARN: Crate may unexpectedly pull in libstd: pallet-session-benchmarking
3652
Default features not disabled for dependency: pallet-contracts -> pallet-contracts-proc-macro
3753
Default features not disabled for dependency: pallet-nomination-pools -> pallet-balances
3854
Default features not disabled for dependency: pallet-nomination-pools -> sp-tracing
@@ -42,6 +58,8 @@ cases:
4258
Default features not disabled for dependency: cumulus-primitives-parachain-inherent -> sp-runtime
4359
Default features not disabled for dependency: cumulus-primitives-parachain-inherent -> sp-state-machine
4460
Default features not disabled for dependency: cumulus-primitives-parachain-inherent -> sp-storage
61+
WARN: Crate may unexpectedly pull in libstd: cumulus-pallet-session-benchmarking
62+
WARN: Crate may unexpectedly pull in libstd: xcm-executor-integration-tests
4563
Default features not disabled for dependency: xcm-executor-integration-tests -> frame-system
4664
Default features not disabled for dependency: xcm-executor-integration-tests -> pallet-xcm
4765
Default features not disabled for dependency: xcm-executor-integration-tests -> polkadot-test-runtime

0 commit comments

Comments
 (0)