//@ known-bug: unknown
// Ensure that we print unsatisfied always-const trait bounds as `const Trait` in diagnostics.
//@ compile-flags: -Znext-solver

#![feature(const_trait_impl, effects, generic_const_exprs)]
#![allow(incomplete_features)]

fn require<T: const Trait>() {}

#[const_trait]
trait Trait {
    fn make() -> u32;
}

struct Ty;

impl Trait for Ty {
    fn make() -> u32 { 0 }
}

fn main() {
    require::<Ty>();
}

struct Container<const N: u32>;

// FIXME(effects): Somehow emit `the trait bound `T: const Trait` is not satisfied` here instead
//                 and suggest changing `Trait` to `const Trait`.
fn accept0<T: Trait>(_: Container<{ T::make() }>) {}

// FIXME(effects): Instead of suggesting `+ const Trait`, suggest
//                 changing `~const Trait` to `const Trait`.
const fn accept1<T: ~const Trait>(_: Container<{ T::make() }>) {}
