Hello. I am using the Cargo [lints] feature that was recently stabilized in 1.74. I have this in my root Cargo.toml
[package]
name = "foo"
version = "0.1.0"
edition = "2021"
[dependencies]
...
#nix = { git = "file:////path/to/foo/crates/nix", features = ["feature", "ptrace", "process", "uio"] }
nix = { path = "crates/nix", features = ["feature", "ptrace", "process", "uio"] }
...
[workspace]
members = ["crates/*"]
[workspace.lints.rust]
unsafe_code = "allow"
trivial_casts = "allow"
trivial_numeric_casts = "allow"
[lints]
workspace = true
And in crates/nix/Cargo.toml I have:
[lints]
workspace = true
And I still keep errors when I run cargo build for the lints I have allowed. The main problem I see is rustc keeps getting the -D flags even for the ones I have allowed:
/home/ubuntu/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin/rustc \
--crate-name nix --edition=2021 crates/nix/src/lib.rs --error-format=json \
--json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=157 \
--crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 \
--allow=unsafe_code --allow=trivial_numeric_casts --allow=trivial_casts \
--cfg 'feature="default"' --cfg 'feature="feature"' --cfg 'feature="process"' --cfg 'feature="ptrace"' \
--cfg 'feature="uio"' -C metadata=e3f6e9b19a97f0b5 -C extra-filename=-e3f6e9b19a97f0b5 \
--out-dir /path/to/foo/target/debug/deps -C incremental=/path/to/foo/target/debug/incremental \
-L dependency=/path/to/foo/target/debug/deps \
--extern bitflags=/path/to/foo/target/debug/deps/libbitflags-35e551d87aae76df.rmeta \
--extern cfg_if=/path/to/foo/target/debug/deps/libcfg_if-60e6d5601ab4f054.rmeta \
--extern libc=/path/to/foo/target/debug/deps/liblibc-d99c089f17adab88.rmeta \
-Aunsafe-code \
'-Dclippy::all' \
-Ddead-code -Ddeprecated -Dfuture-incompatible -Dimproper-ctypes \
-Dmissing-debug-implementations -Dno-mangle-generic-items \
-Dnon-shorthand-field-patterns -Dnonstandard-style -Doverflowing-literals \
-Dpath-statements -Dpatterns-in-fns-without-body -Dprivate-in-public \
-Drust-2018-idioms -Dtrivial-casts -Dtrivial-numeric-casts -Dunconditional-recursion \
-Dunsafe-code -Dunused -Dunused-allocation -Dunused-comparisons \
-Dunused-extern_crates -Dunused-import_braces -Dunused-parens
What am I missing?
EDIT: Oddly I don't have this problem if I use git dependency (currently commented) in my Cargo.toml instead of a path dependency.