about summary refs log tree commit diff
path: root/tests/ui/rfcs/rfc-2632-const-trait-impl/super-traits-fail-2.rs
blob: 120399f0c787fa340d491a08ede3b0dd023003aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#![feature(const_trait_impl, effects)]
// revisions: yy yn ny nn

#[cfg_attr(any(yy, yn), const_trait)]
trait Foo {
    fn a(&self);
}

#[cfg_attr(any(yy, ny), const_trait)]
trait Bar: ~const Foo {}
//[ny,nn]~^ ERROR: `~const` can only be applied to `#[const_trait]`
//[ny,nn]~| ERROR: `~const` can only be applied to `#[const_trait]`
//[ny,nn]~| ERROR: `~const` can only be applied to `#[const_trait]`
//[yn,nn]~^^^^ ERROR: `~const` is not allowed here

const fn foo<T: Bar>(x: &T) {
    x.a();
    //[yy,yn]~^ ERROR mismatched types
    // FIXME(effects) diagnostic
}

fn main() {}