diff options
| author | Josh Stone <jistone@redhat.com> | 2022-04-11 11:44:13 -0700 |
|---|---|---|
| committer | Josh Stone <jistone@redhat.com> | 2022-04-11 12:14:18 -0700 |
| commit | 2d5eda8fb0392f469e599a6ac3fb23461161dff6 (patch) | |
| tree | 0114a187e56848058d8891d10e1c81ac1997697e /compiler/rustc_ast/src | |
| parent | a2902ebe578c2b116d74b946f53ddfc6c1416cae (diff) | |
| download | rust-2d5eda8fb0392f469e599a6ac3fb23461161dff6.tar.gz rust-2d5eda8fb0392f469e599a6ac3fb23461161dff6.zip | |
Use const Box::default in P::<[T]>::new
Diffstat (limited to 'compiler/rustc_ast/src')
| -rw-r--r-- | compiler/rustc_ast/src/lib.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_ast/src/ptr.rs | 9 |
2 files changed, 3 insertions, 8 deletions
diff --git a/compiler/rustc_ast/src/lib.rs b/compiler/rustc_ast/src/lib.rs index 538bfc21290..a7c23dbb79c 100644 --- a/compiler/rustc_ast/src/lib.rs +++ b/compiler/rustc_ast/src/lib.rs @@ -9,6 +9,8 @@ test(attr(deny(warnings))) )] #![feature(box_patterns)] +#![feature(const_default_impls)] +#![feature(const_trait_impl)] #![feature(crate_visibility_modifier)] #![feature(if_let_guard)] #![feature(label_break_value)] diff --git a/compiler/rustc_ast/src/ptr.rs b/compiler/rustc_ast/src/ptr.rs index 70dbda82224..89a0857992e 100644 --- a/compiler/rustc_ast/src/ptr.rs +++ b/compiler/rustc_ast/src/ptr.rs @@ -128,14 +128,7 @@ impl<S: Encoder, T: Encodable<S>> Encodable<S> for P<T> { impl<T> P<[T]> { pub const fn new() -> P<[T]> { - // HACK(eddyb) bypass the lack of a `const fn` to create an empty `Box<[T]>` - // (as trait methods, `default` in this case, can't be `const fn` yet). - P { - ptr: unsafe { - use std::ptr::NonNull; - std::mem::transmute(NonNull::<[T; 0]>::dangling() as NonNull<[T]>) - }, - } + P { ptr: Box::default() } } #[inline(never)] |
