summaryrefslogtreecommitdiffstats
path: root/src/test/ui/fully-qualified-type
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/fully-qualified-type')
-rw-r--r--src/test/ui/fully-qualified-type/fully-qualified-type-name1.rs10
-rw-r--r--src/test/ui/fully-qualified-type/fully-qualified-type-name1.stderr20
-rw-r--r--src/test/ui/fully-qualified-type/fully-qualified-type-name2.rs18
-rw-r--r--src/test/ui/fully-qualified-type/fully-qualified-type-name2.stderr11
-rw-r--r--src/test/ui/fully-qualified-type/fully-qualified-type-name4.rs14
-rw-r--r--src/test/ui/fully-qualified-type/fully-qualified-type-name4.stderr18
6 files changed, 91 insertions, 0 deletions
diff --git a/src/test/ui/fully-qualified-type/fully-qualified-type-name1.rs b/src/test/ui/fully-qualified-type/fully-qualified-type-name1.rs
new file mode 100644
index 000000000..229c174da
--- /dev/null
+++ b/src/test/ui/fully-qualified-type/fully-qualified-type-name1.rs
@@ -0,0 +1,10 @@
+// Test that we use fully-qualified type names in error messages.
+
+fn main() {
+ let x: //~ NOTE expected due to the type of this binding
+ Option<usize>; //~ NOTE expected due to this type
+ x = 5;
+ //~^ ERROR mismatched types
+ //~| NOTE expected enum `Option<usize>`
+ //~| NOTE expected enum `Option`, found integer
+}
diff --git a/src/test/ui/fully-qualified-type/fully-qualified-type-name1.stderr b/src/test/ui/fully-qualified-type/fully-qualified-type-name1.stderr
new file mode 100644
index 000000000..4750c5ccd
--- /dev/null
+++ b/src/test/ui/fully-qualified-type/fully-qualified-type-name1.stderr
@@ -0,0 +1,20 @@
+error[E0308]: mismatched types
+ --> $DIR/fully-qualified-type-name1.rs:6:9
+ |
+LL | let x:
+ | - expected due to the type of this binding
+LL | Option<usize>;
+ | ------------- expected due to this type
+LL | x = 5;
+ | ^ expected enum `Option`, found integer
+ |
+ = note: expected enum `Option<usize>`
+ found type `{integer}`
+help: try wrapping the expression in `Some`
+ |
+LL | x = Some(5);
+ | +++++ +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/fully-qualified-type/fully-qualified-type-name2.rs b/src/test/ui/fully-qualified-type/fully-qualified-type-name2.rs
new file mode 100644
index 000000000..94a9f4e56
--- /dev/null
+++ b/src/test/ui/fully-qualified-type/fully-qualified-type-name2.rs
@@ -0,0 +1,18 @@
+// Test that we use fully-qualified type names in error messages.
+
+mod x {
+ pub enum Foo { }
+}
+
+mod y {
+ pub enum Foo { }
+}
+
+fn bar(x: x::Foo) -> y::Foo {
+ return x;
+ //~^ ERROR mismatched types
+ //~| expected enum `y::Foo`, found enum `x::Foo`
+}
+
+fn main() {
+}
diff --git a/src/test/ui/fully-qualified-type/fully-qualified-type-name2.stderr b/src/test/ui/fully-qualified-type/fully-qualified-type-name2.stderr
new file mode 100644
index 000000000..aed7f72c6
--- /dev/null
+++ b/src/test/ui/fully-qualified-type/fully-qualified-type-name2.stderr
@@ -0,0 +1,11 @@
+error[E0308]: mismatched types
+ --> $DIR/fully-qualified-type-name2.rs:12:12
+ |
+LL | fn bar(x: x::Foo) -> y::Foo {
+ | ------ expected `y::Foo` because of return type
+LL | return x;
+ | ^ expected enum `y::Foo`, found enum `x::Foo`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/fully-qualified-type/fully-qualified-type-name4.rs b/src/test/ui/fully-qualified-type/fully-qualified-type-name4.rs
new file mode 100644
index 000000000..2486ae009
--- /dev/null
+++ b/src/test/ui/fully-qualified-type/fully-qualified-type-name4.rs
@@ -0,0 +1,14 @@
+// Test that we use fully-qualified type names in error messages.
+
+use std::option::Option;
+
+fn bar(x: usize) -> Option<usize> {
+ return x;
+ //~^ ERROR mismatched types
+ //~| expected enum `Option<usize>`
+ //~| found type `usize`
+ //~| expected enum `Option`, found `usize`
+}
+
+fn main() {
+}
diff --git a/src/test/ui/fully-qualified-type/fully-qualified-type-name4.stderr b/src/test/ui/fully-qualified-type/fully-qualified-type-name4.stderr
new file mode 100644
index 000000000..778b13f24
--- /dev/null
+++ b/src/test/ui/fully-qualified-type/fully-qualified-type-name4.stderr
@@ -0,0 +1,18 @@
+error[E0308]: mismatched types
+ --> $DIR/fully-qualified-type-name4.rs:6:12
+ |
+LL | fn bar(x: usize) -> Option<usize> {
+ | ------------- expected `Option<usize>` because of return type
+LL | return x;
+ | ^ expected enum `Option`, found `usize`
+ |
+ = note: expected enum `Option<usize>`
+ found type `usize`
+help: try wrapping the expression in `Some`
+ |
+LL | return Some(x);
+ | +++++ +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.