summaryrefslogtreecommitdiffstats
path: root/tests/ui/type-alias-impl-trait/destructure_tait-layout_of-ice-113594.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/type-alias-impl-trait/destructure_tait-layout_of-ice-113594.rs')
-rw-r--r--tests/ui/type-alias-impl-trait/destructure_tait-layout_of-ice-113594.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/ui/type-alias-impl-trait/destructure_tait-layout_of-ice-113594.rs b/tests/ui/type-alias-impl-trait/destructure_tait-layout_of-ice-113594.rs
new file mode 100644
index 000000000..8568b26be
--- /dev/null
+++ b/tests/ui/type-alias-impl-trait/destructure_tait-layout_of-ice-113594.rs
@@ -0,0 +1,23 @@
+// build-pass
+// edition: 2021
+
+#![feature(type_alias_impl_trait)]
+
+fn foo<T>(x: T) {
+ type Opaque<T> = impl Sized;
+ let foo: Opaque<T> = (x,);
+ let (a,): (T,) = foo;
+}
+
+const fn bar<T: Copy>(x: T) {
+ type Opaque<T: Copy> = impl Copy;
+ let foo: Opaque<T> = (x, 2u32);
+ let (a, b): (T, u32) = foo;
+}
+
+fn main() {
+ foo::<u32>(1);
+ bar::<u32>(1);
+ const CONST: () = bar::<u32>(42u32);
+ CONST
+}