about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2018-12-18 22:24:20 +0100
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2018-12-19 09:57:29 +0100
commita6943d9d66d6dc8b7be9db556e28dbc8125f7336 (patch)
tree888f50d5eccd419c17ce3e04bfedd2af96042ec7
parent170f068103dca16eb1fe169e67d27c532ec34e50 (diff)
Set constness correctly
-rw-r--r--src/librustdoc/clean/mod.rs10
-rw-r--r--src/test/rustdoc/const-display.rs8
2 files changed, 12 insertions, 6 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs
index f08b594a8e4..44ea3d1ac2d 100644
--- a/src/librustdoc/clean/mod.rs
+++ b/src/librustdoc/clean/mod.rs
@@ -1674,6 +1674,12 @@ impl Clean<Item> for doctree::Function {
             (self.generics.clean(cx), (&self.decl, self.body).clean(cx))
         });
 
+        let did = cx.tcx.hir().local_def_id(self.id);
+        let constness = if cx.tcx.is_min_const_fn(did) {
+            hir::Constness::Const
+        } else {
+            hir::Constness::NotConst
+        };
         Item {
             name: Some(self.name.clean(cx)),
             attrs: self.attrs.clean(cx),
@@ -1681,11 +1687,11 @@ impl Clean<Item> for doctree::Function {
             visibility: self.vis.clean(cx),
             stability: self.stab.clean(cx),
             deprecation: self.depr.clean(cx),
-            def_id: cx.tcx.hir().local_def_id(self.id),
+            def_id: did,
             inner: FunctionItem(Function {
                 decl,
                 generics,
-                header: self.header,
+                header: hir::FnHeader { constness, ..self.header },
             }),
         }
     }
diff --git a/src/test/rustdoc/const-display.rs b/src/test/rustdoc/const-display.rs
index 0b727190913..8ac0d07ceef 100644
--- a/src/test/rustdoc/const-display.rs
+++ b/src/test/rustdoc/const-display.rs
@@ -18,12 +18,12 @@
 #![feature(min_const_unsafe_fn)]
 #![feature(staged_api)]
 
-// @has 'foo/fn.foo.html' '//pre' 'pub const unsafe fn foo() -> u32'
+// @has 'foo/fn.foo.html' '//pre' 'pub unsafe fn foo() -> u32'
 #[stable(feature = "rust1", since = "1.0.0")]
 #[rustc_const_unstable(feature="foo")]
 pub const unsafe fn foo() -> u32 { 42 }
 
-// @has 'foo/fn.foo2.html' '//pre' 'pub const fn foo2() -> u32'
+// @has 'foo/fn.foo2.html' '//pre' 'pub fn foo2() -> u32'
 #[unstable(feature = "humans", issue="0")]
 pub const fn foo2() -> u32 { 42 }
 
@@ -31,7 +31,7 @@ pub const fn foo2() -> u32 { 42 }
 #[stable(feature = "rust1", since = "1.0.0")]
 pub const fn bar2() -> u32 { 42 }
 
-// @has 'foo/fn.foo2_gated.html' '//pre' 'pub const unsafe fn foo2_gated() -> u32'
+// @has 'foo/fn.foo2_gated.html' '//pre' 'pub unsafe fn foo2_gated() -> u32'
 #[unstable(feature = "foo2", issue="0")]
 pub const unsafe fn foo2_gated() -> u32 { 42 }
 
@@ -39,5 +39,5 @@ pub const unsafe fn foo2_gated() -> u32 { 42 }
 #[stable(feature = "rust1", since = "1.0.0")]
 pub const unsafe fn bar2_gated() -> u32 { 42 }
 
-// @has 'foo/fn.bar_not_gated.html' '//pre' 'pub const unsafe fn bar_not_gated() -> u32'
+// @has 'foo/fn.bar_not_gated.html' '//pre' 'pub unsafe fn bar_not_gated() -> u32'
 pub const unsafe fn bar_not_gated() -> u32 { 42 }