Move various ui const tests to library

Move:
 - `src\test\ui\consts\const-nonzero.rs` to `library\core`
 - `src\test\ui\consts\ascii.rs` to `library\core`
 - `src\test\ui\consts\cow-is-borrowed` to `library\alloc`

Part of #76268
This commit is contained in:
Christiaan Dirkx 2020-09-04 02:35:27 +02:00
parent 0d0f6b1130
commit 538e198193
7 changed files with 42 additions and 46 deletions

View File

@ -45,3 +45,16 @@ fn test_from_cow_path() {
let path = Path::new("hello"); let path = Path::new("hello");
test_from_cow!(path: &Path); test_from_cow!(path: &Path);
} }
#[test]
fn cow_const() {
// test that the methods of `Cow` are usable in a const context
const COW: Cow<'_, str> = Cow::Borrowed("moo");
const IS_BORROWED: bool = COW.is_borrowed();
assert!(IS_BORROWED);
const IS_OWNED: bool = COW.is_owned();
assert!(!IS_OWNED);
}

View File

@ -1,5 +1,6 @@
#![feature(allocator_api)] #![feature(allocator_api)]
#![feature(box_syntax)] #![feature(box_syntax)]
#![feature(cow_is_borrowed)]
#![feature(drain_filter)] #![feature(drain_filter)]
#![feature(exact_size_is_empty)] #![feature(exact_size_is_empty)]
#![feature(new_uninit)] #![feature(new_uninit)]

View File

@ -397,3 +397,14 @@ fn test_is_ascii_align_size_thoroughly() {
} }
} }
} }
#[test]
fn ascii_const() {
// test that the `is_ascii` methods of `char` and `u8` are usable in a const context
const CHAR_IS_ASCII: bool = 'a'.is_ascii();
assert!(CHAR_IS_ASCII);
const BYTE_IS_ASCII: bool = 97u8.is_ascii();
assert!(BYTE_IS_ASCII);
}

View File

@ -195,3 +195,20 @@ fn test_nonzero_from_int_on_err() {
assert!(NonZeroI8::try_from(0).is_err()); assert!(NonZeroI8::try_from(0).is_err());
assert!(NonZeroI32::try_from(0).is_err()); assert!(NonZeroI32::try_from(0).is_err());
} }
#[test]
fn nonzero_const() {
// test that the methods of `NonZeroX>` are usable in a const context
// Note: only tests NonZero8
const NONZERO: NonZeroU8 = unsafe { NonZeroU8::new_unchecked(5) };
const GET: u8 = NONZERO.get();
assert_eq!(GET, 5);
const ZERO: Option<NonZeroU8> = NonZeroU8::new(0);
assert!(ZERO.is_none());
const ONE: Option<NonZeroU8> = NonZeroU8::new(1);
assert!(ONE.is_some());
}

View File

@ -1,16 +0,0 @@
// run-pass
use std::num::NonZeroU8;
const X: NonZeroU8 = unsafe { NonZeroU8::new_unchecked(5) };
const Y: u8 = X.get();
const ZERO: Option<NonZeroU8> = NonZeroU8::new(0);
const ONE: Option<NonZeroU8> = NonZeroU8::new(1);
fn main() {
assert_eq!(Y, 5);
assert!(ZERO.is_none());
assert_eq!(ONE.unwrap().get(), 1);
}

View File

@ -1,15 +0,0 @@
// run-pass
#![feature(cow_is_borrowed)]
use std::borrow::Cow;
fn main() {
const COW: Cow<str> = Cow::Borrowed("moo");
const IS_BORROWED: bool = COW.is_borrowed();
assert!(IS_BORROWED);
const IS_OWNED: bool = COW.is_owned();
assert!(!IS_OWNED);
}

View File

@ -1,15 +0,0 @@
// run-pass
static X: bool = 'a'.is_ascii();
static Y: bool = 'ä'.is_ascii();
static BX: bool = b'a'.is_ascii();
static BY: bool = 192u8.is_ascii();
fn main() {
assert!(X);
assert!(!Y);
assert!(BX);
assert!(!BY);
}