Fix rendering 'const' for intrinsics
This commit is contained in:
parent
1e4f90061c
commit
740f6aaf95
@ -676,7 +676,8 @@ impl Item {
|
|||||||
}
|
}
|
||||||
let header = match *self.kind {
|
let header = match *self.kind {
|
||||||
ItemKind::ForeignFunctionItem(_) => {
|
ItemKind::ForeignFunctionItem(_) => {
|
||||||
let abi = tcx.fn_sig(self.item_id.as_def_id().unwrap()).abi();
|
let def_id = self.item_id.as_def_id().unwrap();
|
||||||
|
let abi = tcx.fn_sig(def_id).abi();
|
||||||
hir::FnHeader {
|
hir::FnHeader {
|
||||||
unsafety: if abi == Abi::RustIntrinsic {
|
unsafety: if abi == Abi::RustIntrinsic {
|
||||||
intrinsic_operation_unsafety(tcx, self.item_id.as_def_id().unwrap())
|
intrinsic_operation_unsafety(tcx, self.item_id.as_def_id().unwrap())
|
||||||
@ -684,7 +685,14 @@ impl Item {
|
|||||||
hir::Unsafety::Unsafe
|
hir::Unsafety::Unsafe
|
||||||
},
|
},
|
||||||
abi,
|
abi,
|
||||||
constness: hir::Constness::NotConst,
|
constness: if abi == Abi::RustIntrinsic
|
||||||
|
&& tcx.is_const_fn(def_id)
|
||||||
|
&& is_unstable_const_fn(tcx, def_id).is_none()
|
||||||
|
{
|
||||||
|
hir::Constness::Const
|
||||||
|
} else {
|
||||||
|
hir::Constness::NotConst
|
||||||
|
},
|
||||||
asyncness: hir::IsAsync::NotAsync,
|
asyncness: hir::IsAsync::NotAsync,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
25
tests/rustdoc/const-intrinsic.rs
Normal file
25
tests/rustdoc/const-intrinsic.rs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#![feature(intrinsics)]
|
||||||
|
#![feature(staged_api)]
|
||||||
|
|
||||||
|
#![crate_name = "foo"]
|
||||||
|
#![stable(since="1.0.0", feature="rust1")]
|
||||||
|
|
||||||
|
extern "rust-intrinsic" {
|
||||||
|
// @has 'foo/fn.transmute.html'
|
||||||
|
// @has - '//pre[@class="rust fn"]' 'pub const unsafe extern "rust-intrinsic" fn transmute<T, U>(_: T) -> U'
|
||||||
|
#[stable(since="1.0.0", feature="rust1")]
|
||||||
|
#[rustc_const_stable(feature = "const_transmute", since = "1.56.0")]
|
||||||
|
pub fn transmute<T, U>(_: T) -> U;
|
||||||
|
|
||||||
|
// @has 'foo/fn.unreachable.html'
|
||||||
|
// @has - '//pre[@class="rust fn"]' 'pub unsafe extern "rust-intrinsic" fn unreachable() -> !'
|
||||||
|
#[stable(since="1.0.0", feature="rust1")]
|
||||||
|
pub fn unreachable() -> !;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
// @has 'foo/fn.needs_drop.html'
|
||||||
|
// @has - '//pre[@class="rust fn"]' 'pub unsafe extern "C" fn needs_drop() -> !'
|
||||||
|
#[stable(since="1.0.0", feature="rust1")]
|
||||||
|
pub fn needs_drop() -> !;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user