Rollup merge of #138376 - nnethercote:hir-ItemKind-ident-precursors, r=compiler-errors
Item-related cleanups I have been looking at `hir::Item` closely and found a few minor cleanup opportunities. r? ```@spastorino```
This commit is contained in:
commit
4c6edb1df8
3 changed files with 24 additions and 56 deletions
|
@ -4332,16 +4332,6 @@ pub enum OwnerNode<'hir> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'hir> OwnerNode<'hir> {
|
impl<'hir> OwnerNode<'hir> {
|
||||||
pub fn ident(&self) -> Option<Ident> {
|
|
||||||
match self {
|
|
||||||
OwnerNode::Item(Item { ident, .. })
|
|
||||||
| OwnerNode::ForeignItem(ForeignItem { ident, .. })
|
|
||||||
| OwnerNode::ImplItem(ImplItem { ident, .. })
|
|
||||||
| OwnerNode::TraitItem(TraitItem { ident, .. }) => Some(*ident),
|
|
||||||
OwnerNode::Crate(..) | OwnerNode::Synthetic => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn span(&self) -> Span {
|
pub fn span(&self) -> Span {
|
||||||
match self {
|
match self {
|
||||||
OwnerNode::Item(Item { span, .. })
|
OwnerNode::Item(Item { span, .. })
|
||||||
|
|
|
@ -553,24 +553,6 @@ impl<'a> State<'a> {
|
||||||
self.word(";")
|
self.word(";")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn print_item_type(
|
|
||||||
&mut self,
|
|
||||||
item: &hir::Item<'_>,
|
|
||||||
generics: &hir::Generics<'_>,
|
|
||||||
inner: impl Fn(&mut Self),
|
|
||||||
) {
|
|
||||||
self.head("type");
|
|
||||||
self.print_ident(item.ident);
|
|
||||||
self.print_generic_params(generics.params);
|
|
||||||
self.end(); // end the inner ibox
|
|
||||||
|
|
||||||
self.print_where_clause(generics);
|
|
||||||
self.space();
|
|
||||||
inner(self);
|
|
||||||
self.word(";");
|
|
||||||
self.end(); // end the outer ibox
|
|
||||||
}
|
|
||||||
|
|
||||||
fn print_item(&mut self, item: &hir::Item<'_>) {
|
fn print_item(&mut self, item: &hir::Item<'_>) {
|
||||||
self.hardbreak_if_not_bol();
|
self.hardbreak_if_not_bol();
|
||||||
self.maybe_print_comment(item.span.lo());
|
self.maybe_print_comment(item.span.lo());
|
||||||
|
@ -683,10 +665,17 @@ impl<'a> State<'a> {
|
||||||
self.end()
|
self.end()
|
||||||
}
|
}
|
||||||
hir::ItemKind::TyAlias(ty, generics) => {
|
hir::ItemKind::TyAlias(ty, generics) => {
|
||||||
self.print_item_type(item, generics, |state| {
|
self.head("type");
|
||||||
state.word_space("=");
|
self.print_ident(item.ident);
|
||||||
state.print_type(ty);
|
self.print_generic_params(generics.params);
|
||||||
});
|
self.end(); // end the inner ibox
|
||||||
|
|
||||||
|
self.print_where_clause(generics);
|
||||||
|
self.space();
|
||||||
|
self.word_space("=");
|
||||||
|
self.print_type(ty);
|
||||||
|
self.word(";");
|
||||||
|
self.end(); // end the outer ibox
|
||||||
}
|
}
|
||||||
hir::ItemKind::Enum(ref enum_definition, params) => {
|
hir::ItemKind::Enum(ref enum_definition, params) => {
|
||||||
self.print_enum_def(enum_definition, params, item.ident.name, item.span);
|
self.print_enum_def(enum_definition, params, item.ident.name, item.span);
|
||||||
|
|
|
@ -646,7 +646,7 @@ impl<'a> Parser<'a> {
|
||||||
|
|
||||||
let impl_items = self.parse_item_list(attrs, |p| p.parse_impl_item(ForceCollect::No))?;
|
let impl_items = self.parse_item_list(attrs, |p| p.parse_impl_item(ForceCollect::No))?;
|
||||||
|
|
||||||
let item_kind = match ty_second {
|
let (of_trait, self_ty) = match ty_second {
|
||||||
Some(ty_second) => {
|
Some(ty_second) => {
|
||||||
// impl Trait for Type
|
// impl Trait for Type
|
||||||
if !has_for {
|
if !has_for {
|
||||||
|
@ -679,31 +679,20 @@ impl<'a> Parser<'a> {
|
||||||
};
|
};
|
||||||
let trait_ref = TraitRef { path, ref_id: ty_first.id };
|
let trait_ref = TraitRef { path, ref_id: ty_first.id };
|
||||||
|
|
||||||
ItemKind::Impl(Box::new(Impl {
|
(Some(trait_ref), ty_second)
|
||||||
safety,
|
|
||||||
polarity,
|
|
||||||
defaultness,
|
|
||||||
constness,
|
|
||||||
generics,
|
|
||||||
of_trait: Some(trait_ref),
|
|
||||||
self_ty: ty_second,
|
|
||||||
items: impl_items,
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
// impl Type
|
|
||||||
ItemKind::Impl(Box::new(Impl {
|
|
||||||
safety,
|
|
||||||
polarity,
|
|
||||||
defaultness,
|
|
||||||
constness,
|
|
||||||
generics,
|
|
||||||
of_trait: None,
|
|
||||||
self_ty: ty_first,
|
|
||||||
items: impl_items,
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
|
None => (None, ty_first), // impl Type
|
||||||
};
|
};
|
||||||
|
let item_kind = ItemKind::Impl(Box::new(Impl {
|
||||||
|
safety,
|
||||||
|
polarity,
|
||||||
|
defaultness,
|
||||||
|
constness,
|
||||||
|
generics,
|
||||||
|
of_trait,
|
||||||
|
self_ty,
|
||||||
|
items: impl_items,
|
||||||
|
}));
|
||||||
|
|
||||||
Ok((Ident::empty(), item_kind))
|
Ok((Ident::empty(), item_kind))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue