about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2020-02-12 20:36:53 +0100
committerGitHub <noreply@github.com>2020-02-12 20:36:53 +0100
commit2a3c1a30c84d66ad9bde8aef7727dfd6b60c40c9 (patch)
treece940a78c5bacb1bb1f7aa31e286e023297940c7 /src/test
parentf127aba96d1f0610f854e54a3386023c2331b1f3 (diff)
parent9d91489526121ef3408e1efa2a98bcaefdedd9bc (diff)
downloadrust-2a3c1a30c84d66ad9bde8aef7727dfd6b60c40c9.tar.gz
rust-2a3c1a30c84d66ad9bde8aef7727dfd6b60c40c9.zip
Rollup merge of #68981 - estebank:silence, r=davidtwco
 Account for type params on method without parentheses

Account for those type parameters in the structured suggestion when forgetting to call method:

```
error[E0615]: attempted to take value of method `collect` on type `std::vec::IntoIter<_>`
  --> $DIR/method-missing-parentheses.rs:2:32
   |
LL |     let _ = vec![].into_iter().collect::<usize>;
   |                                ^^^^^^^---------
   |                                |
   |                                help: use parentheses to call the method: `collect::<usize>()`
```
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/parser/type-parameters-in-field-exprs.rs6
-rw-r--r--src/test/ui/parser/type-parameters-in-field-exprs.stderr6
-rw-r--r--src/test/ui/suggestions/method-missing-parentheses.rs5
-rw-r--r--src/test/ui/suggestions/method-missing-parentheses.stderr17
4 files changed, 28 insertions, 6 deletions
diff --git a/src/test/ui/parser/type-parameters-in-field-exprs.rs b/src/test/ui/parser/type-parameters-in-field-exprs.rs
index 6a3b2c1c606..4cd77ebbd86 100644
--- a/src/test/ui/parser/type-parameters-in-field-exprs.rs
+++ b/src/test/ui/parser/type-parameters-in-field-exprs.rs
@@ -9,9 +9,9 @@ fn main() {
         y: 2,
     };
     f.x::<isize>;
-    //~^ ERROR field expressions may not have generic arguments
+    //~^ ERROR field expressions cannot have generic arguments
     f.x::<>;
-    //~^ ERROR field expressions may not have generic arguments
+    //~^ ERROR field expressions cannot have generic arguments
     f.x::();
-    //~^ ERROR field expressions may not have generic arguments
+    //~^ ERROR field expressions cannot have generic arguments
 }
diff --git a/src/test/ui/parser/type-parameters-in-field-exprs.stderr b/src/test/ui/parser/type-parameters-in-field-exprs.stderr
index 306b4754d0d..ce7364d3534 100644
--- a/src/test/ui/parser/type-parameters-in-field-exprs.stderr
+++ b/src/test/ui/parser/type-parameters-in-field-exprs.stderr
@@ -1,16 +1,16 @@
-error: field expressions may not have generic arguments
+error: field expressions cannot have generic arguments
   --> $DIR/type-parameters-in-field-exprs.rs:11:10
    |
 LL |     f.x::<isize>;
    |          ^^^^^^^
 
-error: field expressions may not have generic arguments
+error: field expressions cannot have generic arguments
   --> $DIR/type-parameters-in-field-exprs.rs:13:10
    |
 LL |     f.x::<>;
    |          ^^
 
-error: field expressions may not have generic arguments
+error: field expressions cannot have generic arguments
   --> $DIR/type-parameters-in-field-exprs.rs:15:7
    |
 LL |     f.x::();
diff --git a/src/test/ui/suggestions/method-missing-parentheses.rs b/src/test/ui/suggestions/method-missing-parentheses.rs
new file mode 100644
index 00000000000..f10bfb56d2e
--- /dev/null
+++ b/src/test/ui/suggestions/method-missing-parentheses.rs
@@ -0,0 +1,5 @@
+fn main() {
+    let _ = vec![].into_iter().collect::<usize>;
+    //~^ ERROR attempted to take value of method `collect` on type `std::vec::IntoIter<_>`
+    //~| ERROR field expressions cannot have generic arguments
+}
diff --git a/src/test/ui/suggestions/method-missing-parentheses.stderr b/src/test/ui/suggestions/method-missing-parentheses.stderr
new file mode 100644
index 00000000000..6e4f7a84724
--- /dev/null
+++ b/src/test/ui/suggestions/method-missing-parentheses.stderr
@@ -0,0 +1,17 @@
+error: field expressions cannot have generic arguments
+  --> $DIR/method-missing-parentheses.rs:2:41
+   |
+LL |     let _ = vec![].into_iter().collect::<usize>;
+   |                                         ^^^^^^^
+
+error[E0615]: attempted to take value of method `collect` on type `std::vec::IntoIter<_>`
+  --> $DIR/method-missing-parentheses.rs:2:32
+   |
+LL |     let _ = vec![].into_iter().collect::<usize>;
+   |                                ^^^^^^^---------
+   |                                |
+   |                                help: use parentheses to call the method: `collect::<usize>()`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0615`.