From f080f944f134700c48801a3b826330c9bd3aa5cc Mon Sep 17 00:00:00 2001 From: CDirkx Date: Mon, 23 Mar 2020 19:16:12 +0100 Subject: Add const generics test for all range types. In addition to the regression test of `RangeInclusive` for #70155, now all range types are checked for usability within const generics: - `RangeFrom` - `RangeFull` - `RangeToInclusive` - `RangeTo` - `Range` The test are moved from `test\ui\const-generics\issues\issue-70155` to `test\ui\const-generics\std\range` in anticipation of future similar tests for std types. --- src/test/ui/const-generics/issues/issue-70155.rs | 12 ------------ .../const-generics/std/range/const-generics-range-from.rs | 11 +++++++++++ .../const-generics/std/range/const-generics-range-full.rs | 11 +++++++++++ .../std/range/const-generics-range-inclusive.rs | 13 +++++++++++++ .../std/range/const-generics-range-to-inclusive.rs | 11 +++++++++++ .../ui/const-generics/std/range/const-generics-range-to.rs | 11 +++++++++++ .../ui/const-generics/std/range/const-generics-range.rs | 11 +++++++++++ 7 files changed, 68 insertions(+), 12 deletions(-) delete mode 100644 src/test/ui/const-generics/issues/issue-70155.rs create mode 100644 src/test/ui/const-generics/std/range/const-generics-range-from.rs create mode 100644 src/test/ui/const-generics/std/range/const-generics-range-full.rs create mode 100644 src/test/ui/const-generics/std/range/const-generics-range-inclusive.rs create mode 100644 src/test/ui/const-generics/std/range/const-generics-range-to-inclusive.rs create mode 100644 src/test/ui/const-generics/std/range/const-generics-range-to.rs create mode 100644 src/test/ui/const-generics/std/range/const-generics-range.rs (limited to 'src') diff --git a/src/test/ui/const-generics/issues/issue-70155.rs b/src/test/ui/const-generics/issues/issue-70155.rs deleted file mode 100644 index be71b347590..00000000000 --- a/src/test/ui/const-generics/issues/issue-70155.rs +++ /dev/null @@ -1,12 +0,0 @@ -// check-pass -#![allow(incomplete_features)] -#![feature(const_generics)] - -// Regression test for #70155: -// `RangeInclusive` should be usable with const generics - -struct S>; - -const C : S<{ 0 ..= 999 }> = S; - -pub fn main() {} diff --git a/src/test/ui/const-generics/std/range/const-generics-range-from.rs b/src/test/ui/const-generics/std/range/const-generics-range-from.rs new file mode 100644 index 00000000000..487a51ddf25 --- /dev/null +++ b/src/test/ui/const-generics/std/range/const-generics-range-from.rs @@ -0,0 +1,11 @@ +// check-pass +#![allow(incomplete_features)] +#![feature(const_generics)] + +// `RangeFrom` should be usable within const generics: + +struct S>; + +const C : S<{ 0 .. }> = S; + +pub fn main() {} diff --git a/src/test/ui/const-generics/std/range/const-generics-range-full.rs b/src/test/ui/const-generics/std/range/const-generics-range-full.rs new file mode 100644 index 00000000000..2af2dd8343b --- /dev/null +++ b/src/test/ui/const-generics/std/range/const-generics-range-full.rs @@ -0,0 +1,11 @@ +// check-pass +#![allow(incomplete_features)] +#![feature(const_generics)] + +// `RangeFull` should be usable within const generics: + +struct S; + +const C : S<{ .. }> = S; + +pub fn main() {} diff --git a/src/test/ui/const-generics/std/range/const-generics-range-inclusive.rs b/src/test/ui/const-generics/std/range/const-generics-range-inclusive.rs new file mode 100644 index 00000000000..c9f7420f6ac --- /dev/null +++ b/src/test/ui/const-generics/std/range/const-generics-range-inclusive.rs @@ -0,0 +1,13 @@ +// check-pass +#![allow(incomplete_features)] +#![feature(const_generics)] + +// Regression test for #70155 + +// `RangeInclusive` should be usable within const generics: + +struct S>; + +const C : S<{ 0 ..= 999 }> = S; + +pub fn main() {} diff --git a/src/test/ui/const-generics/std/range/const-generics-range-to-inclusive.rs b/src/test/ui/const-generics/std/range/const-generics-range-to-inclusive.rs new file mode 100644 index 00000000000..dbef24f853c --- /dev/null +++ b/src/test/ui/const-generics/std/range/const-generics-range-to-inclusive.rs @@ -0,0 +1,11 @@ +// check-pass +#![allow(incomplete_features)] +#![feature(const_generics)] + +// `RangeToInclusive` should be usable within const generics: + +struct S>; + +const C : S<{ ..= 999 }> = S; + +pub fn main() {} diff --git a/src/test/ui/const-generics/std/range/const-generics-range-to.rs b/src/test/ui/const-generics/std/range/const-generics-range-to.rs new file mode 100644 index 00000000000..ed479316a82 --- /dev/null +++ b/src/test/ui/const-generics/std/range/const-generics-range-to.rs @@ -0,0 +1,11 @@ +// check-pass +#![allow(incomplete_features)] +#![feature(const_generics)] + +// `RangeTo` should be usable within const generics: + +struct S>; + +const C : S<{ .. 1000 }> = S; + +pub fn main() {} diff --git a/src/test/ui/const-generics/std/range/const-generics-range.rs b/src/test/ui/const-generics/std/range/const-generics-range.rs new file mode 100644 index 00000000000..ea4b72780c9 --- /dev/null +++ b/src/test/ui/const-generics/std/range/const-generics-range.rs @@ -0,0 +1,11 @@ +// check-pass +#![allow(incomplete_features)] +#![feature(const_generics)] + +// `Range` should be usable within const generics: + +struct S>; + +const C : S<{ 0 .. 1000 }> = S; + +pub fn main() {} -- cgit 1.4.1-3-g733a5