2022-05-17 00:50:16 -05:00
|
|
|
// revisions: full gce
|
2022-10-18 09:31:56 -05:00
|
|
|
// compile-flags: -Zdeduplicate-diagnostics=yes
|
2022-05-17 00:50:16 -05:00
|
|
|
|
|
|
|
#![cfg_attr(gce, feature(generic_const_exprs))]
|
|
|
|
#![allow(incomplete_features)]
|
|
|
|
|
|
|
|
use std::mem::size_of;
|
|
|
|
|
|
|
|
fn foo<T>() {
|
|
|
|
[0; size_of::<*mut T>()]; // lint on stable, error with `generic_const_exprs`
|
|
|
|
//[gce]~^ ERROR unconstrained
|
|
|
|
//[full]~^^ WARNING cannot use constants
|
|
|
|
//[full]~| WARNING this was previously accepted
|
|
|
|
let _: [u8; size_of::<*mut T>()]; // error on stable, error with gce
|
|
|
|
//[full]~^ ERROR generic parameters may not be used
|
|
|
|
//[gce]~^^ ERROR unconstrained generic
|
|
|
|
[0; if false { size_of::<T>() } else { 3 }]; // lint on stable, error with gce
|
|
|
|
//[gce]~^ ERROR overly complex
|
|
|
|
//[full]~^^ WARNING cannot use constants
|
|
|
|
//[full]~| WARNING this was previously accepted
|
|
|
|
let _: [u8; if true { size_of::<T>() } else { 3 }]; // error on stable, error with gce
|
|
|
|
//[full]~^ ERROR generic parameters may not be used
|
|
|
|
//[gce]~^^ ERROR overly complex
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|