# Issue: Dead Feature Pruning Removes Features Referenced by Other Features
## Summary
The dead feature pruning logic incorrectly removes features that are empty (no-op) but are still referenced by other features in the same crate.
## Reproduction
- **Repo**: helix-db
- **Crate**: `helix-db/helix-db/Cargo.toml`
The `api-key` feature is empty (a no-op):
```toml
api-key = []
```
But it's referenced by the `production` feature:
```toml
production = ["api-key", "server"]
```
cargo-rail's dead feature detection correctly identifies `api-key` as empty/dead, but incorrectly prunes it because it doesn't check if other features depend on it.
## Error After Unify
```
error: failed to load manifest for workspace member `/Users/mr.wolf/loadingalias/testing/helix-db/helix-db`
Caused by:
feature `production` includes `api-key` which is neither a dependency nor another feature
```
## Expected Behavior
Dead feature pruning should NOT remove a feature if:
1. It is referenced by another feature in the same crate's `[features]` table
2. It is part of a feature dependency chain
## Additional Reproductions
### tikv
- **Crate**: `components/engine_test/Cargo.toml`
- Feature `test-engine-kv-panic` is empty but referenced by `test-engines-panic`
- Error: `feature 'test-engines-panic' includes 'test-engine-kv-panic' which is neither a dependency nor another feature`
### polars (warnings, not failures)
- `polars-ops`: `gather` feature pruned but still referenced in code via `#[cfg(feature = "gather")]`
- `polars-utils`: `sysinfo` feature pruned but still referenced in code
### ruff (warnings, not failures)
- `ruff_dev`: `singlethreaded` feature pruned but still referenced in code
## Fix Location
Likely in `src/cargo/` - the feature scanning/pruning logic needs to build a dependency graph of features within each crate and only prune truly orphaned dead features.
## Additional Consideration
The dead feature detection should also check for `#[cfg(feature = "...")]` usage in the source code, not just Cargo.toml references. A feature may be "empty" in Cargo.toml but still used for conditional compilation.