From 568cc22c3d04338f3413af19332a1c31b44dbf77 Mon Sep 17 00:00:00 2001 From: Ayaz Hafiz Date: Sat, 6 Jun 2020 11:44:28 -0700 Subject: [PATCH 1/4] Add regression test for const generic ICE in #72819 Closes #72819 --- .../issues/issue-72819-generic-in-const-eval.rs | 16 ++++++++++++++++ .../issue-72819-generic-in-const-eval.stderr | 10 ++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs create mode 100644 src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr diff --git a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs new file mode 100644 index 0000000000000..d9cbc815e8bae --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs @@ -0,0 +1,16 @@ +#![feature(const_generics)] +#![allow(incomplete_features)] +struct Arr +where Assert::<{N < usize::max_value() / 2}>: IsTrue, //~ ERROR constant expression depends on a generic parameter +{ +} + +enum Assert {} + +trait IsTrue {} + +impl IsTrue for Assert {} + +fn main() { + let x: Arr<{usize::max_value()}> = Arr {}; +} diff --git a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr new file mode 100644 index 0000000000000..f0b761f114b33 --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr @@ -0,0 +1,10 @@ +error: constant expression depends on a generic parameter + --> $DIR/issue-72819-generic-in-const-eval.rs:4:47 + | +LL | where Assert::<{N < usize::max_value() / 2}>: IsTrue, + | ^^^^^^ + | + = note: this may fail depending on what value the parameter takes + +error: aborting due to previous error + From ab7355a8860b1a16672f3678aebf64cadc53ab18 Mon Sep 17 00:00:00 2001 From: Ayaz Hafiz Date: Sat, 6 Jun 2020 12:00:23 -0700 Subject: [PATCH 2/4] fixup! Add regression test for const generic ICE in #72819 --- .../const-generics/issues/issue-72819-generic-in-const-eval.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs index d9cbc815e8bae..6228546057c4e 100644 --- a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs +++ b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs @@ -1,7 +1,8 @@ #![feature(const_generics)] #![allow(incomplete_features)] struct Arr -where Assert::<{N < usize::max_value() / 2}>: IsTrue, //~ ERROR constant expression depends on a generic parameter +where Assert::<{N < usize::max_value() / 2}>: IsTrue, +//~^ ERROR constant expression depends on a generic parameter { } From f82382af28f8cec77e0c620861fe77ffb47b2c70 Mon Sep 17 00:00:00 2001 From: Ayaz Hafiz Date: Mon, 8 Jun 2020 17:46:28 -0700 Subject: [PATCH 3/4] fixup! Add regression test for const generic ICE in #72819 --- .../const-generics/issues/issue-72819-generic-in-const-eval.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs index 6228546057c4e..225593c3178a5 100644 --- a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs +++ b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.rs @@ -1,3 +1,6 @@ +// Regression test for #72819: ICE due to failure in resolving the const generic in `Arr`'s type +// bounds. + #![feature(const_generics)] #![allow(incomplete_features)] struct Arr From 2981395d0c4c07e4700bfe10168f7df540c2157e Mon Sep 17 00:00:00 2001 From: Ayaz Hafiz Date: Mon, 8 Jun 2020 18:04:41 -0700 Subject: [PATCH 4/4] fixup! Add regression test for const generic ICE in #72819 --- .../issues/issue-72819-generic-in-const-eval.stderr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr index f0b761f114b33..a9f664d0ac8c5 100644 --- a/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr +++ b/src/test/ui/const-generics/issues/issue-72819-generic-in-const-eval.stderr @@ -1,5 +1,5 @@ error: constant expression depends on a generic parameter - --> $DIR/issue-72819-generic-in-const-eval.rs:4:47 + --> $DIR/issue-72819-generic-in-const-eval.rs:7:47 | LL | where Assert::<{N < usize::max_value() / 2}>: IsTrue, | ^^^^^^