Get rid of clean::Deprecation
This brings the size of `item.deprecation` from 56 to 16 bytes.
This commit is contained in:
parent
cbab347e68
commit
7d452430fa
@ -621,7 +621,7 @@ pub fn eval_condition(
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Encodable, Decodable, Clone, HashStable_Generic)]
|
||||
#[derive(Debug, Encodable, Decodable, Clone, HashStable_Generic)]
|
||||
pub struct Deprecation {
|
||||
pub since: Option<Symbol>,
|
||||
/// The note to issue a reason.
|
||||
|
@ -2342,16 +2342,6 @@ impl Clean<Item> for (&hir::MacroDef<'_>, Option<Symbol>) {
|
||||
}
|
||||
}
|
||||
|
||||
impl Clean<Deprecation> for attr::Deprecation {
|
||||
fn clean(&self, _: &DocContext<'_>) -> Deprecation {
|
||||
Deprecation {
|
||||
since: self.since.map(|s| s.to_string()).filter(|s| !s.is_empty()),
|
||||
note: self.note.map(|n| n.to_string()).filter(|n| !n.is_empty()),
|
||||
is_since_rustc_version: self.is_since_rustc_version,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Clean<TypeBinding> for hir::TypeBinding<'_> {
|
||||
fn clean(&self, cx: &DocContext<'_>) -> TypeBinding {
|
||||
TypeBinding { name: self.ident.name.clean(cx), kind: self.kind.clean(cx) }
|
||||
|
@ -12,7 +12,7 @@ use rustc_ast::attr;
|
||||
use rustc_ast::util::comments::beautify_doc_string;
|
||||
use rustc_ast::{self as ast, AttrStyle};
|
||||
use rustc_ast::{FloatTy, IntTy, UintTy};
|
||||
use rustc_attr::{ConstStability, Stability, StabilityLevel};
|
||||
use rustc_attr::{ConstStability, Deprecation, Stability, StabilityLevel};
|
||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||
use rustc_feature::UnstableFeatures;
|
||||
use rustc_hir as hir;
|
||||
@ -156,7 +156,7 @@ impl Item {
|
||||
attrs: cx.tcx.get_attrs(def_id).clean(cx),
|
||||
visibility: cx.tcx.visibility(def_id).clean(cx),
|
||||
stability: cx.tcx.lookup_stability(def_id).cloned(),
|
||||
deprecation: cx.tcx.lookup_deprecation(def_id).clean(cx),
|
||||
deprecation: cx.tcx.lookup_deprecation(def_id),
|
||||
const_stability: cx.tcx.lookup_const_stability(def_id).cloned(),
|
||||
}
|
||||
}
|
||||
@ -1793,13 +1793,6 @@ crate struct ProcMacro {
|
||||
crate helpers: Vec<String>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
crate struct Deprecation {
|
||||
crate since: Option<String>,
|
||||
crate note: Option<String>,
|
||||
crate is_since_rustc_version: bool,
|
||||
}
|
||||
|
||||
/// An type binding on an associated type (e.g., `A = Bar` in `Foo<A = Bar>` or
|
||||
/// `A: Send + Sync` in `Foo<A: Send + Sync>`).
|
||||
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
|
||||
|
@ -49,7 +49,7 @@ use std::sync::Arc;
|
||||
|
||||
use itertools::Itertools;
|
||||
use rustc_ast_pretty::pprust;
|
||||
use rustc_attr::StabilityLevel;
|
||||
use rustc_attr::{Deprecation, StabilityLevel};
|
||||
use rustc_data_structures::flock;
|
||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||
use rustc_data_structures::sync::Lrc;
|
||||
@ -65,7 +65,7 @@ use rustc_span::symbol::{sym, Symbol};
|
||||
use serde::ser::SerializeSeq;
|
||||
use serde::{Serialize, Serializer};
|
||||
|
||||
use crate::clean::{self, AttributesExt, Deprecation, GetDefId, RenderedLink, SelfTy, TypeKind};
|
||||
use crate::clean::{self, AttributesExt, GetDefId, RenderedLink, SelfTy, TypeKind};
|
||||
use crate::config::{RenderInfo, RenderOptions};
|
||||
use crate::docfs::{DocFS, PathError};
|
||||
use crate::doctree;
|
||||
@ -2219,7 +2219,10 @@ fn extra_info_tags(item: &clean::Item, parent: &clean::Item) -> String {
|
||||
// The trailing space after each tag is to space it properly against the rest of the docs.
|
||||
if let Some(depr) = &item.deprecation {
|
||||
let mut message = "Deprecated";
|
||||
if !stability::deprecation_in_effect(depr.is_since_rustc_version, depr.since.as_deref()) {
|
||||
if !stability::deprecation_in_effect(
|
||||
depr.is_since_rustc_version,
|
||||
depr.since.map(|s| s.as_str()).as_deref(),
|
||||
) {
|
||||
message = "Deprecation planned";
|
||||
}
|
||||
tags += &tag_html("deprecated", "", message);
|
||||
@ -2268,20 +2271,24 @@ fn short_item_info(item: &clean::Item, cx: &Context, parent: Option<&clean::Item
|
||||
let mut extra_info = vec![];
|
||||
let error_codes = cx.shared.codes;
|
||||
|
||||
if let Some(Deprecation { ref note, ref since, is_since_rustc_version }) = item.deprecation {
|
||||
if let Some(Deprecation { note, since, is_since_rustc_version, suggestion: _ }) =
|
||||
item.deprecation
|
||||
{
|
||||
// We display deprecation messages for #[deprecated] and #[rustc_deprecated]
|
||||
// but only display the future-deprecation messages for #[rustc_deprecated].
|
||||
let mut message = if let Some(since) = since {
|
||||
let since = &since.as_str();
|
||||
if !stability::deprecation_in_effect(is_since_rustc_version, Some(since)) {
|
||||
format!("Deprecating in {}", Escape(&since))
|
||||
format!("Deprecating in {}", Escape(since))
|
||||
} else {
|
||||
format!("Deprecated since {}", Escape(&since))
|
||||
format!("Deprecated since {}", Escape(since))
|
||||
}
|
||||
} else {
|
||||
String::from("Deprecated")
|
||||
};
|
||||
|
||||
if let Some(note) = note {
|
||||
let note = note.as_str();
|
||||
let mut ids = cx.id_map.borrow_mut();
|
||||
let html = MarkdownHtml(
|
||||
¬e,
|
||||
|
@ -77,10 +77,11 @@ impl JsonRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<clean::Deprecation> for Deprecation {
|
||||
fn from(deprecation: clean::Deprecation) -> Self {
|
||||
let clean::Deprecation { since, note, is_since_rustc_version: _ } = deprecation;
|
||||
Deprecation { since, note }
|
||||
impl From<rustc_attr::Deprecation> for Deprecation {
|
||||
fn from(deprecation: rustc_attr::Deprecation) -> Self {
|
||||
#[rustfmt::skip]
|
||||
let rustc_attr::Deprecation { since, note, is_since_rustc_version: _, suggestion: _ } = deprecation;
|
||||
Deprecation { since: since.map(|s| s.to_string()), note: note.map(|s| s.to_string()) }
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user