Use array IntoIter

This commit is contained in:
Laurențiu Nicola 2021-10-22 09:23:29 +03:00
parent 56fbf5d7b2
commit ca44b6892e
13 changed files with 33 additions and 32 deletions

View file

@ -1,7 +1,7 @@
//! Helper functions for working with def, which don't need to be a separate
//! query, but can't be computed directly from `*Data` (ie, which need a `db`).
use std::{array, iter};
use std::iter;
use base_db::CrateId;
use chalk_ir::{fold::Shift, BoundVar, DebruijnIndex};
@ -25,12 +25,14 @@ use crate::{
};
pub(crate) fn fn_traits(db: &dyn DefDatabase, krate: CrateId) -> impl Iterator<Item = TraitId> {
let fn_traits = [
[
db.lang_item(krate, "fn".into()),
db.lang_item(krate, "fn_mut".into()),
db.lang_item(krate, "fn_once".into()),
];
array::IntoIter::new(fn_traits).into_iter().flatten().flat_map(|it| it.as_trait())
]
.into_iter()
.flatten()
.flat_map(|it| it.as_trait())
}
fn direct_super_traits(db: &dyn DefDatabase, trait_: TraitId) -> Vec<TraitId> {