Do not use HashSet
for #[rustc_must_implement_one_of]
This commit is contained in:
parent
c30ec5a6fd
commit
f9174e1d80
4 changed files with 7 additions and 7 deletions
compiler/rustc_typeck/src/check
src/test/ui/traits/default-method
|
@ -980,8 +980,8 @@ fn check_impl_items_against_trait<'tcx>(
|
|||
// Check for missing items from trait
|
||||
let mut missing_items = Vec::new();
|
||||
|
||||
let mut must_implement_one_of: Option<FxHashSet<Ident>> =
|
||||
trait_def.must_implement_one_of.as_deref().map(|slice| slice.iter().copied().collect());
|
||||
let mut must_implement_one_of: Option<&[Ident]> =
|
||||
trait_def.must_implement_one_of.as_deref();
|
||||
|
||||
for &trait_item_id in tcx.associated_item_def_ids(impl_trait_ref.def_id) {
|
||||
let is_implemented = ancestors
|
||||
|
@ -1020,7 +1020,7 @@ fn check_impl_items_against_trait<'tcx>(
|
|||
.find(|attr| attr.has_name(sym::rustc_must_implement_one_of))
|
||||
.map(|attr| attr.span);
|
||||
|
||||
missing_items_must_implement_one_of_err(tcx, impl_span, &missing_items, attr_span);
|
||||
missing_items_must_implement_one_of_err(tcx, impl_span, missing_items, attr_span);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -644,7 +644,7 @@ fn missing_items_err(
|
|||
fn missing_items_must_implement_one_of_err(
|
||||
tcx: TyCtxt<'_>,
|
||||
impl_span: Span,
|
||||
missing_items: &FxHashSet<Ident>,
|
||||
missing_items: &[Ident],
|
||||
annotation_span: Option<Span>,
|
||||
) {
|
||||
let missing_items_msg =
|
||||
|
|
|
@ -39,6 +39,6 @@ impl Equal for T2 {
|
|||
}
|
||||
|
||||
impl Equal for T3 {}
|
||||
//~^ not all trait items implemented, missing one of: `neq`, `eq`
|
||||
//~^ not all trait items implemented, missing one of: `eq`, `neq`
|
||||
|
||||
fn main() {}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
error[E0046]: not all trait items implemented, missing one of: `neq`, `eq`
|
||||
error[E0046]: not all trait items implemented, missing one of: `eq`, `neq`
|
||||
--> $DIR/rustc_must_implement_one_of.rs:41:1
|
||||
|
|
||||
LL | impl Equal for T3 {}
|
||||
| ^^^^^^^^^^^^^^^^^ missing one of `neq`, `eq` in implementation
|
||||
| ^^^^^^^^^^^^^^^^^ missing one of `eq`, `neq` in implementation
|
||||
|
|
||||
note: required because of this annotation
|
||||
--> $DIR/rustc_must_implement_one_of.rs:3:1
|
||||
|
|
Loading…
Add table
Reference in a new issue