Auto merge of #56845 - GuillaumeGomez:const-docs, r=oli-obk
Don't render const keyword on stable Fixes #55246. Continuation of #55327. r? @oli-obk
This commit is contained in:
commit
09d6ab90e5
@ -207,7 +207,7 @@ pub fn build_external_trait(cx: &DocContext, did: DefId) -> clean::Trait {
|
|||||||
fn build_external_function(cx: &DocContext, did: DefId) -> clean::Function {
|
fn build_external_function(cx: &DocContext, did: DefId) -> clean::Function {
|
||||||
let sig = cx.tcx.fn_sig(did);
|
let sig = cx.tcx.fn_sig(did);
|
||||||
|
|
||||||
let constness = if cx.tcx.is_const_fn(did) {
|
let constness = if cx.tcx.is_min_const_fn(did) {
|
||||||
hir::Constness::Const
|
hir::Constness::Const
|
||||||
} else {
|
} else {
|
||||||
hir::Constness::NotConst
|
hir::Constness::NotConst
|
||||||
|
@ -1674,6 +1674,12 @@ impl Clean<Item> for doctree::Function {
|
|||||||
(self.generics.clean(cx), (&self.decl, self.body).clean(cx))
|
(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 {
|
Item {
|
||||||
name: Some(self.name.clean(cx)),
|
name: Some(self.name.clean(cx)),
|
||||||
attrs: self.attrs.clean(cx),
|
attrs: self.attrs.clean(cx),
|
||||||
@ -1681,11 +1687,11 @@ impl Clean<Item> for doctree::Function {
|
|||||||
visibility: self.vis.clean(cx),
|
visibility: self.vis.clean(cx),
|
||||||
stability: self.stab.clean(cx),
|
stability: self.stab.clean(cx),
|
||||||
deprecation: self.depr.clean(cx),
|
deprecation: self.depr.clean(cx),
|
||||||
def_id: cx.tcx.hir().local_def_id(self.id),
|
def_id: did,
|
||||||
inner: FunctionItem(Function {
|
inner: FunctionItem(Function {
|
||||||
decl,
|
decl,
|
||||||
generics,
|
generics,
|
||||||
header: self.header,
|
header: hir::FnHeader { constness, ..self.header },
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2009,7 +2015,7 @@ impl<'tcx> Clean<Item> for ty::AssociatedItem {
|
|||||||
ty::TraitContainer(_) => self.defaultness.has_value()
|
ty::TraitContainer(_) => self.defaultness.has_value()
|
||||||
};
|
};
|
||||||
if provided {
|
if provided {
|
||||||
let constness = if cx.tcx.is_const_fn(self.def_id) {
|
let constness = if cx.tcx.is_min_const_fn(self.def_id) {
|
||||||
hir::Constness::Const
|
hir::Constness::Const
|
||||||
} else {
|
} else {
|
||||||
hir::Constness::NotConst
|
hir::Constness::NotConst
|
||||||
|
43
src/test/rustdoc/const-display.rs
Normal file
43
src/test/rustdoc/const-display.rs
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
// file at the top-level directory of this distribution and at
|
||||||
|
// http://rust-lang.org/COPYRIGHT.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
#![crate_name = "foo"]
|
||||||
|
|
||||||
|
#![unstable(feature = "humans",
|
||||||
|
reason = "who ever let humans program computers, we're apparently really bad at it",
|
||||||
|
issue = "0")]
|
||||||
|
|
||||||
|
#![feature(rustc_const_unstable, const_fn, foo, foo2)]
|
||||||
|
#![feature(min_const_unsafe_fn)]
|
||||||
|
#![feature(staged_api)]
|
||||||
|
|
||||||
|
// @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 fn foo2() -> u32'
|
||||||
|
#[unstable(feature = "humans", issue="0")]
|
||||||
|
pub const fn foo2() -> u32 { 42 }
|
||||||
|
|
||||||
|
// @has 'foo/fn.bar2.html' '//pre' 'pub const fn bar2() -> u32'
|
||||||
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
pub const fn bar2() -> u32 { 42 }
|
||||||
|
|
||||||
|
// @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 }
|
||||||
|
|
||||||
|
// @has 'foo/fn.bar2_gated.html' '//pre' 'pub const unsafe fn bar2_gated() -> u32'
|
||||||
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
pub const unsafe fn bar2_gated() -> u32 { 42 }
|
||||||
|
|
||||||
|
// @has 'foo/fn.bar_not_gated.html' '//pre' 'pub unsafe fn bar_not_gated() -> u32'
|
||||||
|
pub const unsafe fn bar_not_gated() -> u32 { 42 }
|
Loading…
Reference in New Issue
Block a user