diff options
Diffstat (limited to 'src/test/ui/feature-gates/feature-gate-min_const_fn.rs')
-rw-r--r-- | src/test/ui/feature-gates/feature-gate-min_const_fn.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/feature-gates/feature-gate-min_const_fn.rs b/src/test/ui/feature-gates/feature-gate-min_const_fn.rs new file mode 100644 index 000000000..8f9b43300 --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-min_const_fn.rs @@ -0,0 +1,35 @@ +// Test use of min_const_fn without feature gate. + +const fn foo() -> usize { 0 } // stabilized + +trait Foo { + const fn foo() -> u32; //~ ERROR functions in traits cannot be declared const + const fn bar() -> u32 { 0 } //~ ERROR functions in traits cannot be declared const +} + +impl Foo for u32 { + const fn foo() -> u32 { 0 } //~ ERROR functions in traits cannot be declared const +} + +trait Bar {} + +impl dyn Bar { + const fn baz() -> u32 { 0 } // stabilized +} + +static FOO: usize = foo(); +const BAR: usize = foo(); + +macro_rules! constant { + ($n:ident: $t:ty = $v:expr) => { + const $n: $t = $v; + } +} + +constant! { + BAZ: usize = foo() +} + +fn main() { + let x: [usize; foo()] = []; +} |