2020-10-22 08:32:41 +00:00
|
|
|
// check-pass
|
|
|
|
#![allow(dead_code)]
|
|
|
|
|
|
|
|
fn foo<T>() {
|
|
|
|
[0; std::mem::size_of::<*mut T>()];
|
|
|
|
//~^ WARN cannot use constants which depend on generic parameters in types
|
|
|
|
//~| WARN this was previously accepted by the compiler but is being phased out
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Foo<T>(T);
|
|
|
|
|
|
|
|
impl<T> Foo<T> {
|
|
|
|
const ASSOC: usize = 4;
|
|
|
|
|
|
|
|
fn test() {
|
2020-10-23 20:08:21 +00:00
|
|
|
let _ = [0; Self::ASSOC];
|
|
|
|
//~^ WARN cannot use constants which depend on generic parameters in types
|
|
|
|
//~| WARN this was previously accepted by the compiler but is being phased out
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Bar<const N: usize>;
|
|
|
|
|
|
|
|
impl<const N: usize> Bar<N> {
|
|
|
|
const ASSOC: usize = 4;
|
|
|
|
|
|
|
|
fn test() {
|
|
|
|
let _ = [0; Self::ASSOC];
|
2020-10-22 08:32:41 +00:00
|
|
|
//~^ WARN cannot use constants which depend on generic parameters in types
|
|
|
|
//~| WARN this was previously accepted by the compiler but is being phased out
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|