Allow arbitrary Horn clauses for inter-feature dependencies. #6789
Labels
A-features
Area: features — conditional compilation
C-feature-request
Category: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`
S-triage
Status: This issue is waiting on initial triage.
Sometimes it makes sense to enable feature Z if both features Y and feature Z are enabled. Simple example: #6658
Another example pops up in native library bindings:
It may also make sense to have clauses where resolution fails:
Note that this does not permit requirements of the form "featX or featY must be enabled". The naive algorithm that only enables a feature when all prerequisites are enabled still works (https://www.doc.ic.ac.uk/~rak/papers/kowalski-van_emden.pdf, the "model intersection property")
The text was updated successfully, but these errors were encountered: