about summary refs log tree commit diff
path: root/tests/ui/consts/const-blocks/fn-call-in-const.rs
blob: a3e24ddae7d1e38b08a0c29f71264faa77dd4d7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//@ run-pass

#![allow(unused)]

// Some type that is not copyable.
struct Bar;

const fn type_no_copy() -> Option<Bar> {
    None
}

const fn type_copy() -> u32 {
    3
}

const _: [u32; 2] = [type_copy(); 2];

// This is allowed because all promotion contexts use the explicit rules for promotability when
// inside an explicit const context.
const _: [Option<Bar>; 2] = [const { type_no_copy() }; 2];

fn main() {}