1
Fork 0

feature(const_param_types) -> feature(adt_const_params)

This commit is contained in:
lcnr 2021-08-30 10:59:53 +02:00
parent 4747cbb3bb
commit 87e781799a
77 changed files with 108 additions and 108 deletions

View file

@ -3,7 +3,7 @@ A non-structural-match type was used as the type of a const generic parameter.
Erroneous code example: Erroneous code example:
```compile_fail,E0741 ```compile_fail,E0741
#![feature(const_param_types)] #![feature(adt_const_params)]
struct A; struct A;
@ -16,7 +16,7 @@ may be used as the types of const generic parameters.
To fix the previous code example, we derive `PartialEq` and `Eq`: To fix the previous code example, we derive `PartialEq` and `Eq`:
``` ```
#![feature(const_param_types)] #![feature(adt_const_params)]
#[derive(PartialEq, Eq)] // We derive both traits here. #[derive(PartialEq, Eq)] // We derive both traits here.
struct A; struct A;

View file

@ -4,7 +4,7 @@ allowed.
Erroneous code example: Erroneous code example:
```compile_fail,E0771 ```compile_fail,E0771
#![feature(const_param_types)] #![feature(adt_const_params)]
fn function_with_str<'a, const STRING: &'a str>() {} // error! fn function_with_str<'a, const STRING: &'a str>() {} // error!
``` ```
@ -13,7 +13,7 @@ To fix this issue, the lifetime in the const generic need to be changed to
`'static`: `'static`:
``` ```
#![feature(const_param_types)] #![feature(adt_const_params)]
fn function_with_str<const STRING: &'static str>() {} // ok! fn function_with_str<const STRING: &'static str>() {} // ok!
``` ```

View file

@ -71,7 +71,7 @@ macro_rules! declare_features {
} }
pub fn unordered_const_ty_params(&self) -> bool { pub fn unordered_const_ty_params(&self) -> bool {
self.const_generics_defaults || self.generic_const_exprs || self.const_param_types self.const_generics_defaults || self.generic_const_exprs || self.adt_const_params
} }
/// Some features are known to be incomplete and using them is likely to have /// Some features are known to be incomplete and using them is likely to have
@ -674,7 +674,7 @@ declare_features! (
(incomplete, generic_const_exprs, "1.56.0", Some(76560), None), (incomplete, generic_const_exprs, "1.56.0", Some(76560), None),
/// Allows additional const parameter types, such as `&'static str` or user defined types /// Allows additional const parameter types, such as `&'static str` or user defined types
(incomplete, const_param_types, "1.56.0", Some(44580), None), (incomplete, adt_const_params, "1.56.0", Some(44580), None),
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// feature-group-end: actual feature gates // feature-group-end: actual feature gates

View file

@ -104,7 +104,7 @@ declare_features! (
(removed, quote, "1.33.0", Some(29601), None, None), (removed, quote, "1.33.0", Some(29601), None, None),
/// Allows const generic types (e.g. `struct Foo<const N: usize>(...);`). /// Allows const generic types (e.g. `struct Foo<const N: usize>(...);`).
(removed, const_generics, "1.34.0", Some(44580), None, (removed, const_generics, "1.34.0", Some(44580), None,
Some("removed in favor of `#![feature(const_param_types]` and `#![feature(generic_const_exprs)]`")), Some("removed in favor of `#![feature(adt_const_params]` and `#![feature(generic_const_exprs)]`")),
/// Allows `[x; N]` where `x` is a constant (RFC 2203). /// Allows `[x; N]` where `x` is a constant (RFC 2203).
(removed, const_in_array_repeat_expressions, "1.37.0", Some(49147), None, (removed, const_in_array_repeat_expressions, "1.37.0", Some(49147), None,
Some("removed due to causing promotable bugs")), Some("removed due to causing promotable bugs")),

View file

@ -284,6 +284,7 @@ symbols! {
add_assign, add_assign,
add_with_overflow, add_with_overflow,
address, address,
adt_const_params,
advanced_slice_patterns, advanced_slice_patterns,
adx_target_feature, adx_target_feature,
alias, alias,
@ -451,7 +452,6 @@ symbols! {
const_mut_refs, const_mut_refs,
const_panic, const_panic,
const_panic_fmt, const_panic_fmt,
const_param_types,
const_precise_live_drops, const_precise_live_drops,
const_ptr, const_ptr,
const_raw_ptr_deref, const_raw_ptr_deref,

View file

@ -290,7 +290,7 @@ fn check_param_wf(tcx: TyCtxt<'_>, param: &hir::GenericParam<'_>) {
let err_ty_str; let err_ty_str;
let mut is_ptr = true; let mut is_ptr = true;
let err = if tcx.features().const_param_types { let err = if tcx.features().adt_const_params {
match ty.peel_refs().kind() { match ty.peel_refs().kind() {
ty::FnPtr(_) => Some("function pointers"), ty::FnPtr(_) => Some("function pointers"),
ty::RawPtr(_) => Some("raw pointers"), ty::RawPtr(_) => Some("raw pointers"),
@ -328,7 +328,7 @@ fn check_param_wf(tcx: TyCtxt<'_>, param: &hir::GenericParam<'_>) {
err.note("the only supported types are integers, `bool` and `char`"); err.note("the only supported types are integers, `bool` and `char`");
if tcx.sess.is_nightly_build() { if tcx.sess.is_nightly_build() {
err.help( err.help(
"more complex types are supported with `#![feature(const_param_types)]`", "more complex types are supported with `#![feature(adt_const_params)]`",
); );
} }
err.emit() err.emit()

View file

@ -82,7 +82,7 @@
#![allow(unused_variables)] #![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)] #![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section] #![omit_gdb_pretty_printer_section]
#![feature(const_param_types, generators, generator_trait)] #![feature(adt_const_params, generators, generator_trait)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
use Mod1::TestTrait2; use Mod1::TestTrait2;

View file

@ -1,5 +1,5 @@
// revisions: cfail // revisions: cfail
#![feature(generic_const_exprs, const_param_types)] #![feature(generic_const_exprs, adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
// regression test for #77650 // regression test for #77650
fn c<T, const N: std::num::NonZeroUsize>() fn c<T, const N: std::num::NonZeroUsize>()

View file

@ -1,5 +1,5 @@
// revisions: cfail // revisions: cfail
#![feature(generic_const_exprs, const_param_types, const_generics_defaults)] #![feature(generic_const_exprs, adt_const_params, const_generics_defaults)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
// regression test for #77650 // regression test for #77650
struct C<T, const N: core::num::NonZeroUsize>([T; N.get()]) struct C<T, const N: core::num::NonZeroUsize>([T; N.get()])

View file

@ -1,5 +1,5 @@
// revisions: rpass // revisions: rpass
#![feature(generic_const_exprs, const_param_types)] #![feature(generic_const_exprs, adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
use std::{convert::TryFrom, num::NonZeroUsize}; use std::{convert::TryFrom, num::NonZeroUsize};

View file

@ -1,4 +1,4 @@
#![feature(const_param_types)] #![feature(adt_const_params)]
#![crate_name = "foo"] #![crate_name = "foo"]

View file

@ -1,7 +1,7 @@
// edition:2018 // edition:2018
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Foo; struct Foo;

View file

@ -35,7 +35,7 @@ LL | struct A<const N: &u8>;
| ^^^ | ^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `&'static u8` is forbidden as the type of a const generic parameter error: `&'static u8` is forbidden as the type of a const generic parameter
--> $DIR/const-param-elided-lifetime.rs:14:15 --> $DIR/const-param-elided-lifetime.rs:14:15
@ -44,7 +44,7 @@ LL | impl<const N: &u8> A<N> {
| ^^^ | ^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `&'static u8` is forbidden as the type of a const generic parameter error: `&'static u8` is forbidden as the type of a const generic parameter
--> $DIR/const-param-elided-lifetime.rs:17:21 --> $DIR/const-param-elided-lifetime.rs:17:21
@ -53,7 +53,7 @@ LL | fn foo<const M: &u8>(&self) {}
| ^^^ | ^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `&'static u8` is forbidden as the type of a const generic parameter error: `&'static u8` is forbidden as the type of a const generic parameter
--> $DIR/const-param-elided-lifetime.rs:22:15 --> $DIR/const-param-elided-lifetime.rs:22:15
@ -62,7 +62,7 @@ LL | impl<const N: &u8> B for A<N> {}
| ^^^ | ^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `&'static u8` is forbidden as the type of a const generic parameter error: `&'static u8` is forbidden as the type of a const generic parameter
--> $DIR/const-param-elided-lifetime.rs:26:17 --> $DIR/const-param-elided-lifetime.rs:26:17
@ -71,7 +71,7 @@ LL | fn bar<const N: &u8>() {}
| ^^^ | ^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 10 previous errors error: aborting due to 10 previous errors

View file

@ -3,7 +3,7 @@
// elided lifetimes within the type of a const generic parameters to be 'static, like elided // elided lifetimes within the type of a const generic parameters to be 'static, like elided
// lifetimes within const/static items. // lifetimes within const/static items.
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct A<const N: &u8>; struct A<const N: &u8>;

View file

@ -17,7 +17,7 @@ LL | pub struct Dependent<const N: usize, const X: [u8; N]>([(); N]);
| ^^^^^^^ | ^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `[u8; _]` is forbidden as the type of a const generic parameter error: `[u8; _]` is forbidden as the type of a const generic parameter
--> $DIR/const-param-type-depends-on-const-param.rs:15:35 --> $DIR/const-param-type-depends-on-const-param.rs:15:35
@ -26,7 +26,7 @@ LL | pub struct SelfDependent<const N: [u8; N]>;
| ^^^^^^^ | ^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 4 previous errors error: aborting due to 4 previous errors

View file

@ -1,6 +1,6 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
// Currently, const parameters cannot depend on other generic parameters, // Currently, const parameters cannot depend on other generic parameters,

View file

@ -1,6 +1,6 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
// Currently, const parameters cannot depend on other generic parameters, // Currently, const parameters cannot depend on other generic parameters,

View file

@ -2,7 +2,7 @@
// run-pass // run-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct A<const N: u8>; struct A<const N: u8>;

View file

@ -1,5 +1,5 @@
// Check that different const types are different. // Check that different const types are different.
#![feature(const_param_types)] #![feature(adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
struct Const<const V: [usize; 1]> {} struct Const<const V: [usize; 1]> {}

View file

@ -1,7 +1,7 @@
// Check that functions cannot be used as const parameters. // Check that functions cannot be used as const parameters.
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
fn function() -> u32 { fn function() -> u32 {

View file

@ -1,6 +1,6 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Checked<const F: fn(usize) -> bool>; struct Checked<const F: fn(usize) -> bool>;

View file

@ -1,4 +1,4 @@
#![feature(const_param_types)] #![feature(adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
#[derive(PartialEq, Eq)] #[derive(PartialEq, Eq)]

View file

@ -23,7 +23,7 @@ LL | struct B<const CFG: Config> {
| ^^^^^^ | ^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 3 previous errors error: aborting due to 3 previous errors

View file

@ -1,7 +1,7 @@
// Tests that array sizes that depend on const-params are checked using `ConstEvaluatable`. // Tests that array sizes that depend on const-params are checked using `ConstEvaluatable`.
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(generic_const_exprs, const_param_types))] #![cfg_attr(full, feature(generic_const_exprs, adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
#[allow(dead_code)] #[allow(dead_code)]

View file

@ -14,7 +14,7 @@ LL | trait Trait<const S: &'static str> {}
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -2,7 +2,7 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
#![cfg_attr(full, feature(const_param_types, generic_const_exprs))] #![cfg_attr(full, feature(adt_const_params, generic_const_exprs))]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(const_type_name)] #![feature(const_type_name)]

View file

@ -1,4 +1,4 @@
#![feature(const_param_types, const_generics_defaults)] #![feature(adt_const_params, const_generics_defaults)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
#[derive(PartialEq, Eq)] #[derive(PartialEq, Eq)]

View file

@ -1,6 +1,6 @@
// Regression test for https://github.com/rust-lang/rust/issues/56445#issuecomment-518402995. // Regression test for https://github.com/rust-lang/rust/issues/56445#issuecomment-518402995.
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
#![crate_type = "lib"] #![crate_type = "lib"]

View file

@ -11,7 +11,7 @@ LL | fn foo<const N: usize, const A: [u8; N]>() {}
| ^^^^^^^ | ^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -1,5 +1,5 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types, generic_arg_infer))] #![cfg_attr(full, feature(adt_const_params, generic_arg_infer))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
fn foo<const N: usize, const A: [u8; N]>() {} fn foo<const N: usize, const A: [u8; N]>() {}

View file

@ -5,7 +5,7 @@ LL | fn test<const T: &'static dyn A>() {
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error[E0741]: `&'static (dyn A + 'static)` must be annotated with `#[derive(PartialEq, Eq)]` to be used as the type of a const parameter error[E0741]: `&'static (dyn A + 'static)` must be annotated with `#[derive(PartialEq, Eq)]` to be used as the type of a const parameter
--> $DIR/issue-63322-forbid-dyn.rs:9:18 --> $DIR/issue-63322-forbid-dyn.rs:9:18

View file

@ -1,5 +1,5 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
trait A {} trait A {}

View file

@ -1,5 +1,5 @@
// check-pass // check-pass
#![feature(const_param_types)] #![feature(adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]

View file

@ -5,7 +5,7 @@ LL | struct Const<const V: [usize; 0]> {}
| ^^^^^^^^^^ | ^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -1,6 +1,6 @@
// [full] check-pass // [full] check-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Const<const V: [usize; 0]> {} struct Const<const V: [usize; 0]> {}

View file

@ -5,7 +5,7 @@ LL | struct Foo<const V: [usize; 0] > {}
| ^^^^^^^^^^ | ^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -1,6 +1,6 @@
// [full] check-pass // [full] check-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Foo<const V: [usize; 0] > {} struct Foo<const V: [usize; 0] > {}

View file

@ -11,7 +11,7 @@ LL | fn foo<const LEN: usize, const DATA: [u8; LEN]>() {}
| ^^^^^^^^^ | ^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -1,5 +1,5 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
fn foo<const LEN: usize, const DATA: [u8; LEN]>() {} fn foo<const LEN: usize, const DATA: [u8; LEN]>() {}

View file

@ -1,5 +1,5 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Test(*const usize); struct Test(*const usize);

View file

@ -1,5 +1,5 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Test(); struct Test();

View file

@ -1,5 +1,5 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
fn func<A, const F: fn(inner: A)>(outer: A) { fn func<A, const F: fn(inner: A)>(outer: A) {

View file

@ -1,5 +1,5 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
use std::ffi::{CStr, CString}; use std::ffi::{CStr, CString};

View file

@ -5,7 +5,7 @@ LL | fn hoge<const IN: [u32; LEN]>() {}
| ^^^^^^^^^^ | ^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -1,6 +1,6 @@
// [full] check-pass // [full] check-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
const LEN: usize = 1024; const LEN: usize = 1024;

View file

@ -5,7 +5,7 @@ LL | fn test<const N: [u8; 1 + 2]>() {}
| ^^^^^^^^^^^ | ^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `[u8; _]` is forbidden as the type of a const generic parameter error: `[u8; _]` is forbidden as the type of a const generic parameter
--> $DIR/issue-74101.rs:9:21 --> $DIR/issue-74101.rs:9:21
@ -14,7 +14,7 @@ LL | struct Foo<const N: [u8; 1 + 2]>;
| ^^^^^^^^^^^ | ^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -1,6 +1,6 @@
// [full] check-pass // [full] check-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
fn test<const N: [u8; 1 + 2]>() {} fn test<const N: [u8; 1 + 2]>() {}

View file

@ -5,7 +5,7 @@ LL | fn ice_struct_fn<const I: IceEnum>() {}
| ^^^^^^^ | ^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -1,6 +1,6 @@
// [full] check-pass // [full] check-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
#[derive(PartialEq, Eq)] #[derive(PartialEq, Eq)]

View file

@ -5,7 +5,7 @@ LL | struct Outer<const I: Inner>;
| ^^^^^ | ^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `Inner` is forbidden as the type of a const generic parameter error: `Inner` is forbidden as the type of a const generic parameter
--> $DIR/issue-74950.rs:17:23 --> $DIR/issue-74950.rs:17:23
@ -14,7 +14,7 @@ LL | struct Outer<const I: Inner>;
| ^^^^^ | ^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `Inner` is forbidden as the type of a const generic parameter error: `Inner` is forbidden as the type of a const generic parameter
--> $DIR/issue-74950.rs:17:23 --> $DIR/issue-74950.rs:17:23
@ -23,7 +23,7 @@ LL | struct Outer<const I: Inner>;
| ^^^^^ | ^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `Inner` is forbidden as the type of a const generic parameter error: `Inner` is forbidden as the type of a const generic parameter
--> $DIR/issue-74950.rs:17:23 --> $DIR/issue-74950.rs:17:23
@ -32,7 +32,7 @@ LL | struct Outer<const I: Inner>;
| ^^^^^ | ^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `Inner` is forbidden as the type of a const generic parameter error: `Inner` is forbidden as the type of a const generic parameter
--> $DIR/issue-74950.rs:17:23 --> $DIR/issue-74950.rs:17:23
@ -41,7 +41,7 @@ LL | struct Outer<const I: Inner>;
| ^^^^^ | ^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 5 previous errors error: aborting due to 5 previous errors

View file

@ -1,6 +1,6 @@
// [full] build-pass // [full] build-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]

View file

@ -5,7 +5,7 @@ LL | struct Foo<const N: [u8; Bar::<u32>::value()]>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -1,6 +1,6 @@
// [full] check-pass // [full] check-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Bar<T>(T); struct Bar<T>(T);

View file

@ -1,6 +1,6 @@
// ignore-test // ignore-test
// FIXME(const_generics): This test causes an ICE after reverting #76030. // FIXME(const_generics): This test causes an ICE after reverting #76030.
#![feature(const_param_types)] #![feature(adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
@ -9,7 +9,7 @@ struct Bug<const S: &'static str>;
fn main() { fn main() {
let b: Bug::<{ let b: Bug::<{
unsafe { unsafe {
// FIXME(const_param_types): Decide on how to deal with invalid values as const params. // FIXME(adt_const_params): Decide on how to deal with invalid values as const params.
std::mem::transmute::<&[u8], &str>(&[0xC0, 0xC1, 0xF5]) std::mem::transmute::<&[u8], &str>(&[0xC0, 0xC1, 0xF5])
} }
}>; }>;

View file

@ -1,6 +1,6 @@
// build-pass // build-pass
#![feature(const_param_types)] #![feature(adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
#[derive(PartialEq, Eq)] #[derive(PartialEq, Eq)]

View file

@ -5,7 +5,7 @@ LL | struct Foo<const N: [u8; 0]>;
| ^^^^^^^ | ^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `()` is forbidden as the type of a const generic parameter error: `()` is forbidden as the type of a const generic parameter
--> $DIR/complex-types.rs:6:21 --> $DIR/complex-types.rs:6:21
@ -14,7 +14,7 @@ LL | struct Bar<const N: ()>;
| ^^ | ^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `No` is forbidden as the type of a const generic parameter error: `No` is forbidden as the type of a const generic parameter
--> $DIR/complex-types.rs:11:21 --> $DIR/complex-types.rs:11:21
@ -23,7 +23,7 @@ LL | struct Fez<const N: No>;
| ^^ | ^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `&'static u8` is forbidden as the type of a const generic parameter error: `&'static u8` is forbidden as the type of a const generic parameter
--> $DIR/complex-types.rs:14:21 --> $DIR/complex-types.rs:14:21
@ -32,7 +32,7 @@ LL | struct Faz<const N: &'static u8>;
| ^^^^^^^^^^^ | ^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `!` is forbidden as the type of a const generic parameter error: `!` is forbidden as the type of a const generic parameter
--> $DIR/complex-types.rs:17:21 --> $DIR/complex-types.rs:17:21
@ -41,7 +41,7 @@ LL | struct Fiz<const N: !>;
| ^ | ^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `()` is forbidden as the type of a const generic parameter error: `()` is forbidden as the type of a const generic parameter
--> $DIR/complex-types.rs:20:19 --> $DIR/complex-types.rs:20:19
@ -50,7 +50,7 @@ LL | enum Goo<const N: ()> { A, B }
| ^^ | ^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `()` is forbidden as the type of a const generic parameter error: `()` is forbidden as the type of a const generic parameter
--> $DIR/complex-types.rs:23:20 --> $DIR/complex-types.rs:23:20
@ -59,7 +59,7 @@ LL | union Boo<const N: ()> { a: () }
| ^^ | ^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 7 previous errors error: aborting due to 7 previous errors

View file

@ -5,7 +5,7 @@ LL | fn a<const X: &'static [u32]>() {}
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -12,7 +12,7 @@ LL | | }]>;
| |__^ | |__^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
--> $DIR/nested-type.rs:15:5 --> $DIR/nested-type.rs:15:5

View file

@ -1,6 +1,6 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Foo<const N: [u8; { //[min]~ ERROR `[u8; _]` is forbidden struct Foo<const N: [u8; { //[min]~ ERROR `[u8; _]` is forbidden

View file

@ -1,7 +1,7 @@
// Checks that pointers must not be used as the type of const params. // Checks that pointers must not be used as the type of const params.
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
const A: u32 = 3; const A: u32 = 3;

View file

@ -1,6 +1,6 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Const<const P: *const u32>; //~ ERROR: using raw pointers as const generic parameters struct Const<const P: *const u32>; //~ ERROR: using raw pointers as const generic parameters

View file

@ -5,7 +5,7 @@ LL | struct ConstString<const T: &'static str>;
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `&'static [u8]` is forbidden as the type of a const generic parameter error: `&'static [u8]` is forbidden as the type of a const generic parameter
--> $DIR/slice-const-param-mismatch.rs:9:28 --> $DIR/slice-const-param-mismatch.rs:9:28
@ -14,7 +14,7 @@ LL | struct ConstBytes<const T: &'static [u8]>;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -1,6 +1,6 @@
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]

View file

@ -1,6 +1,6 @@
// run-pass // run-pass
#![feature(const_param_types)] #![feature(adt_const_params)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
pub fn function_with_str<const STRING: &'static str>() -> &'static str { pub fn function_with_str<const STRING: &'static str>() -> &'static str {

View file

@ -5,7 +5,7 @@ LL | struct _Range<const R: std::ops::Range<usize>>;
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `RangeFrom<usize>` is forbidden as the type of a const generic parameter error: `RangeFrom<usize>` is forbidden as the type of a const generic parameter
--> $DIR/const-generics-range.rs:12:28 --> $DIR/const-generics-range.rs:12:28
@ -14,7 +14,7 @@ LL | struct _RangeFrom<const R: std::ops::RangeFrom<usize>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `RangeFull` is forbidden as the type of a const generic parameter error: `RangeFull` is forbidden as the type of a const generic parameter
--> $DIR/const-generics-range.rs:17:28 --> $DIR/const-generics-range.rs:17:28
@ -23,7 +23,7 @@ LL | struct _RangeFull<const R: std::ops::RangeFull>;
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `RangeInclusive<usize>` is forbidden as the type of a const generic parameter error: `RangeInclusive<usize>` is forbidden as the type of a const generic parameter
--> $DIR/const-generics-range.rs:23:33 --> $DIR/const-generics-range.rs:23:33
@ -32,7 +32,7 @@ LL | struct _RangeInclusive<const R: std::ops::RangeInclusive<usize>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `RangeTo<usize>` is forbidden as the type of a const generic parameter error: `RangeTo<usize>` is forbidden as the type of a const generic parameter
--> $DIR/const-generics-range.rs:28:26 --> $DIR/const-generics-range.rs:28:26
@ -41,7 +41,7 @@ LL | struct _RangeTo<const R: std::ops::RangeTo<usize>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `RangeToInclusive<usize>` is forbidden as the type of a const generic parameter error: `RangeToInclusive<usize>` is forbidden as the type of a const generic parameter
--> $DIR/const-generics-range.rs:33:35 --> $DIR/const-generics-range.rs:33:35
@ -50,7 +50,7 @@ LL | struct _RangeToInclusive<const R: std::ops::RangeToInclusive<usize>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 6 previous errors error: aborting due to 6 previous errors

View file

@ -1,6 +1,6 @@
// [full] check-pass // [full] check-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
// `Range` should be usable within const generics: // `Range` should be usable within const generics:

View file

@ -5,7 +5,7 @@ LL | struct Const<const P: &'static ()>;
| ^^^^^^^^^^^ | ^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -1,7 +1,7 @@
// revisions: full min // revisions: full min
//[full] check-pass //[full] check-pass
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Const<const P: &'static ()>; struct Const<const P: &'static ()>;

View file

@ -1,7 +1,7 @@
// run-pass // run-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
use std::mem::MaybeUninit; use std::mem::MaybeUninit;

View file

@ -5,7 +5,7 @@ LL | trait Get<'a, const N: &'static str> {
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: `&'static str` is forbidden as the type of a const generic parameter error: `&'static str` is forbidden as the type of a const generic parameter
--> $DIR/issue-71348.rs:18:25 --> $DIR/issue-71348.rs:18:25
@ -14,7 +14,7 @@ LL | fn ask<'a, const N: &'static str>(&'a self) -> &'a <Self as Get<N>>::Ta
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -1,6 +1,6 @@
// [full] run-pass // [full] run-pass
// revisions: full min // revisions: full min
#![cfg_attr(full, feature(const_param_types))] #![cfg_attr(full, feature(adt_const_params))]
#![cfg_attr(full, allow(incomplete_features))] #![cfg_attr(full, allow(incomplete_features))]
struct Foo { struct Foo {

View file

@ -1,5 +1,5 @@
#![feature(const_param_types)] #![feature(adt_const_params)]
//~^ WARN the feature `const_param_types` is incomplete //~^ WARN the feature `adt_const_params` is incomplete
fn function_with_str<'a, const STRING: &'a str>() {} //~ ERROR E0771 fn function_with_str<'a, const STRING: &'a str>() {} //~ ERROR E0771

View file

@ -1,8 +1,8 @@
warning: the feature `const_param_types` is incomplete and may not be safe to use and/or cause compiler crashes warning: the feature `adt_const_params` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/E0771.rs:1:12 --> $DIR/E0771.rs:1:12
| |
LL | #![feature(const_param_types)] LL | #![feature(adt_const_params)]
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
| |
= note: `#[warn(incomplete_features)]` on by default = note: `#[warn(incomplete_features)]` on by default
= note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information = note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information

View file

@ -1,11 +1,11 @@
error: `&'static str` is forbidden as the type of a const generic parameter error: `&'static str` is forbidden as the type of a const generic parameter
--> $DIR/feature-gate-const_param_types.rs:1:24 --> $DIR/feature-gate-adt_const_params.rs:1:24
| |
LL | struct Foo<const NAME: &'static str>; LL | struct Foo<const NAME: &'static str>;
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
| |
= note: the only supported types are integers, `bool` and `char` = note: the only supported types are integers, `bool` and `char`
= help: more complex types are supported with `#![feature(const_param_types)]` = help: more complex types are supported with `#![feature(adt_const_params)]`
error: aborting due to previous error error: aborting due to previous error

View file

@ -1,6 +1,6 @@
// build-fail // build-fail
// compile-flags: -Z symbol-mangling-version=v0 --crate-name=c // compile-flags: -Z symbol-mangling-version=v0 --crate-name=c
#![feature(const_param_types, rustc_attrs)] #![feature(adt_const_params, rustc_attrs)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
pub struct Str<const S: &'static str>; pub struct Str<const S: &'static str>;

View file

@ -6,7 +6,7 @@
// normalize-stderr-test: "Cs[0-9a-zA-Z]+_4core" -> "Cs$$HASH_4core" // normalize-stderr-test: "Cs[0-9a-zA-Z]+_4core" -> "Cs$$HASH_4core"
// normalize-stderr-test: "core\[[0-9a-f]+\]" -> "core[$$HASH_HEX]" // normalize-stderr-test: "core\[[0-9a-f]+\]" -> "core[$$HASH_HEX]"
#![feature(const_param_types, decl_macro, rustc_attrs)] #![feature(adt_const_params, decl_macro, rustc_attrs)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
pub struct RefByte<const RB: &'static u8>; pub struct RefByte<const RB: &'static u8>;