Use ItemType in cache
This commit is contained in:
parent
1481af9f59
commit
f3ef4b2cef
4 changed files with 11 additions and 32 deletions
|
@ -1456,7 +1456,6 @@ crate enum TypeKind {
|
|||
Foreign,
|
||||
Macro,
|
||||
TraitAlias,
|
||||
Primitive,
|
||||
}
|
||||
|
||||
impl From<hir::def::DefKind> for TypeKind {
|
||||
|
|
|
@ -20,7 +20,7 @@ use crate::clean;
|
|||
/// module headings. If you are adding to this enum and want to ensure that the sidebar also prints
|
||||
/// a heading, edit the listing in `html/render.rs`, function `sidebar_module`. This uses an
|
||||
/// ordering based on a helper function inside `item_module`, in the same file.
|
||||
#[derive(Copy, PartialEq, Eq, Clone, Debug, PartialOrd, Ord)]
|
||||
#[derive(Copy, PartialEq, Eq, Hash, Clone, Debug, PartialOrd, Ord)]
|
||||
crate enum ItemType {
|
||||
Module = 0,
|
||||
ExternCrate = 1,
|
||||
|
@ -103,26 +103,6 @@ impl<'a> From<&'a clean::Item> for ItemType {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<clean::TypeKind> for ItemType {
|
||||
fn from(kind: clean::TypeKind) -> ItemType {
|
||||
match kind {
|
||||
clean::TypeKind::Struct => ItemType::Struct,
|
||||
clean::TypeKind::Union => ItemType::Union,
|
||||
clean::TypeKind::Enum => ItemType::Enum,
|
||||
clean::TypeKind::Function => ItemType::Function,
|
||||
clean::TypeKind::Trait => ItemType::Trait,
|
||||
clean::TypeKind::Module => ItemType::Module,
|
||||
clean::TypeKind::Static => ItemType::Static,
|
||||
clean::TypeKind::Const => ItemType::Constant,
|
||||
clean::TypeKind::Typedef => ItemType::Typedef,
|
||||
clean::TypeKind::Foreign => ItemType::ForeignType,
|
||||
clean::TypeKind::Macro => ItemType::Macro,
|
||||
clean::TypeKind::TraitAlias => ItemType::TraitAlias,
|
||||
clean::TypeKind::Primitive => ItemType::Primitive,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<hir::def::DefKind> for ItemType {
|
||||
fn from(other: hir::def::DefKind) -> Self {
|
||||
match other {
|
||||
|
|
|
@ -7,7 +7,7 @@ use rustc_span::symbol::{sym, Symbol};
|
|||
use serde::ser::{Serialize, SerializeStruct, Serializer};
|
||||
|
||||
use crate::clean::types::{
|
||||
FnDecl, FnRetTy, GenericBound, Generics, GetDefId, Type, TypeKind, WherePredicate,
|
||||
FnDecl, FnRetTy, GenericBound, Generics, GetDefId, Type, WherePredicate,
|
||||
};
|
||||
use crate::clean::{self, AttributesExt};
|
||||
use crate::formats::cache::Cache;
|
||||
|
@ -316,15 +316,15 @@ crate fn get_real_types<'tcx>(
|
|||
arg: &Type,
|
||||
tcx: TyCtxt<'tcx>,
|
||||
recurse: i32,
|
||||
res: &mut FxHashSet<(Type, TypeKind)>,
|
||||
res: &mut FxHashSet<(Type, ItemType)>,
|
||||
) -> usize {
|
||||
fn insert(res: &mut FxHashSet<(Type, TypeKind)>, tcx: TyCtxt<'_>, ty: Type) -> usize {
|
||||
fn insert(res: &mut FxHashSet<(Type, ItemType)>, tcx: TyCtxt<'_>, ty: Type) -> usize {
|
||||
if let Some(kind) = ty.def_id().map(|did| tcx.def_kind(did).into()) {
|
||||
res.insert((ty, kind));
|
||||
1
|
||||
} else if ty.is_primitive() {
|
||||
// This is a primitive, let's store it as such.
|
||||
res.insert((ty, TypeKind::Primitive));
|
||||
res.insert((ty, ItemType::Primitive));
|
||||
1
|
||||
} else {
|
||||
0
|
||||
|
@ -394,7 +394,7 @@ crate fn get_all_types<'tcx>(
|
|||
generics: &Generics,
|
||||
decl: &FnDecl,
|
||||
tcx: TyCtxt<'tcx>,
|
||||
) -> (Vec<(Type, TypeKind)>, Vec<(Type, TypeKind)>) {
|
||||
) -> (Vec<(Type, ItemType)>, Vec<(Type, ItemType)>) {
|
||||
let mut all_types = FxHashSet::default();
|
||||
for arg in decl.inputs.values.iter() {
|
||||
if arg.type_.is_self_type() {
|
||||
|
|
|
@ -54,7 +54,7 @@ use rustc_span::symbol::{kw, sym, Symbol};
|
|||
use serde::ser::SerializeSeq;
|
||||
use serde::{Serialize, Serializer};
|
||||
|
||||
use crate::clean::{self, GetDefId, RenderedLink, SelfTy, TypeKind};
|
||||
use crate::clean::{self, GetDefId, RenderedLink, SelfTy};
|
||||
use crate::docfs::PathError;
|
||||
use crate::error::Error;
|
||||
use crate::formats::cache::Cache;
|
||||
|
@ -182,11 +182,11 @@ impl Serialize for IndexItemFunctionType {
|
|||
#[derive(Debug)]
|
||||
crate struct TypeWithKind {
|
||||
ty: RenderType,
|
||||
kind: TypeKind,
|
||||
kind: ItemType,
|
||||
}
|
||||
|
||||
impl From<(RenderType, TypeKind)> for TypeWithKind {
|
||||
fn from(x: (RenderType, TypeKind)) -> TypeWithKind {
|
||||
impl From<(RenderType, ItemType)> for TypeWithKind {
|
||||
fn from(x: (RenderType, ItemType)) -> TypeWithKind {
|
||||
TypeWithKind { ty: x.0, kind: x.1 }
|
||||
}
|
||||
}
|
||||
|
@ -196,7 +196,7 @@ impl Serialize for TypeWithKind {
|
|||
where
|
||||
S: Serializer,
|
||||
{
|
||||
(&self.ty.name, ItemType::from(self.kind)).serialize(serializer)
|
||||
(&self.ty.name, self.kind).serialize(serializer)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue