diff options
| author | Justus K <justus.k@protonmail.com> | 2021-07-03 17:21:39 +0200 |
|---|---|---|
| committer | Justus K <justus.k@protonmail.com> | 2021-07-05 19:51:56 +0200 |
| commit | 21424d2966cabd8e6edb1efbe09bf3b2a6120065 (patch) | |
| tree | 7117e7ecc8086f788cd06ded6ce7be5aa9e16009 | |
| parent | 4b1027a317d6ca533064a11319d35db75baff141 (diff) | |
| download | rust-21424d2966cabd8e6edb1efbe09bf3b2a6120065.tar.gz rust-21424d2966cabd8e6edb1efbe09bf3b2a6120065.zip | |
rustdoc: Add `PrimitiveType` to `ItemId::Primitive`
| -rw-r--r-- | src/librustdoc/clean/inline.rs | 5 | ||||
| -rw-r--r-- | src/librustdoc/clean/types.rs | 8 | ||||
| -rw-r--r-- | src/librustdoc/formats/cache.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/json/conversions.rs | 2 |
4 files changed, 9 insertions, 8 deletions
diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index ce4c1a76b5b..6f2085e0d43 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -483,10 +483,11 @@ fn build_module( } if let Res::PrimTy(p) = item.res { // Primitive types can't be inlined so generate an import instead. + let prim_ty = clean::PrimitiveType::from(p); items.push(clean::Item { name: None, attrs: box clean::Attributes::default(), - def_id: ItemId::Primitive(did.krate), + def_id: ItemId::Primitive(prim_ty, did.krate), visibility: clean::Public, kind: box clean::ImportItem(clean::Import::new_simple( item.ident.name, @@ -495,7 +496,7 @@ fn build_module( global: false, res: item.res, segments: vec![clean::PathSegment { - name: clean::PrimitiveType::from(p).as_sym(), + name: prim_ty.as_sym(), args: clean::GenericArgs::AngleBracketed { args: Vec::new(), bindings: Vec::new(), diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 67f7a10e2d0..4ffce6c7656 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -50,7 +50,7 @@ use self::Type::*; crate type ItemIdSet = FxHashSet<ItemId>; -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Copy)] +#[derive(Debug, Clone, PartialEq, Eq, Hash, Copy)] crate enum ItemId { /// A "normal" item that uses a [`DefId`] for identification. DefId(DefId), @@ -59,7 +59,7 @@ crate enum ItemId { /// Identifier that is used for blanket implementations. Blanket { trait_: DefId, for_: DefId }, /// Identifier for primitive types. - Primitive(CrateNum), + Primitive(PrimitiveType, CrateNum), } impl ItemId { @@ -69,7 +69,7 @@ impl ItemId { ItemId::Auto { for_: id, .. } | ItemId::Blanket { for_: id, .. } | ItemId::DefId(id) => id.is_local(), - ItemId::Primitive(krate) => krate == LOCAL_CRATE, + ItemId::Primitive(_, krate) => krate == LOCAL_CRATE, } } @@ -94,7 +94,7 @@ impl ItemId { ItemId::Auto { for_: id, .. } | ItemId::Blanket { for_: id, .. } | ItemId::DefId(id) => id.krate, - ItemId::Primitive(krate) => krate, + ItemId::Primitive(_, krate) => krate, } } diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs index 671e9e5c382..e7d6e5ac2c2 100644 --- a/src/librustdoc/formats/cache.rs +++ b/src/librustdoc/formats/cache.rs @@ -122,7 +122,7 @@ crate struct Cache { /// All intra-doc links resolved so far. /// /// Links are indexed by the DefId of the item they document. - crate intra_doc_links: BTreeMap<ItemId, Vec<clean::ItemLink>>, + crate intra_doc_links: FxHashMap<ItemId, Vec<clean::ItemLink>>, } /// This struct is used to wrap the `cache` and `tcx` in order to run `DocFolder`. diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs index bf4c7e7ff37..bd9f54d2e80 100644 --- a/src/librustdoc/json/conversions.rs +++ b/src/librustdoc/json/conversions.rs @@ -188,7 +188,7 @@ crate fn from_item_id(did: ItemId) -> Id { ItemId::Auto { for_, trait_ } => { Id(format!("a:{}-{}", DisplayDefId(trait_), DisplayDefId(for_))) } - ItemId::Primitive(krate) => Id(format!("p:{}", krate.as_u32())), + ItemId::Primitive(ty, krate) => Id(format!("p:{}:{}", krate.as_u32(), ty.as_sym())), } } |
