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)
};
```
|
||
|---|---|---|
| .. | ||
| errors | ||
| infer | ||
| traits | ||
| lib.rs | ||