about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorHameer Abbasi <einstein.edison@gmail.com>2021-04-24 16:25:36 +0200
committerHameer Abbasi <einstein.edison@gmail.com>2021-04-25 08:56:50 +0200
commite558ddbb3aa8a787aac030969af7575aceed63cb (patch)
treedebc8bf0d7c889d0f4a735b6f89fd6e84d602496 /src
parente11a9fa52a3f372dadd6db3d3f2ed7dc2621dcc4 (diff)
downloadrust-e558ddbb3aa8a787aac030969af7575aceed63cb.tar.gz
rust-e558ddbb3aa8a787aac030969af7575aceed63cb.zip
Improve diagnostics for function passed when a type was expected.
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/generics/generic-function-item-where-type.rs6
-rw-r--r--src/test/ui/generics/generic-function-item-where-type.stderr12
-rw-r--r--src/test/ui/privacy/privacy-ns1.stderr3
-rw-r--r--src/test/ui/privacy/privacy-ns2.stderr6
4 files changed, 27 insertions, 0 deletions
diff --git a/src/test/ui/generics/generic-function-item-where-type.rs b/src/test/ui/generics/generic-function-item-where-type.rs
new file mode 100644
index 00000000000..e1b0578cadb
--- /dev/null
+++ b/src/test/ui/generics/generic-function-item-where-type.rs
@@ -0,0 +1,6 @@
+fn foo<U>() {}
+
+fn main() {
+    foo::<main>()
+    //~^ ERROR constant provided when a type was expected
+}
diff --git a/src/test/ui/generics/generic-function-item-where-type.stderr b/src/test/ui/generics/generic-function-item-where-type.stderr
new file mode 100644
index 00000000000..88594129caa
--- /dev/null
+++ b/src/test/ui/generics/generic-function-item-where-type.stderr
@@ -0,0 +1,12 @@
+error[E0747]: constant provided when a type was expected
+  --> $DIR/generic-function-item-where-type.rs:4:11
+   |
+LL |     foo::<main>()
+   |           ^^^^
+   |
+   = help: `main` is a function item, not a type
+   = help: function item types cannot be named directly
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0747`.
diff --git a/src/test/ui/privacy/privacy-ns1.stderr b/src/test/ui/privacy/privacy-ns1.stderr
index 714f28941f1..d09a8aae748 100644
--- a/src/test/ui/privacy/privacy-ns1.stderr
+++ b/src/test/ui/privacy/privacy-ns1.stderr
@@ -57,6 +57,9 @@ error[E0747]: constant provided when a type was expected
    |
 LL |     let _x: Box<Bar>;
    |                 ^^^
+   |
+   = help: `Bar` is a function item, not a type
+   = help: function item types cannot be named directly
 
 error: aborting due to 4 previous errors
 
diff --git a/src/test/ui/privacy/privacy-ns2.stderr b/src/test/ui/privacy/privacy-ns2.stderr
index c7ad8ec5036..fdf0549cf50 100644
--- a/src/test/ui/privacy/privacy-ns2.stderr
+++ b/src/test/ui/privacy/privacy-ns2.stderr
@@ -83,12 +83,18 @@ error[E0747]: constant provided when a type was expected
    |
 LL |     let _x : Box<Bar>;
    |                  ^^^
+   |
+   = help: `Bar` is a function item, not a type
+   = help: function item types cannot be named directly
 
 error[E0747]: constant provided when a type was expected
   --> $DIR/privacy-ns2.rs:48:17
    |
 LL |     let _x: Box<Bar>;
    |                 ^^^
+   |
+   = help: `Bar` is a function item, not a type
+   = help: function item types cannot be named directly
 
 error: aborting due to 8 previous errors