summaryrefslogtreecommitdiffstats
path: root/tests/ui/impl-trait/in-trait/wf-bounds.rs
blob: ee873f94b264e90ff51d32dd7a32d5332c5d1888 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// issue #101663

#![feature(return_position_impl_trait_in_trait)]
#![allow(incomplete_features)]

use std::fmt::Display;

trait Wf<T> {
    type Output;
}

struct NeedsDisplay<T: Display>(T);

trait Uwu {
    fn nya() -> impl Wf<Vec<[u8]>>;
    //~^ ERROR the size for values of type `[u8]` cannot be known at compilation time

    fn nya2() -> impl Wf<[u8]>;
    //~^ ERROR the size for values of type `[u8]` cannot be known at compilation time

    fn nya3() -> impl Wf<(), Output = impl Wf<Vec<[u8]>>>;
    //~^ ERROR the size for values of type `[u8]` cannot be known at compilation time

    fn nya4<T>() -> impl Wf<NeedsDisplay<T>>;
    //~^ ERROR `T` doesn't implement `std::fmt::Display`
}

fn main() {}