#![feature(rustc_attrs, const_fn)] | |
#[rustc_args_required_const(0)] | |
fn foo(_a: i32) { | |
} | |
#[rustc_args_required_const(1)] | |
fn bar(_a: i32, _b: i32) { | |
} | |
const A: i32 = 3; | |
const fn baz() -> i32 { | |
3 | |
} | |
fn main() { | |
foo(2); | |
foo(2 + 3); | |
const BAZ: i32 = baz(); | |
foo(BAZ); | |
let a = 4; | |
foo(A); | |
foo(a); //~ ERROR: argument 1 is required to be a constant | |
bar(a, 3); | |
bar(a, a); //~ ERROR: argument 2 is required to be a constant | |
} |