Skip to content

Commit

Permalink
Rollup merge of rust-lang#84646 - JohnTitor:add-some-bad-placeholder-…
Browse files Browse the repository at this point in the history
…tests, r=Dylan-DPC

Add some regression tests related to rust-lang#82494

Closes rust-lang#75883, closes rust-lang#80779
r? `@estebank`
  • Loading branch information
m-ou-se committed Apr 28, 2021
2 parents a810244 + de92dfb commit 70fe449
Show file tree
Hide file tree
Showing 4 changed files with 108 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/test/ui/typeck/issue-75883.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Regression test for #75883.

pub struct UI {}

impl UI {
pub fn run() -> Result<_> {
//~^ ERROR: this enum takes 2 type arguments but only 1 type argument was supplied
//~| ERROR: the type placeholder `_` is not allowed within types on item signatures
let mut ui = UI {};
ui.interact();

unimplemented!();
}

pub fn interact(&mut self) -> Result<_> {
//~^ ERROR: this enum takes 2 type arguments but only 1 type argument was supplied
//~| ERROR: the type placeholder `_` is not allowed within types on item signatures
unimplemented!();
}
}

fn main() {}
52 changes: 52 additions & 0 deletions src/test/ui/typeck/issue-75883.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
error[E0107]: this enum takes 2 type arguments but only 1 type argument was supplied
--> $DIR/issue-75883.rs:6:21
|
LL | pub fn run() -> Result<_> {
| ^^^^^^ - supplied 1 type argument
| |
| expected 2 type arguments
|
note: enum defined here, with 2 type parameters: `T`, `E`
--> $SRC_DIR/core/src/result.rs:LL:COL
|
LL | pub enum Result<T, E> {
| ^^^^^^ - -
help: add missing type argument
|
LL | pub fn run() -> Result<_, E> {
| ^^^

error[E0107]: this enum takes 2 type arguments but only 1 type argument was supplied
--> $DIR/issue-75883.rs:15:35
|
LL | pub fn interact(&mut self) -> Result<_> {
| ^^^^^^ - supplied 1 type argument
| |
| expected 2 type arguments
|
note: enum defined here, with 2 type parameters: `T`, `E`
--> $SRC_DIR/core/src/result.rs:LL:COL
|
LL | pub enum Result<T, E> {
| ^^^^^^ - -
help: add missing type argument
|
LL | pub fn interact(&mut self) -> Result<_, E> {
| ^^^

error[E0121]: the type placeholder `_` is not allowed within types on item signatures
--> $DIR/issue-75883.rs:15:42
|
LL | pub fn interact(&mut self) -> Result<_> {
| ^ not allowed in type signatures

error[E0121]: the type placeholder `_` is not allowed within types on item signatures
--> $DIR/issue-75883.rs:6:28
|
LL | pub fn run() -> Result<_> {
| ^ not allowed in type signatures

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0107, E0121.
For more information about an error, try `rustc --explain E0107`.
13 changes: 13 additions & 0 deletions src/test/ui/typeck/issue-80779.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Regression test for #80779.

pub struct T<'a>(&'a str);

pub fn f<'a>(val: T<'a>) -> _ {
//~^ ERROR: the type placeholder `_` is not allowed within types on item signatures
g(val)
}

pub fn g(_: T<'static>) -> _ {}
//~^ ERROR: the type placeholder `_` is not allowed within types on item signatures

fn main() {}
21 changes: 21 additions & 0 deletions src/test/ui/typeck/issue-80779.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
error[E0121]: the type placeholder `_` is not allowed within types on item signatures
--> $DIR/issue-80779.rs:10:28
|
LL | pub fn g(_: T<'static>) -> _ {}
| ^
| |
| not allowed in type signatures
| help: replace with the correct return type: `()`

error[E0121]: the type placeholder `_` is not allowed within types on item signatures
--> $DIR/issue-80779.rs:5:29
|
LL | pub fn f<'a>(val: T<'a>) -> _ {
| ^
| |
| not allowed in type signatures
| help: replace with the correct return type: `()`

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0121`.

0 comments on commit 70fe449

Please sign in to comment.