Add test for suggestion to borrow unsized function parameters

This is a regression test for #82820.

This test case is included in more general tests, but I think the error
regressed because there were a bunch of other diagnostic changes in the
test that obscured this regression.

Hopefully, having a test specific to the suggestion, and running rustfix
for the test, will prevent this error from regressing in the future.
This commit is contained in:
Camelid 2021-04-29 16:22:31 -07:00
parent 18587b14d1
commit a7500e52ef
3 changed files with 88 additions and 0 deletions

View file

@ -0,0 +1,23 @@
// run-rustfix
#![allow(dead_code, unused_variables)]
fn foo1(bar: &str) {}
//~^ ERROR the size for values of type `str` cannot be known at compilation time
//~| HELP the trait `Sized` is not implemented for `str`
//~| HELP unsized fn params are gated as an unstable feature
//~| HELP function arguments must have a statically known size, borrowed types always have a known size
fn foo2(_bar: &str) {}
//~^ ERROR the size for values of type `str` cannot be known at compilation time
//~| HELP the trait `Sized` is not implemented for `str`
//~| HELP unsized fn params are gated as an unstable feature
//~| HELP function arguments must have a statically known size, borrowed types always have a known size
fn foo3(_: &str) {}
//~^ ERROR the size for values of type `str` cannot be known at compilation time
//~| HELP the trait `Sized` is not implemented for `str`
//~| HELP unsized fn params are gated as an unstable feature
//~| HELP function arguments must have a statically known size, borrowed types always have a known size
fn main() {}

View file

@ -0,0 +1,23 @@
// run-rustfix
#![allow(dead_code, unused_variables)]
fn foo1(bar: str) {}
//~^ ERROR the size for values of type `str` cannot be known at compilation time
//~| HELP the trait `Sized` is not implemented for `str`
//~| HELP unsized fn params are gated as an unstable feature
//~| HELP function arguments must have a statically known size, borrowed types always have a known size
fn foo2(_bar: str) {}
//~^ ERROR the size for values of type `str` cannot be known at compilation time
//~| HELP the trait `Sized` is not implemented for `str`
//~| HELP unsized fn params are gated as an unstable feature
//~| HELP function arguments must have a statically known size, borrowed types always have a known size
fn foo3(_: str) {}
//~^ ERROR the size for values of type `str` cannot be known at compilation time
//~| HELP the trait `Sized` is not implemented for `str`
//~| HELP unsized fn params are gated as an unstable feature
//~| HELP function arguments must have a statically known size, borrowed types always have a known size
fn main() {}

View file

@ -0,0 +1,42 @@
error[E0277]: the size for values of type `str` cannot be known at compilation time
--> $DIR/unsized-function-parameter.rs:5:9
|
LL | fn foo1(bar: str) {}
| ^^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `str`
= help: unsized fn params are gated as an unstable feature
help: function arguments must have a statically known size, borrowed types always have a known size
|
LL | fn foo1(bar: &str) {}
| ^
error[E0277]: the size for values of type `str` cannot be known at compilation time
--> $DIR/unsized-function-parameter.rs:11:9
|
LL | fn foo2(_bar: str) {}
| ^^^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `str`
= help: unsized fn params are gated as an unstable feature
help: function arguments must have a statically known size, borrowed types always have a known size
|
LL | fn foo2(_bar: &str) {}
| ^
error[E0277]: the size for values of type `str` cannot be known at compilation time
--> $DIR/unsized-function-parameter.rs:17:9
|
LL | fn foo3(_: str) {}
| ^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `str`
= help: unsized fn params are gated as an unstable feature
help: function arguments must have a statically known size, borrowed types always have a known size
|
LL | fn foo3(_: &str) {}
| ^
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0277`.