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:
parent
18587b14d1
commit
a7500e52ef
3 changed files with 88 additions and 0 deletions
23
src/test/ui/suggestions/unsized-function-parameter.fixed
Normal file
23
src/test/ui/suggestions/unsized-function-parameter.fixed
Normal 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() {}
|
23
src/test/ui/suggestions/unsized-function-parameter.rs
Normal file
23
src/test/ui/suggestions/unsized-function-parameter.rs
Normal 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() {}
|
42
src/test/ui/suggestions/unsized-function-parameter.stderr
Normal file
42
src/test/ui/suggestions/unsized-function-parameter.stderr
Normal 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`.
|
Loading…
Add table
Reference in a new issue