91b9ffeab0
In `report_fullfillment_errors` push back `T: Sized`, `T: WellFormed` and coercion errors to the end of the list. The pre-existing deduplication logic eliminates redundant errors better that way, keeping the resulting output with fewer errors than before, while also having more detail.
49 lines
901 B
Rust
49 lines
901 B
Rust
// 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() {}
|