about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2021-04-28 18:23:44 +0900
committerYuki Okushi <jtitor@2k36.org>2021-04-28 18:23:44 +0900
commiteb753e8ea65deeaf1ed27d3b82e49bbfac6798af (patch)
treeaee30e8b37327d5095e012572ca5e97147339620 /src
parent855c2d130fb70da1643cf8f696c7aad7537aef34 (diff)
downloadrust-eb753e8ea65deeaf1ed27d3b82e49bbfac6798af.tar.gz
rust-eb753e8ea65deeaf1ed27d3b82e49bbfac6798af.zip
Add a regression test for #75883
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/typeck/issue-75883.rs22
-rw-r--r--src/test/ui/typeck/issue-75883.stderr52
2 files changed, 74 insertions, 0 deletions
diff --git a/src/test/ui/typeck/issue-75883.rs b/src/test/ui/typeck/issue-75883.rs
new file mode 100644
index 00000000000..3a59ca049ba
--- /dev/null
+++ b/src/test/ui/typeck/issue-75883.rs
@@ -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() {}
diff --git a/src/test/ui/typeck/issue-75883.stderr b/src/test/ui/typeck/issue-75883.stderr
new file mode 100644
index 00000000000..a6b2eb8f972
--- /dev/null
+++ b/src/test/ui/typeck/issue-75883.stderr
@@ -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`.