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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
//@ edition:2021
fn foo(b: bool) -> impl std::fmt::Debug {
if b {
return vec![42]
}
[].into_iter().collect()
}
fn bar(b: bool) -> impl std::fmt::Debug {
if b {
return [].into_iter().collect()
}
vec![42]
}
fn bak(b: bool) -> impl std::fmt::Debug {
if b {
return std::iter::empty().collect()
}
vec![42]
}
fn baa(b: bool) -> impl std::fmt::Debug {
if b {
return [42].into_iter().collect()
}
vec![]
}
fn muh() -> Result<(), impl std::fmt::Debug> {
Err("whoops")?;
Ok(())
//~^ ERROR type annotations needed
}
fn muh2() -> Result<(), impl std::fmt::Debug> {
return Err(From::from("foo"));
//~^ ERROR cannot call associated function on trait
Ok(())
}
fn muh3() -> Result<(), impl std::fmt::Debug> {
Err(From::from("foo"))
//~^ ERROR cannot call associated function on trait
}
fn main() {}
|