Rollup merge of #86455 - tlyu:check-where-before-suggesting-unsized, r=estebank
check where-clause for explicit `Sized` before suggesting `?Sized` Fixes #85945. Based on #86454. ``@rustbot`` label +A-diagnostics +A-traits +A-typesystem +D-papercut +T-compiler
This commit is contained in:
commit
ebef3ce25b
5 changed files with 58 additions and 19 deletions
|
|
@ -0,0 +1,8 @@
|
|||
// Regression test for #85945: Don't suggest `?Sized` bound if an explicit
|
||||
// `Sized` bound is already in a `where` clause.
|
||||
fn foo<T>(_: &T) where T: Sized {}
|
||||
fn bar() { foo(""); }
|
||||
//~^ERROR the size for values of type
|
||||
|
||||
pub fn main() {
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
error[E0277]: the size for values of type `str` cannot be known at compilation time
|
||||
--> $DIR/issue-85945-check-where-clause-before-suggesting-unsized.rs:4:16
|
||||
|
|
||||
LL | fn bar() { foo(""); }
|
||||
| --- ^^ doesn't have a size known at compile-time
|
||||
| |
|
||||
| required by a bound introduced by this call
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `str`
|
||||
note: required by a bound in `foo`
|
||||
--> $DIR/issue-85945-check-where-clause-before-suggesting-unsized.rs:3:8
|
||||
|
|
||||
LL | fn foo<T>(_: &T) where T: Sized {}
|
||||
| ^ required by this bound in `foo`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue