summary refs log tree commit diff
path: root/src/test/ui/rustc-args-required-const.rs
blob: 87f979f1b2789230c7b04e95a503bced4a62a5e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#![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
}