mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-27 19:16:36 +00:00
When encountering the following
```rust
// run-rustfix
trait Trait {}
struct Struct;
impl Trait for Struct {}
fn foo() -> Box<dyn Trait> {
Box::new(Struct)
}
fn bar() -> impl Trait {
Struct
}
fn main() {
let _ = if true {
Struct
} else {
foo() //~ ERROR E0308
};
let _ = if true {
foo()
} else {
Struct //~ ERROR E0308
};
let _ = if true {
Struct
} else {
bar() // impl Trait
};
let _ = if true {
bar() // impl Trait
} else {
Struct
};
}
```
suggest boxing both arms
```rust
let _ = if true {
Box::new(Struct) as Box<dyn Trait>
} else {
Box::new(bar())
};
let _ = if true {
Box::new(bar()) as Box<dyn Trait>
} else {
Box::new(Struct)
};
```