diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-01-12 13:58:16 +0100 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-02-05 17:22:27 +0100 |
| commit | d5174a4b0d3a72c8edefd65b2c1108f3168b24e0 (patch) | |
| tree | 16d5e97483e5bcbb4954b804759f764936027749 | |
| parent | f9435f4c92651d67d5dbaba13c5606c4c4fc1327 (diff) | |
| download | rust-d5174a4b0d3a72c8edefd65b2c1108f3168b24e0.tar.gz rust-d5174a4b0d3a72c8edefd65b2c1108f3168b24e0.zip | |
Explicitly match all DefKind item in conversion to TypeKind
| -rw-r--r-- | src/librustdoc/clean/types.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index e509ec3f021..cbe871bd65a 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -1304,6 +1304,49 @@ crate enum TypeKind { Primitive, } +impl<'a> From<&'a hir::def::DefKind> for TypeKind { + fn from(other: &hir::def::DefKind) -> Self { + Self::from(*other) + } +} + +impl From<hir::def::DefKind> for TypeKind { + fn from(other: hir::def::DefKind) -> Self { + match other { + hir::def::DefKind::Enum => Self::Enum, + hir::def::DefKind::Fn => Self::Function, + hir::def::DefKind::Mod => Self::Module, + hir::def::DefKind::Const => Self::Const, + hir::def::DefKind::Static => Self::Static, + hir::def::DefKind::Struct => Self::Struct, + hir::def::DefKind::Union => Self::Union, + hir::def::DefKind::Trait => Self::Trait, + hir::def::DefKind::TyAlias => Self::Typedef, + hir::def::DefKind::ForeignTy => Self::Foreign, + hir::def::DefKind::TraitAlias => Self::TraitAlias, + hir::def::DefKind::Macro(_) => Self::Macro, + hir::def::DefKind::Variant + | hir::def::DefKind::AssocTy + | hir::def::DefKind::TyParam + | hir::def::DefKind::ConstParam + | hir::def::DefKind::Ctor(..) + | hir::def::DefKind::AssocFn + | hir::def::DefKind::AssocConst + | hir::def::DefKind::ExternCrate + | hir::def::DefKind::Use + | hir::def::DefKind::ForeignMod + | hir::def::DefKind::AnonConst + | hir::def::DefKind::OpaqueTy + | hir::def::DefKind::Field + | hir::def::DefKind::LifetimeParam + | hir::def::DefKind::GlobalAsm + | hir::def::DefKind::Impl + | hir::def::DefKind::Closure + | hir::def::DefKind::Generator => Self::Foreign, + } + } +} + crate trait GetDefId { /// Use this method to get the [`DefId`] of a [`clean`] AST node. /// This will return [`None`] when called on a primitive [`clean::Type`]. |
