about summary refs log tree commit diff
diff options
context:
space:
mode:
authorIlya Yanok <ilya.yanok@gmail.com>2021-10-28 14:25:46 +0000
committerIlya Yanok <ilya.yanok@gmail.com>2021-10-28 14:25:46 +0000
commit9a0a622a042d0ed04ad349d8bb778e40dd417a16 (patch)
tree26483df27a5a4a837d6003e259c4b910aacd0bb8
parent6f942a2f4a0487a7428a9aba8f018eb45cdb924e (diff)
downloadrust-9a0a622a042d0ed04ad349d8bb778e40dd417a16.tar.gz
rust-9a0a622a042d0ed04ad349d8bb778e40dd417a16.zip
Add test cases
-rw-r--r--src/test/ui/traits/issue-90195-2.rs20
-rw-r--r--src/test/ui/traits/issue-90195.rs21
2 files changed, 41 insertions, 0 deletions
diff --git a/src/test/ui/traits/issue-90195-2.rs b/src/test/ui/traits/issue-90195-2.rs
new file mode 100644
index 00000000000..b739dc46e4e
--- /dev/null
+++ b/src/test/ui/traits/issue-90195-2.rs
@@ -0,0 +1,20 @@
+// check-pass
+pub trait Archive {
+    type Archived;
+}
+
+impl<T> Archive for Option<T> {
+    type Archived = ();
+}
+pub type Archived<T> = <T as Archive>::Archived;
+
+pub trait Deserialize<D> {}
+
+const ARRAY_SIZE: usize = 32;
+impl<__D> Deserialize<__D> for ()
+where
+    Option<[u8; ARRAY_SIZE]>: Archive,
+    Archived<Option<[u8; ARRAY_SIZE]>>: Deserialize<__D>,
+{
+}
+fn main() {}
diff --git a/src/test/ui/traits/issue-90195.rs b/src/test/ui/traits/issue-90195.rs
new file mode 100644
index 00000000000..543c9f197e1
--- /dev/null
+++ b/src/test/ui/traits/issue-90195.rs
@@ -0,0 +1,21 @@
+// check-pass
+pub trait Archive {
+    type Archived;
+}
+
+impl<T> Archive for Option<T> {
+    type Archived = ();
+}
+pub type Archived<T> = <T as Archive>::Archived;
+
+pub trait Deserialize<D> {}
+
+const ARRAY_SIZE: usize = 32;
+impl<__D> Deserialize<__D> for ()
+where
+    Option<[u8; ARRAY_SIZE]>: Archive,
+    Option<[u8; ARRAY_SIZE]>: Archive,
+    Archived<Option<[u8; ARRAY_SIZE]>>: Deserialize<__D>,
+{
+}
+fn main() {}