check where clause before suggesting unsized

This commit is contained in:
Taylor Yu 2021-06-18 14:13:12 -05:00
parent b053550847
commit c9fcbda389
3 changed files with 45 additions and 0 deletions

View file

@ -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() {
}

View file

@ -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`.