2022-10-09 08:56:40 -05:00
|
|
|
#![feature(inline_const)]
|
|
|
|
|
|
|
|
struct S<'a>(&'a u8);
|
|
|
|
fn foo() {}
|
|
|
|
|
|
|
|
// Paren generic args in AnonConst
|
|
|
|
fn a() -> [u8; foo::()] {
|
|
|
|
//~^ ERROR parenthesized type parameters may only be used with a `Fn` trait
|
|
|
|
//~| ERROR mismatched types
|
|
|
|
panic!()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Paren generic args in ConstGeneric
|
|
|
|
fn b<const C: u8()>() {}
|
|
|
|
//~^ ERROR parenthesized type parameters may only be used with a `Fn` trait
|
|
|
|
|
|
|
|
// Paren generic args in AnonymousReportError
|
|
|
|
fn c<T = u8()>() {}
|
|
|
|
//~^ ERROR parenthesized type parameters may only be used with a `Fn` trait
|
|
|
|
//~| ERROR defaults for type parameters are only allowed in
|
|
|
|
//~| WARN this was previously accepted
|
|
|
|
|
|
|
|
// Elided lifetime in path in ConstGeneric
|
|
|
|
fn d<const C: S>() {}
|
|
|
|
//~^ ERROR missing lifetime specifier
|
2023-02-03 17:21:56 -06:00
|
|
|
//~| ERROR `S<'_>` is forbidden as the type of a const generic parameter
|
2022-10-09 08:56:40 -05:00
|
|
|
|
2023-03-16 10:17:56 -05:00
|
|
|
trait Foo<'a> {}
|
|
|
|
struct Bar<const N: &'a (dyn for<'a> Foo<'a>)>;
|
|
|
|
//~^ ERROR use of non-static lifetime `'a` in const generic
|
|
|
|
//~| ERROR `&dyn for<'a> Foo<'a>` is forbidden as the type of a const generic parameter
|
|
|
|
|
2022-10-09 08:56:40 -05:00
|
|
|
fn main() {}
|