-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #66221 - ohadravid:doc-constants, r=Dylan-DPC
Show the actual value of constant values in the documentation Fixes #66099, making rustdoc show evaluated constant scalar values. ![image](https://user-images.githubusercontent.com/2358365/68474827-c7a95e80-0226-11ea-818a-ded7bbff861f.png) where `main.rs` is ``` pub const VAL3: i32 = i32::max_value(); pub const VAL4: i32 = i32::max_value() - 1; ``` As a fallback, when a constant value is not evaluated (either because of an error or because it isn't a scalar), the original expression is used for consistency. I mimicked the way min/max values of integers are [`pretty_print`ed](https://github.com/rust-lang/rust/blob/master/src/librustc/ty/print/pretty.rs#L900), to show both the value a the "hint". While a little goofy for `std`, in user crates I think it's actually rather helpful.
- Loading branch information
Showing
11 changed files
with
192 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
// Test that the contents of constants are displayed as part of the | ||
// documentation. | ||
|
||
// @has show_const_contents/constant.CONST_S.html 'show this' | ||
// @!has show_const_contents/constant.CONST_S.html '; //' | ||
pub const CONST_S: &'static str = "show this"; | ||
|
||
// @has show_const_contents/constant.CONST_I32.html '= 42;' | ||
// @!has show_const_contents/constant.CONST_I32.html '; //' | ||
pub const CONST_I32: i32 = 42; | ||
|
||
// @has show_const_contents/constant.CONST_I32_HEX.html '= 0x42;' | ||
// @!has show_const_contents/constant.CONST_I32_HEX.html '; //' | ||
pub const CONST_I32_HEX: i32 = 0x42; | ||
|
||
// @has show_const_contents/constant.CONST_NEG_I32.html '= -42;' | ||
// @!has show_const_contents/constant.CONST_NEG_I32.html '; //' | ||
pub const CONST_NEG_I32: i32 = -42; | ||
|
||
// @has show_const_contents/constant.CONST_EQ_TO_VALUE_I32.html '= 42i32;' | ||
// @!has show_const_contents/constant.CONST_EQ_TO_VALUE_I32.html '// 42i32' | ||
pub const CONST_EQ_TO_VALUE_I32: i32 = 42i32; | ||
|
||
// @has show_const_contents/constant.CONST_CALC_I32.html '= 42 + 1; // 43i32' | ||
pub const CONST_CALC_I32: i32 = 42 + 1; | ||
|
||
// @!has show_const_contents/constant.CONST_REF_I32.html '= &42;' | ||
// @!has show_const_contents/constant.CONST_REF_I32.html '; //' | ||
pub const CONST_REF_I32: &'static i32 = &42; | ||
|
||
// @has show_const_contents/constant.CONST_I32_MAX.html '= i32::max_value(); // 2_147_483_647i32' | ||
pub const CONST_I32_MAX: i32 = i32::max_value(); | ||
|
||
// @!has show_const_contents/constant.UNIT.html '= ();' | ||
// @!has show_const_contents/constant.UNIT.html '; //' | ||
pub const UNIT: () = (); | ||
|
||
pub struct MyType(i32); | ||
|
||
// @!has show_const_contents/constant.MY_TYPE.html '= MyType(42);' | ||
// @!has show_const_contents/constant.MY_TYPE.html '; //' | ||
pub const MY_TYPE: MyType = MyType(42); | ||
|
||
pub struct MyTypeWithStr(&'static str); | ||
|
||
// @!has show_const_contents/constant.MY_TYPE_WITH_STR.html '= MyTypeWithStr("show this");' | ||
// @!has show_const_contents/constant.MY_TYPE_WITH_STR.html '; //' | ||
pub const MY_TYPE_WITH_STR: MyTypeWithStr = MyTypeWithStr("show this"); | ||
|
||
// @has show_const_contents/constant.EPSILON.html '1.1920929e-7f32;' | ||
// @!has show_const_contents/constant.EPSILON.html '; //' | ||
pub use std::f32::EPSILON; | ||
|
||
// @has show_const_contents/constant.MAX.html '= i32::max_value(); // 2_147_483_647i32' | ||
pub use std::i32::MAX; | ||
|
||
macro_rules! int_module { | ||
($T:ident) => ( | ||
pub const MIN: $T = $T::min_value(); | ||
) | ||
} | ||
|
||
// @has show_const_contents/constant.MIN.html '= i16::min_value(); // -32_768i16' | ||
int_module!(i16); |