From 35ce2abf2142f5f5e96222fd4dd6b9472f59a6ca Mon Sep 17 00:00:00 2001 From: varkor Date: Tue, 28 May 2019 22:53:16 +0100 Subject: [PATCH 1/3] Use proper const printing in rustdoc --- src/librustdoc/clean/mod.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 4ee63a4c9703b..e68ad6a7c3b4b 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -3145,10 +3145,7 @@ impl<'tcx> Clean for ty::Const<'tcx> { fn clean(&self, cx: &DocContext<'_>) -> Constant { Constant { type_: self.ty.clean(cx), - expr: match self.val { - ConstValue::Param(ty::ParamConst { name, .. }) => format!("{}", name), - e => format!("{:?}", e), // FIXME generic consts with expressions - }, + expr: format!("{}", self), } } } From 7f9dc73a31b94b76a87151467d0dd6dfc186a573 Mon Sep 17 00:00:00 2001 From: varkor Date: Tue, 28 May 2019 22:53:36 +0100 Subject: [PATCH 2/3] Add a const-generics folder to rustdoc tests --- .../{generic-const.rs => const-generics/const-impl.rs} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename src/test/rustdoc/{generic-const.rs => const-generics/const-impl.rs} (99%) diff --git a/src/test/rustdoc/generic-const.rs b/src/test/rustdoc/const-generics/const-impl.rs similarity index 99% rename from src/test/rustdoc/generic-const.rs rename to src/test/rustdoc/const-generics/const-impl.rs index d6794ac8f1d94..85ee6d3376b27 100644 --- a/src/test/rustdoc/generic-const.rs +++ b/src/test/rustdoc/const-generics/const-impl.rs @@ -1,7 +1,8 @@ +// ignore-tidy-linelength + #![feature(const_generics)] -#![crate_name = "foo"] -// ignore-tidy-linelength +#![crate_name = "foo"] pub enum Order { Sorted, From 9c9b7b4eaceefe88bafc3b4e3529635973320253 Mon Sep 17 00:00:00 2001 From: varkor Date: Tue, 28 May 2019 22:53:48 +0100 Subject: [PATCH 3/3] Add a regression test for unevaluated const in rustdoc --- src/test/rustdoc/const-generics/add-impl.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/test/rustdoc/const-generics/add-impl.rs diff --git a/src/test/rustdoc/const-generics/add-impl.rs b/src/test/rustdoc/const-generics/add-impl.rs new file mode 100644 index 0000000000000..ed45d339728bc --- /dev/null +++ b/src/test/rustdoc/const-generics/add-impl.rs @@ -0,0 +1,21 @@ +// ignore-tidy-linelength + +#![feature(const_generics)] + +#![crate_name = "foo"] + +use std::ops::Add; + +// @has foo/struct.Simd.html '//pre[@class="rust struct"]' 'pub struct Simd' +pub struct Simd { + inner: T, +} + +// @has foo/struct.Simd.html '//div[@id="implementations-list"]/h3/code' 'impl Add> for Simd' +impl Add for Simd { + type Output = Self; + + fn add(self, rhs: Self) -> Self::Output { + Self { inner: 0 } + } +}