//@ edition:2015
#![feature(adt_const_params)]
#![allow(incomplete_features)]

use std::marker::ConstParamTy;

#[derive(PartialEq, Eq, ConstParamTy)]
enum CompileFlag {
    A,
    B,
}

pub fn test_1<const CF: CompileFlag>() {}
pub fn test_2<T, const CF: CompileFlag>(x: T) {}
pub struct Example<const CF: CompileFlag, T = u32> {
    x: T,
}

impl<const CF: CompileFlag, T> Example<CF, T> {
    const ASSOC_FLAG: CompileFlag = CompileFlag::A;
}

pub fn main() {
    test_1::<CompileFlag::A>();
    //~^ ERROR: expected type, found variant
    //~| ERROR: unresolved item provided when a constant was expected

    test_2::<_, CompileFlag::A>(0);
    //~^ ERROR: expected type, found variant
    //~| ERROR: unresolved item provided when a constant was expected

    let _: Example<CompileFlag::A, _> = Example { x: 0 };
    //~^ ERROR: expected type, found variant
    //~| ERROR: unresolved item provided when a constant was expected

    let _: Example<Example::ASSOC_FLAG, _> = Example { x: 0 };
    //~^ ERROR: type provided when a constant was expected
}
