#![feature(const_trait_impl, effects, min_specialization, rustc_attrs)] //~ WARN the feature `effects` is incomplete

#[rustc_specialization_trait]
#[const_trait]
pub trait Sup {}

impl const Sup for () {}

#[const_trait]
pub trait A {
    fn a() -> u32;
}

#[const_trait]
pub trait Spec {}

impl<T: ~const Spec> const A for T {
    default fn a() -> u32 {
        2
    }
}

impl<T: Spec + Sup> A for T {
//~^ ERROR: cannot specialize
//~| ERROR: cannot specialize
//~| ERROR: cannot specialize
//FIXME(effects) ~| ERROR: missing `~const` qualifier
    fn a() -> u32 {
        3
    }
}

fn main() {}
