Skip to content

Commit

Permalink
lang_items: add support for lang items on variants
Browse files Browse the repository at this point in the history
This commit adds support for lang items (`#[lang = "..."]` attributes)
on enum variants.

Signed-off-by: David Wood <david@davidtw.co>
  • Loading branch information
davidtwco committed Aug 16, 2020
1 parent 97ba0c7 commit 764dc3d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/librustc_hir/target.rs
Expand Up @@ -29,6 +29,7 @@ pub enum Target {
TyAlias,
OpaqueTy,
Enum,
Variant,
Struct,
Union,
Trait,
Expand Down Expand Up @@ -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",
Expand Down
8 changes: 7 additions & 1 deletion src/librustc_passes/lang_items.rs
Expand Up @@ -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<'_>) {
Expand Down

0 comments on commit 764dc3d

Please sign in to comment.