1
Fork 0

Disallow enabling features without their implied features

This commit is contained in:
Caleb Zulawski 2024-08-06 00:35:32 -04:00
parent 0b98a0c727
commit 8818c95528
5 changed files with 11 additions and 23 deletions

View file

@ -447,19 +447,11 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for UnsafetyVisitor<'a, 'tcx> {
self.body_target_features.iter().any(|f| f.name == feature.name)
})
{
// Don't include implicit features in the error, unless only implicit
// features are missing.
let missing_explicit_features = callee_features.iter().any(|feature| {
!feature.implied
&& !self.body_target_features.iter().any(|body_feature| {
!feature.implied && body_feature.name == feature.name
})
});
let missing: Vec<_> = callee_features
.iter()
.copied()
.filter(|feature| {
!(missing_explicit_features && feature.implied)
!feature.implied
&& !self
.body_target_features
.iter()