-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
473c88d
commit 8ad5ea7
Showing
3 changed files
with
151 additions
and
6 deletions.
There are no files selected for viewing
52 changes: 49 additions & 3 deletions
52
tests/ui/impl-trait/in-trait/signature-mismatch.current.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,61 @@ | ||
error: return type captures more lifetimes than trait definition | ||
--> $DIR/signature-mismatch.rs:17:47 | ||
--> $DIR/signature-mismatch.rs:36:47 | ||
| | ||
LL | fn async_fn<'a>(&self, buff: &'a [u8]) -> impl Future<Output = Vec<u8>> + 'a { | ||
| -- this lifetime was captured ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| | ||
note: hidden type must only reference lifetimes captured by this impl trait | ||
--> $DIR/signature-mismatch.rs:11:40 | ||
--> $DIR/signature-mismatch.rs:17:40 | ||
| | ||
LL | fn async_fn(&self, buff: &[u8]) -> impl Future<Output = Vec<u8>>; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
= note: hidden type inferred to be `impl Future<Output = Vec<u8>> + 'a` | ||
|
||
error: aborting due to previous error | ||
error: return type captures more lifetimes than trait definition | ||
--> $DIR/signature-mismatch.rs:41:57 | ||
| | ||
LL | fn async_fn_early<'a: 'a>(&self, buff: &'a [u8]) -> impl Future<Output = Vec<u8>> + 'a { | ||
| -- this lifetime was captured ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| | ||
note: hidden type must only reference lifetimes captured by this impl trait | ||
--> $DIR/signature-mismatch.rs:18:57 | ||
| | ||
LL | fn async_fn_early<'a: 'a>(&self, buff: &'a [u8]) -> impl Future<Output = Vec<u8>>; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
= note: hidden type inferred to be `impl Future<Output = Vec<u8>> + 'a` | ||
|
||
error: return type captures more lifetimes than trait definition | ||
--> $DIR/signature-mismatch.rs:49:10 | ||
| | ||
LL | fn async_fn_multiple<'a, 'b>( | ||
| -- this lifetime was captured | ||
... | ||
LL | ) -> impl Future<Output = Vec<u8>> + Captures2<'a, 'b> { | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| | ||
note: hidden type must only reference lifetimes captured by this impl trait | ||
--> $DIR/signature-mismatch.rs:20:12 | ||
| | ||
LL | -> impl Future<Output = Vec<u8>> + Captures<'a>; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
= note: hidden type inferred to be `impl Future<Output = Vec<u8>> + Captures2<'a, 'b>` | ||
|
||
error[E0309]: the parameter type `T` may not live long enough | ||
--> $DIR/signature-mismatch.rs:58:10 | ||
| | ||
LL | ) -> impl Future<Output = Vec<u8>> { | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `impl Future<Output = Vec<u8>>` will meet its required lifetime bounds... | ||
| | ||
note: ...that is required by this bound | ||
--> $DIR/signature-mismatch.rs:25:42 | ||
| | ||
LL | ) -> impl Future<Output = Vec<u8>> + 'a; | ||
| ^^ | ||
help: consider adding an explicit lifetime bound... | ||
| | ||
LL | fn async_fn_reduce_outlive<'a, 'b, T: 'a>( | ||
| ++++ | ||
|
||
error: aborting due to 4 previous errors | ||
|
||
For more information about this error, try `rustc --explain E0309`. |
52 changes: 49 additions & 3 deletions
52
tests/ui/impl-trait/in-trait/signature-mismatch.next.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,61 @@ | ||
error: return type captures more lifetimes than trait definition | ||
--> $DIR/signature-mismatch.rs:17:47 | ||
--> $DIR/signature-mismatch.rs:36:47 | ||
| | ||
LL | fn async_fn<'a>(&self, buff: &'a [u8]) -> impl Future<Output = Vec<u8>> + 'a { | ||
| -- this lifetime was captured ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| | ||
note: hidden type must only reference lifetimes captured by this impl trait | ||
--> $DIR/signature-mismatch.rs:11:40 | ||
--> $DIR/signature-mismatch.rs:17:40 | ||
| | ||
LL | fn async_fn(&self, buff: &[u8]) -> impl Future<Output = Vec<u8>>; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
= note: hidden type inferred to be `impl Future<Output = Vec<u8>> + 'a` | ||
|
||
error: aborting due to previous error | ||
error: return type captures more lifetimes than trait definition | ||
--> $DIR/signature-mismatch.rs:41:57 | ||
| | ||
LL | fn async_fn_early<'a: 'a>(&self, buff: &'a [u8]) -> impl Future<Output = Vec<u8>> + 'a { | ||
| -- this lifetime was captured ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| | ||
note: hidden type must only reference lifetimes captured by this impl trait | ||
--> $DIR/signature-mismatch.rs:18:57 | ||
| | ||
LL | fn async_fn_early<'a: 'a>(&self, buff: &'a [u8]) -> impl Future<Output = Vec<u8>>; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
= note: hidden type inferred to be `impl Future<Output = Vec<u8>> + 'a` | ||
|
||
error: return type captures more lifetimes than trait definition | ||
--> $DIR/signature-mismatch.rs:49:10 | ||
| | ||
LL | fn async_fn_multiple<'a, 'b>( | ||
| -- this lifetime was captured | ||
... | ||
LL | ) -> impl Future<Output = Vec<u8>> + Captures2<'a, 'b> { | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| | ||
note: hidden type must only reference lifetimes captured by this impl trait | ||
--> $DIR/signature-mismatch.rs:20:12 | ||
| | ||
LL | -> impl Future<Output = Vec<u8>> + Captures<'a>; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
= note: hidden type inferred to be `impl Future<Output = Vec<u8>> + Captures2<'a, 'b>` | ||
|
||
error[E0309]: the parameter type `T` may not live long enough | ||
--> $DIR/signature-mismatch.rs:58:10 | ||
| | ||
LL | ) -> impl Future<Output = Vec<u8>> { | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `impl Future<Output = Vec<u8>>` will meet its required lifetime bounds... | ||
| | ||
note: ...that is required by this bound | ||
--> $DIR/signature-mismatch.rs:25:42 | ||
| | ||
LL | ) -> impl Future<Output = Vec<u8>> + 'a; | ||
| ^^ | ||
help: consider adding an explicit lifetime bound... | ||
| | ||
LL | fn async_fn_reduce_outlive<'a, 'b, T: 'a>( | ||
| ++++ | ||
|
||
error: aborting due to 4 previous errors | ||
|
||
For more information about this error, try `rustc --explain E0309`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters