lang_items: add support for lang items on variants
This commit adds support for lang items (`#[lang = "..."]` attributes) on enum variants. Signed-off-by: David Wood <david@davidtw.co>
This commit is contained in:
parent
97ba0c7171
commit
764dc3dc2f
@ -29,6 +29,7 @@ pub enum Target {
|
||||
TyAlias,
|
||||
OpaqueTy,
|
||||
Enum,
|
||||
Variant,
|
||||
Struct,
|
||||
Union,
|
||||
Trait,
|
||||
@ -62,6 +63,7 @@ impl Display for Target {
|
||||
Target::TyAlias => "type alias",
|
||||
Target::OpaqueTy => "opaque type",
|
||||
Target::Enum => "enum",
|
||||
Target::Variant => "enum variant",
|
||||
Target::Struct => "struct",
|
||||
Target::Union => "union",
|
||||
Target::Trait => "trait",
|
||||
|
@ -30,7 +30,13 @@ struct LanguageItemCollector<'tcx> {
|
||||
|
||||
impl ItemLikeVisitor<'v> for LanguageItemCollector<'tcx> {
|
||||
fn visit_item(&mut self, item: &hir::Item<'_>) {
|
||||
self.check_for_lang(Target::from_item(item), item.hir_id, item.attrs)
|
||||
self.check_for_lang(Target::from_item(item), item.hir_id, item.attrs);
|
||||
|
||||
if let hir::ItemKind::Enum(def, ..) = &item.kind {
|
||||
for variant in def.variants {
|
||||
self.check_for_lang(Target::Variant, variant.id, variant.attrs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn visit_trait_item(&mut self, trait_item: &hir::TraitItem<'_>) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user