Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/lib.rs')
-rw-r--r--crates/hir/src/lib.rs66
1 files changed, 33 insertions, 33 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index 5da2b5ed09..9f91f155ea 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -636,7 +636,7 @@ impl Module {
acc.extend(def.diagnostics(db, style_lints))
}
ModuleDef::Trait(t) => {
- for diag in db.trait_data_with_diagnostics(t.id).1.iter() {
+ for diag in db.trait_items_with_diagnostics(t.id).1.iter() {
emit_def_diagnostic(db, acc, diag, edition);
}
@@ -661,8 +661,7 @@ impl Module {
db.field_types_with_diagnostics(s.id.into()).1,
tree_source_maps.strukt(tree_id.value).item(),
);
-
- for diag in db.struct_data_with_diagnostics(s.id).1.iter() {
+ for diag in db.variant_data_with_diagnostics(s.id.into()).1.iter() {
emit_def_diagnostic(db, acc, diag, edition);
}
}
@@ -675,8 +674,7 @@ impl Module {
db.field_types_with_diagnostics(u.id.into()).1,
tree_source_maps.union(tree_id.value).item(),
);
-
- for diag in db.union_data_with_diagnostics(u.id).1.iter() {
+ for diag in db.variant_data_with_diagnostics(u.id.into()).1.iter() {
emit_def_diagnostic(db, acc, diag, edition);
}
}
@@ -692,7 +690,7 @@ impl Module {
tree_source_maps.variant(tree_id.value),
);
acc.extend(ModuleDef::Variant(v).diagnostics(db, style_lints));
- for diag in db.enum_variant_data_with_diagnostics(v.id).1.iter() {
+ for diag in db.variant_data_with_diagnostics(v.id.into()).1.iter() {
emit_def_diagnostic(db, acc, diag, edition);
}
}
@@ -743,7 +741,7 @@ impl Module {
let ast_id_map = db.ast_id_map(file_id);
- for diag in db.impl_data_with_diagnostics(impl_def.id).1.iter() {
+ for diag in db.impl_items_with_diagnostics(impl_def.id).1.iter() {
emit_def_diagnostic(db, acc, diag, edition);
}
@@ -801,13 +799,13 @@ impl Module {
// Negative impls can't have items, don't emit missing items diagnostic for them
if let (false, Some(trait_)) = (impl_is_negative, trait_) {
- let items = &db.trait_data(trait_.into()).items;
+ let items = &db.trait_items(trait_.into()).items;
let required_items = items.iter().filter(|&(_, assoc)| match *assoc {
AssocItemId::FunctionId(it) => !db.function_data(it).has_body(),
AssocItemId::ConstId(id) => !db.const_data(id).has_body,
AssocItemId::TypeAliasId(it) => db.type_alias_data(it).type_ref.is_none(),
});
- impl_assoc_items_scratch.extend(db.impl_data(impl_def.id).items.iter().cloned());
+ impl_assoc_items_scratch.extend(db.impl_items(impl_def.id).items.iter().cloned());
let redundant = impl_assoc_items_scratch
.iter()
@@ -863,7 +861,7 @@ impl Module {
source_map,
);
- for &(_, item) in db.impl_data(impl_def.id).items.iter() {
+ for &(_, item) in db.impl_items(impl_def.id).items.iter() {
AssocItem::from(item).diagnostics(db, acc, style_lints);
}
}
@@ -1059,7 +1057,7 @@ fn emit_def_diagnostic_(
AttrOwner::Variant(it) => {
ast_id_map.get(item_tree[it].ast_id).syntax_node_ptr()
}
- AttrOwner::Field(FieldParent::Variant(parent), idx) => process_field_list(
+ AttrOwner::Field(FieldParent::EnumVariant(parent), idx) => process_field_list(
ast_id_map
.get(item_tree[parent].ast_id)
.to_node(&db.parse_or_expand(tree.file_id()))
@@ -1392,6 +1390,7 @@ impl HasVisibility for Field {
let variant_data = self.parent.variant_data(db);
let visibility = &variant_data.fields()[self.id].visibility;
let parent_id: hir_def::VariantId = self.parent.into();
+ // FIXME: RawVisibility::Public doesn't need to construct a resolver
visibility.resolve(db.upcast(), &parent_id.resolver(db.upcast()))
}
}
@@ -1411,8 +1410,7 @@ impl Struct {
}
pub fn fields(self, db: &dyn HirDatabase) -> Vec<Field> {
- db.struct_data(self.id)
- .variant_data
+ db.variant_data(self.id.into())
.fields()
.iter()
.map(|(id, _)| Field { parent: self.into(), id })
@@ -1440,7 +1438,7 @@ impl Struct {
}
fn variant_data(self, db: &dyn HirDatabase) -> Arc<VariantData> {
- db.struct_data(self.id).variant_data.clone()
+ db.variant_data(self.id.into()).clone()
}
pub fn is_unstable(self, db: &dyn HirDatabase) -> bool {
@@ -1481,8 +1479,7 @@ impl Union {
}
pub fn fields(self, db: &dyn HirDatabase) -> Vec<Field> {
- db.union_data(self.id)
- .variant_data
+ db.variant_data(self.id.into())
.fields()
.iter()
.map(|(id, _)| Field { parent: self.into(), id })
@@ -1490,7 +1487,7 @@ impl Union {
}
fn variant_data(self, db: &dyn HirDatabase) -> Arc<VariantData> {
- db.union_data(self.id).variant_data.clone()
+ db.variant_data(self.id.into()).clone()
}
pub fn is_unstable(self, db: &dyn HirDatabase) -> bool {
@@ -1519,7 +1516,11 @@ impl Enum {
}
pub fn variants(self, db: &dyn HirDatabase) -> Vec<Variant> {
- db.enum_data(self.id).variants.iter().map(|&(id, _)| Variant { id }).collect()
+ db.enum_variants(self.id).variants.iter().map(|&(id, _)| Variant { id }).collect()
+ }
+
+ pub fn num_variants(self, db: &dyn HirDatabase) -> usize {
+ db.enum_variants(self.id).variants.len()
}
pub fn repr(self, db: &dyn HirDatabase) -> Option<ReprOptions> {
@@ -1629,7 +1630,7 @@ impl Variant {
}
pub(crate) fn variant_data(self, db: &dyn HirDatabase) -> Arc<VariantData> {
- db.enum_variant_data(self.id).variant_data.clone()
+ db.variant_data(self.id.into()).clone()
}
pub fn value(self, db: &dyn HirDatabase) -> Option<ast::Expr> {
@@ -2868,16 +2869,15 @@ impl Trait {
}
pub fn function(self, db: &dyn HirDatabase, name: impl PartialEq<Name>) -> Option<Function> {
- db.trait_data(self.id).items.iter().find(|(n, _)| name == *n).and_then(
- |&(_, it)| match it {
- AssocItemId::FunctionId(id) => Some(Function { id }),
- _ => None,
- },
- )
+ db.trait_items(self.id).items.iter().find(|(n, _)| name == *n).and_then(|&(_, it)| match it
+ {
+ AssocItemId::FunctionId(id) => Some(Function { id }),
+ _ => None,
+ })
}
pub fn items(self, db: &dyn HirDatabase) -> Vec<AssocItem> {
- db.trait_data(self.id).items.iter().map(|(_name, it)| (*it).into()).collect()
+ db.trait_items(self.id).items.iter().map(|(_name, it)| (*it).into()).collect()
}
pub fn items_with_supertraits(self, db: &dyn HirDatabase) -> Vec<AssocItem> {
@@ -2921,7 +2921,7 @@ impl Trait {
}
fn all_macro_calls(&self, db: &dyn HirDatabase) -> Box<[(AstId<ast::Item>, MacroCallId)]> {
- db.trait_data(self.id)
+ db.trait_items(self.id)
.macro_calls
.as_ref()
.map(|it| it.as_ref().clone().into_boxed_slice())
@@ -4428,7 +4428,7 @@ impl Impl {
}
pub fn items(self, db: &dyn HirDatabase) -> Vec<AssocItem> {
- db.impl_data(self.id).items.iter().map(|&(_, it)| it.into()).collect()
+ db.impl_items(self.id).items.iter().map(|&(_, it)| it.into()).collect()
}
pub fn is_negative(self, db: &dyn HirDatabase) -> bool {
@@ -4478,7 +4478,7 @@ impl Impl {
}
fn all_macro_calls(&self, db: &dyn HirDatabase) -> Box<[(AstId<ast::Item>, MacroCallId)]> {
- db.impl_data(self.id)
+ db.impl_items(self.id)
.macro_calls
.as_ref()
.map(|it| it.as_ref().clone().into_boxed_slice())
@@ -4959,7 +4959,7 @@ impl Type {
}
let output_assoc_type = db
- .trait_data(trait_)
+ .trait_items(trait_)
.associated_type_by_name(&Name::new_symbol_root(sym::Output.clone()))?;
self.normalize_trait_assoc_type(db, &[], output_assoc_type.into())
}
@@ -4975,7 +4975,7 @@ impl Type {
pub fn iterator_item(self, db: &dyn HirDatabase) -> Option<Type> {
let iterator_trait = db.lang_item(self.env.krate, LangItem::Iterator)?.as_trait()?;
let iterator_item = db
- .trait_data(iterator_trait)
+ .trait_items(iterator_trait)
.associated_type_by_name(&Name::new_symbol_root(sym::Item.clone()))?;
self.normalize_trait_assoc_type(db, &[], iterator_item.into())
}
@@ -5007,7 +5007,7 @@ impl Type {
}
let into_iter_assoc_type = db
- .trait_data(trait_)
+ .trait_items(trait_)
.associated_type_by_name(&Name::new_symbol_root(sym::IntoIter.clone()))?;
self.normalize_trait_assoc_type(db, &[], into_iter_assoc_type.into())
}
@@ -5301,7 +5301,7 @@ impl Type {
let impls = db.inherent_impls_in_crate(krate);
for impl_def in impls.for_self_ty(&self.ty) {
- for &(_, item) in db.impl_data(*impl_def).items.iter() {
+ for &(_, item) in db.impl_items(*impl_def).items.iter() {
if callback(item) {
return;
}