about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrandon W Maister <quodlibetor@gmail.com>2016-02-01 13:05:37 -0500
committerBrandon W Maister <quodlibetor@gmail.com>2016-02-01 13:05:37 -0500
commitd59372b7aad364a287f21cfbcf12e85d8be97fc7 (patch)
treed329df8ded05da5a1e3545ca9383e0e2fc0492c9
parentcea8f671994026cefdaadd7388aef9e05b479e66 (diff)
downloadrust-d59372b7aad364a287f21cfbcf12e85d8be97fc7.tar.gz
rust-d59372b7aad364a287f21cfbcf12e85d8be97fc7.zip
Decide to hide constness only in fn/method renders
ConstnessSpace has no knowledge of the type of item it's modifying, so
hide the constness a level up.
-rw-r--r--src/librustdoc/html/format.rs3
-rw-r--r--src/librustdoc/html/render.rs14
2 files changed, 12 insertions, 5 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index 68909b958ba..9d5189cfd0b 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -657,9 +657,6 @@ impl fmt::Display for UnsafetySpace {
 
 impl fmt::Display for ConstnessSpace {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        if option_env!("CFG_DISABLE_UNSTABLE_FEATURES").is_some() {
-            return Ok(());
-        }
         match self.get() {
             hir::Constness::Const => write!(f, "const "),
             hir::Constness::NotConst => Ok(())
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index 850045382e1..dfbe08a0e42 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -54,10 +54,12 @@ use externalfiles::ExternalHtml;
 
 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,10 +1899,14 @@ 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, "<pre class='rust fn'>{vis}{constness}{unsafety}{abi}fn \
                     {name}{generics}{decl}{where_clause}</pre>",
            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(),
@@ -2122,9 +2128,13 @@ fn render_assoc_item(w: &mut fmt::Formatter, meth: &clean::Item,
                 href(did).map(|p| format!("{}{}", p.0, anchor)).unwrap_or(anchor)
             }
         };
+        let vis_constness = match get_unstable_features_setting() {
+            UnstableFeatures::Allow => constness,
+            _ => hir::Constness::NotConst
+        };
         write!(w, "{}{}{}fn <a href='{href}' class='fnname'>{name}</a>\
                    {generics}{decl}{where_clause}",
-               ConstnessSpace(constness),
+               ConstnessSpace(vis_constness),
                UnsafetySpace(unsafety),
                match abi {
                    Abi::Rust => String::new(),