-
Notifications
You must be signed in to change notification settings - Fork 12.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Account for suggestions for complete removal of lines
Fix #94192.
- Loading branch information
Showing
3 changed files
with
138 additions
and
0 deletions.
There are no files selected for viewing
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
30 changes: 30 additions & 0 deletions
30
src/test/ui/suggestions/removal-of-multiline-trait-bound-in-where-clause.rs
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 |
---|---|---|
@@ -0,0 +1,30 @@ | ||
struct Wrapper<T>(T); | ||
|
||
fn foo<T>(foo: Wrapper<T>) | ||
//~^ ERROR the size for values of type `T` cannot be known at compilation time | ||
where | ||
T | ||
: | ||
? | ||
Sized | ||
{ | ||
// | ||
} | ||
|
||
fn bar<T>(foo: Wrapper<T>) | ||
//~^ ERROR the size for values of type `T` cannot be known at compilation time | ||
where T: ?Sized | ||
{ | ||
// | ||
} | ||
|
||
fn qux<T>(foo: Wrapper<T>) | ||
//~^ ERROR the size for values of type `T` cannot be known at compilation time | ||
where | ||
T: ?Sized | ||
{ | ||
// | ||
} | ||
|
||
|
||
fn main() {} |
83 changes: 83 additions & 0 deletions
83
src/test/ui/suggestions/removal-of-multiline-trait-bound-in-where-clause.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 |
---|---|---|
@@ -0,0 +1,83 @@ | ||
error[E0277]: the size for values of type `T` cannot be known at compilation time | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:3:16 | ||
| | ||
LL | fn foo<T>(foo: Wrapper<T>) | ||
| - ^^^^^^^^^^ doesn't have a size known at compile-time | ||
| | | ||
| this type parameter needs to be `std::marker::Sized` | ||
| | ||
note: required by a bound in `Wrapper` | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16 | ||
| | ||
LL | struct Wrapper<T>(T); | ||
| ^ required by this bound in `Wrapper` | ||
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>` | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16 | ||
| | ||
LL | struct Wrapper<T>(T); | ||
| ^ - ...if indirection were used here: `Box<T>` | ||
| | | ||
| this could be changed to `T: ?Sized`... | ||
help: consider removing the `?Sized` bound to make the type parameter `Sized` | ||
| | ||
LL - where | ||
LL - T | ||
LL - : | ||
LL - ? | ||
LL - Sized | ||
| | ||
|
||
error[E0277]: the size for values of type `T` cannot be known at compilation time | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:14:16 | ||
| | ||
LL | fn bar<T>(foo: Wrapper<T>) | ||
| - ^^^^^^^^^^ doesn't have a size known at compile-time | ||
| | | ||
| this type parameter needs to be `std::marker::Sized` | ||
| | ||
note: required by a bound in `Wrapper` | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16 | ||
| | ||
LL | struct Wrapper<T>(T); | ||
| ^ required by this bound in `Wrapper` | ||
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>` | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16 | ||
| | ||
LL | struct Wrapper<T>(T); | ||
| ^ - ...if indirection were used here: `Box<T>` | ||
| | | ||
| this could be changed to `T: ?Sized`... | ||
help: consider removing the `?Sized` bound to make the type parameter `Sized` | ||
| | ||
LL - where T: ?Sized | ||
| | ||
|
||
error[E0277]: the size for values of type `T` cannot be known at compilation time | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:21:16 | ||
| | ||
LL | fn qux<T>(foo: Wrapper<T>) | ||
| - ^^^^^^^^^^ doesn't have a size known at compile-time | ||
| | | ||
| this type parameter needs to be `std::marker::Sized` | ||
| | ||
note: required by a bound in `Wrapper` | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16 | ||
| | ||
LL | struct Wrapper<T>(T); | ||
| ^ required by this bound in `Wrapper` | ||
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>` | ||
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16 | ||
| | ||
LL | struct Wrapper<T>(T); | ||
| ^ - ...if indirection were used here: `Box<T>` | ||
| | | ||
| this could be changed to `T: ?Sized`... | ||
help: consider removing the `?Sized` bound to make the type parameter `Sized` | ||
| | ||
LL - where | ||
LL - T: ?Sized | ||
| | ||
|
||
error: aborting due to 3 previous errors | ||
|
||
For more information about this error, try `rustc --explain E0277`. |