From 00a5ec13757b3830248f4822e5012ec304bf3647 Mon Sep 17 00:00:00 2001 From: Ellen Date: Sat, 12 Jun 2021 09:56:25 +0100 Subject: [PATCH 1/3] dont ICE on `ConstEvaluatable` predicates --- src/librustdoc/clean/mod.rs | 2 +- src/test/rustdoc/const-generics/const-evaluatable-checked.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/test/rustdoc/const-generics/const-evaluatable-checked.rs diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index d1c18821ea644..61507d5ddca25 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -350,12 +350,12 @@ impl<'a> Clean> for ty::Predicate<'a> { ty::PredicateKind::RegionOutlives(pred) => pred.clean(cx), ty::PredicateKind::TypeOutlives(pred) => pred.clean(cx), ty::PredicateKind::Projection(pred) => Some(pred.clean(cx)), + ty::PredicateKind::ConstEvaluatable(..) => None, ty::PredicateKind::Subtype(..) | ty::PredicateKind::WellFormed(..) | ty::PredicateKind::ObjectSafe(..) | ty::PredicateKind::ClosureKind(..) - | ty::PredicateKind::ConstEvaluatable(..) | ty::PredicateKind::ConstEquate(..) | ty::PredicateKind::TypeWellFormedFromEnv(..) => panic!("not user writable"), } diff --git a/src/test/rustdoc/const-generics/const-evaluatable-checked.rs b/src/test/rustdoc/const-generics/const-evaluatable-checked.rs new file mode 100644 index 0000000000000..2ba55559181b5 --- /dev/null +++ b/src/test/rustdoc/const-generics/const-evaluatable-checked.rs @@ -0,0 +1,5 @@ +#![crate_name = "foo"] +#![feature(const_evaluatable_checked, const_generics)] +#![allow(incomplete_features)] +// make sure that `ConstEvaluatable` predicates dont cause rustdoc to ICE #77647 +pub struct Ice where [(); N + 1]:; \ No newline at end of file From 9a75381f64d1988f78649833ef92cdf4482619e8 Mon Sep 17 00:00:00 2001 From: Ellen Date: Sat, 12 Jun 2021 10:18:51 +0100 Subject: [PATCH 2/3] line --- src/test/rustdoc/const-generics/const-evaluatable-checked.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/rustdoc/const-generics/const-evaluatable-checked.rs b/src/test/rustdoc/const-generics/const-evaluatable-checked.rs index 2ba55559181b5..0952f94f26804 100644 --- a/src/test/rustdoc/const-generics/const-evaluatable-checked.rs +++ b/src/test/rustdoc/const-generics/const-evaluatable-checked.rs @@ -2,4 +2,4 @@ #![feature(const_evaluatable_checked, const_generics)] #![allow(incomplete_features)] // make sure that `ConstEvaluatable` predicates dont cause rustdoc to ICE #77647 -pub struct Ice where [(); N + 1]:; \ No newline at end of file +pub struct Ice where [(); N + 1]:; From 94de92ddc71cb517a4d81f2b851b2871a1fc7fba Mon Sep 17 00:00:00 2001 From: Ellen Date: Sat, 12 Jun 2021 16:35:18 +0100 Subject: [PATCH 3/3] add `@has` --- src/test/rustdoc/const-generics/const-evaluatable-checked.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/rustdoc/const-generics/const-evaluatable-checked.rs b/src/test/rustdoc/const-generics/const-evaluatable-checked.rs index 0952f94f26804..1c074fdb3f882 100644 --- a/src/test/rustdoc/const-generics/const-evaluatable-checked.rs +++ b/src/test/rustdoc/const-generics/const-evaluatable-checked.rs @@ -2,4 +2,6 @@ #![feature(const_evaluatable_checked, const_generics)] #![allow(incomplete_features)] // make sure that `ConstEvaluatable` predicates dont cause rustdoc to ICE #77647 +// @has foo/struct.Ice.html '//pre[@class="rust struct"]' \ +// 'pub struct Ice where [(); N + 1]: ;' pub struct Ice where [(); N + 1]:;