Skip to content

Commit b4bbe78

Browse files
committed
Make impl Trait suggestion in E0746 MachineApplicable
1 parent ea7e885 commit b4bbe78

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

src/librustc/traits/error_reporting.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1840,7 +1840,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
18401840
last_ty, trait_obj,
18411841
),
18421842
format!("impl {}", trait_obj),
1843-
Applicability::MaybeIncorrect,
1843+
Applicability::MachineApplicable,
18441844
);
18451845
err.note(impl_trait_msg);
18461846
} else {

src/test/ui/error-codes/E0746.fixed

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// run-rustfix
2+
#![allow(dead_code)]
3+
struct Struct;
4+
trait Trait {}
5+
impl Trait for Struct {}
6+
impl Trait for u32 {}
7+
8+
fn foo() -> impl Trait { Struct }
9+
//~^ ERROR E0746
10+
11+
fn bar() -> impl Trait { //~ ERROR E0746
12+
if true {
13+
return 0;
14+
}
15+
42
16+
}
17+
18+
fn main() {}

src/test/ui/error-codes/E0746.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// run-rustfix
2+
#![allow(dead_code)]
13
struct Struct;
24
trait Trait {}
35
impl Trait for Struct {}

src/test/ui/error-codes/E0746.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0746]: return type cannot have a bare trait because it must be `Sized`
2-
--> $DIR/E0746.rs:6:13
2+
--> $DIR/E0746.rs:8:13
33
|
44
LL | fn foo() -> dyn Trait { Struct }
55
| ^^^^^^^^^ doesn't have a size known at compile-time
@@ -11,7 +11,7 @@ LL | fn foo() -> impl Trait { Struct }
1111
| ^^^^^^^^^^
1212

1313
error[E0746]: return type cannot have a bare trait because it must be `Sized`
14-
--> $DIR/E0746.rs:9:13
14+
--> $DIR/E0746.rs:11:13
1515
|
1616
LL | fn bar() -> dyn Trait {
1717
| ^^^^^^^^^ doesn't have a size known at compile-time

0 commit comments

Comments
 (0)