-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Open
Labels
A-diagnosticsArea: Error and warning messages generated by Cargo itself.Area: Error and warning messages generated by Cargo itself.A-featuresArea: features — conditional compilationArea: features — conditional compilationS-triageStatus: This issue is waiting on initial triage.Status: This issue is waiting on initial triage.
Description
Anybody who does not know that optional dependencies implicitly define a feature of the same name might end up with a Cargo.toml
file like the following:
[package]
name = "foo"
version = "0.1.0"
edition = "2021"
[dependencies]
tokio = { version = "1", optional = true }
[features]
tokio = ["tokio"]
For this entirely reasonable human error Cargo however yields a completely confusing error message:
error: failed to parse manifest at `/tmp/foo/Cargo.toml`
Caused by:
optional dependency `tokio` is not included in any feature
Make sure that `dep:tokio` is included in one of features in the [features] table.
Reproduced with:
% cargo --version
cargo 1.56.0 (4ed5d137b 2021-10-04)
% cargo +nightly --version
cargo 1.58.0-nightly (ad50d0d26 2021-11-17)
schneiderfelipe
Metadata
Metadata
Assignees
Labels
A-diagnosticsArea: Error and warning messages generated by Cargo itself.Area: Error and warning messages generated by Cargo itself.A-featuresArea: features — conditional compilationArea: features — conditional compilationS-triageStatus: This issue is waiting on initial triage.Status: This issue is waiting on initial triage.