about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2019-10-14 10:45:25 +0900
committerYuki Okushi <huyuumi.dev@gmail.com>2019-10-14 10:45:25 +0900
commit5c8fdc1954544f0e8bb3da0dfa8c4516731b0b84 (patch)
tree47a51602939eac74523e86123cdf8ddae0ad2ccd
parentc27f7568bc74c418996892028a629eed5a7f5f00 (diff)
downloadrust-5c8fdc1954544f0e8bb3da0dfa8c4516731b0b84.tar.gz
rust-5c8fdc1954544f0e8bb3da0dfa8c4516731b0b84.zip
Add test for issue-44153
-rw-r--r--src/test/ui/associated-types/issue-44153.rs19
-rw-r--r--src/test/ui/associated-types/issue-44153.stderr16
2 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/associated-types/issue-44153.rs b/src/test/ui/associated-types/issue-44153.rs
new file mode 100644
index 00000000000..2101cb61a94
--- /dev/null
+++ b/src/test/ui/associated-types/issue-44153.rs
@@ -0,0 +1,19 @@
+pub trait Array {
+    type Element;
+}
+
+pub trait Visit {
+    fn visit() {}
+}
+
+impl Array for () {
+    type Element = ();
+}
+
+impl<'a> Visit for () where
+    (): Array<Element=&'a ()>,
+{}
+
+fn main() {
+    <() as Visit>::visit(); //~ ERROR: type mismatch resolving
+}
diff --git a/src/test/ui/associated-types/issue-44153.stderr b/src/test/ui/associated-types/issue-44153.stderr
new file mode 100644
index 00000000000..b62a866a20b
--- /dev/null
+++ b/src/test/ui/associated-types/issue-44153.stderr
@@ -0,0 +1,16 @@
+error[E0271]: type mismatch resolving `<() as Array>::Element == &()`
+  --> $DIR/issue-44153.rs:18:5
+   |
+LL |     fn visit() {}
+   |     ---------- required by `Visit::visit`
+...
+LL |     <() as Visit>::visit();
+   |     ^^^^^^^^^^^^^^^^^^^^ expected (), found &()
+   |
+   = note: expected type `()`
+              found type `&()`
+   = note: required because of the requirements on the impl of `Visit` for `()`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0271`.