summaryrefslogtreecommitdiffstats
path: root/tests/ui/error-codes/E0746.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/error-codes/E0746.stderr')
-rw-r--r--tests/ui/error-codes/E0746.stderr22
1 files changed, 16 insertions, 6 deletions
diff --git a/tests/ui/error-codes/E0746.stderr b/tests/ui/error-codes/E0746.stderr
index 2153b59ad..9fe90ab7b 100644
--- a/tests/ui/error-codes/E0746.stderr
+++ b/tests/ui/error-codes/E0746.stderr
@@ -4,11 +4,14 @@ error[E0746]: return type cannot have an unboxed trait object
LL | fn foo() -> dyn Trait { Struct }
| ^^^^^^^^^ doesn't have a size known at compile-time
|
- = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
-help: use `impl Trait` as the return type, as all return paths are of type `Struct`, which implements `Trait`
+help: return an `impl Trait` instead of a `dyn Trait`, if all returned values are the same type
|
LL | fn foo() -> impl Trait { Struct }
- | ~~~~~~~~~~
+ | ~~~~
+help: box the return type, and wrap all of the returned values in `Box::new`
+ |
+LL | fn foo() -> Box<dyn Trait> { Box::new(Struct) }
+ | ++++ + +++++++++ +
error[E0746]: return type cannot have an unboxed trait object
--> $DIR/E0746.rs:11:13
@@ -16,11 +19,18 @@ error[E0746]: return type cannot have an unboxed trait object
LL | fn bar() -> dyn Trait {
| ^^^^^^^^^ doesn't have a size known at compile-time
|
- = note: for information on `impl Trait`, see <https://doc.rust-lang.org/book/ch10-02-traits.html#returning-types-that-implement-traits>
-help: use `impl Trait` as the return type, as all return paths are of type `{integer}`, which implements `Trait`
+help: return an `impl Trait` instead of a `dyn Trait`, if all returned values are the same type
|
LL | fn bar() -> impl Trait {
- | ~~~~~~~~~~
+ | ~~~~
+help: box the return type, and wrap all of the returned values in `Box::new`
+ |
+LL ~ fn bar() -> Box<dyn Trait> {
+LL | if true {
+LL ~ return Box::new(0);
+LL | }
+LL ~ Box::new(42)
+ |
error: aborting due to 2 previous errors