Fix bug with features and optional dependencies #45
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes a bug where the fix for #41 was...not correct, and would erroneously prune out optional dependencies if the feature that brought them in did not exactly match their name, which was somehow a case I didn't run across testing.
This can be seen in, for example, wasmtime.
The bug was that since both
wasmtime-cranelift
andrayon
were marked as optional, the code would attempt to locatewasmtime-cranelift
in the features and fail, so now it properly looks to see if the any of the enabled features have subfeatures that enable the exact package id, getting rid of the broken name comparison.This also adds
Krate::direct_dependencies
for the same reason as havingdirect_dependents