X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustdoc%2Fhtml%2Frender.rs;h=12a17afcc7c502a281ca4245e69d649bf4f87bb0;hb=75acee2bdee0278e0dc9610bfd05eb4367e41c20;hp=850045382e1f2c95d1f30d75557f403a352ffa49;hpb=a993669a405613036d107fc50157308d225e3919;p=rust.git diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 850045382e1..12a17afcc7c 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -54,10 +54,12 @@ use serialize::json::{self, ToJson}; use syntax::{abi, ast}; +use syntax::feature_gate::UnstableFeatures; use rustc::middle::cstore::LOCAL_CRATE; use rustc::middle::def_id::{CRATE_DEF_INDEX, DefId}; use rustc::middle::privacy::AccessLevels; use rustc::middle::stability; +use rustc::session::config::get_unstable_features_setting; use rustc_front::hir; use clean::{self, SelfTy}; @@ -1897,16 +1899,21 @@ fn item_static(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, fn item_function(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, f: &clean::Function) -> fmt::Result { + let vis_constness = match get_unstable_features_setting() { + UnstableFeatures::Allow => f.constness, + _ => hir::Constness::NotConst + }; try!(write!(w, "
{vis}{constness}{unsafety}{abi}fn \ {name}{generics}{decl}{where_clause}", vis = VisSpace(it.visibility), - constness = ConstnessSpace(f.constness), + constness = ConstnessSpace(vis_constness), unsafety = UnsafetySpace(f.unsafety), abi = AbiSpace(f.abi), name = it.name.as_ref().unwrap(), generics = f.generics, where_clause = WhereClause(&f.generics), decl = f.decl)); + try!(render_stability_since_raw(w, it.stable_since(), None)); document(w, cx, it) } @@ -1986,7 +1993,7 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, // Trait documentation try!(document(w, cx, it)); - fn trait_item(w: &mut fmt::Formatter, cx: &Context, m: &clean::Item) + fn trait_item(w: &mut fmt::Formatter, cx: &Context, m: &clean::Item, t: &clean::Item) -> fmt::Result { let name = m.name.as_ref().unwrap(); let id = derive_id(format!("{}.{}", shortty(m), name)); @@ -1994,7 +2001,9 @@ fn trait_item(w: &mut fmt::Formatter, cx: &Context, m: &clean::Item) id = id, stab = m.stability_class())); try!(render_assoc_item(w, m, AssocItemLink::Anchor)); - try!(write!(w, "")); + try!(write!(w, "")); + try!(render_stability_since(w, m, t)); + try!(write!(w, "")); try!(document(w, cx, m)); Ok(()) } @@ -2005,7 +2014,7 @@ fn trait_item(w: &mut fmt::Formatter, cx: &Context, m: &clean::Item)
{name} | ", name = variant.name.as_ref().unwrap())); @@ -2286,12 +2324,14 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, } _ => () } + try!(write!(w, " | ")); + try!(render_stability_since(w, variant, it)); try!(write!(w, " |
{}
{}
", i.impl_));
+ let since = i.stability.as_ref().map(|s| &s.since[..]);
+ try!(render_stability_since_raw(w, since, outer_version));
+ try!(write!(w, "", id, shortty(item)));
- try!(render_assoc_item(w, item, link));
+ try!(write!(w, "", id, shortty(item)));
+ try!(render_stability_since_raw(w, item.stable_since(), outer_version));
+ try!(write!(w, ""));
+ try!(render_assoc_item(w, item, link));
try!(write!(w, "
\n"));
}
}
@@ -2546,7 +2597,7 @@ fn is_static_method(item: &clean::Item) -> bool {
try!(write!(w, ""));
for trait_item in &i.impl_.items {
- try!(doctraititem(w, cx, trait_item, link, render_header));
+ try!(doctraititem(w, cx, trait_item, link, render_header, outer_version));
}
fn render_default_items(w: &mut fmt::Formatter,
@@ -2554,7 +2605,8 @@ fn render_default_items(w: &mut fmt::Formatter,
did: DefId,
t: &clean::Trait,
i: &clean::Impl,
- render_static: bool) -> fmt::Result {
+ render_static: bool,
+ outer_version: Option<&str>) -> fmt::Result {
for trait_item in &t.items {
let n = trait_item.name.clone();
match i.items.iter().find(|m| { m.name == n }) {
@@ -2562,7 +2614,8 @@ fn render_default_items(w: &mut fmt::Formatter,
None => {}
}
- try!(doctraititem(w, cx, trait_item, AssocItemLink::GotoSource(did), render_static));
+ try!(doctraititem(w, cx, trait_item, AssocItemLink::GotoSource(did), render_static,
+ outer_version));
}
Ok(())
}
@@ -2573,7 +2626,7 @@ fn render_default_items(w: &mut fmt::Formatter,
// for them work.
if let Some(clean::ResolvedPath { did, .. }) = i.impl_.trait_ {
if let Some(t) = cache().traits.get(&did) {
- try!(render_default_items(w, cx, did, t, &i.impl_, render_header));
+ try!(render_default_items(w, cx, did, t, &i.impl_, render_header, outer_version));
}
}
@@ -2665,6 +2718,7 @@ fn item_macro(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
try!(w.write_str(&highlight::highlight(&t.source,
Some("macro"),
None)));
+ try!(render_stability_since_raw(w, it.stable_since(), None));
document(w, cx, it)
}
@@ -2672,7 +2726,7 @@ fn item_primitive(w: &mut fmt::Formatter, cx: &Context,
it: &clean::Item,
_p: &clean::PrimitiveType) -> fmt::Result {
try!(document(w, cx, it));
- render_assoc_items(w, cx, it.def_id, AssocItemRender::All)
+ render_assoc_items(w, cx, it, it.def_id, AssocItemRender::All)
}
fn get_basic_keywords() -> &'static str {