summaryrefslogtreecommitdiffstats
path: root/tests/pretty/issue-4264.pp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /tests/pretty/issue-4264.pp
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/pretty/issue-4264.pp')
-rw-r--r--tests/pretty/issue-4264.pp57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/pretty/issue-4264.pp b/tests/pretty/issue-4264.pp
new file mode 100644
index 000000000..18e6d75b1
--- /dev/null
+++ b/tests/pretty/issue-4264.pp
@@ -0,0 +1,57 @@
+#[prelude_import]
+use ::std::prelude::rust_2015::*;
+#[macro_use]
+extern crate std;
+// pretty-compare-only
+// pretty-mode:hir,typed
+// pp-exact:issue-4264.pp
+
+// #4264 fixed-length vector types
+
+fn foo(_: [i32; (3 as usize)]) ({ } as ())
+
+fn bar() ({
+ const FOO: usize = ((5 as usize) - (4 as usize) as usize);
+ let _: [(); (FOO as usize)] = ([(() as ())] as [(); 1]);
+
+ let _: [(); (1 as usize)] = ([(() as ())] as [(); 1]);
+
+ let _ =
+ (((&([(1 as i32), (2 as i32), (3 as i32)] as [i32; 3]) as
+ &[i32; 3]) as *const _ as *const [i32; 3]) as
+ *const [i32; (3 as usize)] as *const [i32; 3]);
+
+
+
+
+
+
+
+
+
+ ({
+ let res =
+ ((::alloc::fmt::format as
+ for<'a> fn(Arguments<'a>) -> String {format})(((::core::fmt::Arguments::new_v1
+ as
+ fn(&[&'static str], &[ArgumentV1<'_>]) -> Arguments<'_> {Arguments::<'_>::new_v1})((&([("test"
+ as &str)] as [&str; 1]) as &[&str; 1]),
+ (&([] as [ArgumentV1<'_>; 0]) as &[ArgumentV1<'_>; 0])) as
+ Arguments<'_>)) as String);
+ (res as String)
+ } as String);
+ } as ())
+type Foo = [i32; (3 as usize)];
+struct Bar {
+ x: [i32; (3 as usize)],
+}
+struct TupleBar([i32; (4 as usize)]);
+enum Baz { BazVariant([i32; (5 as usize)]), }
+fn id<T>(x: T) -> T ({ (x as T) } as T)
+fn use_id() ({
+ let _ =
+ ((id::<[i32; (3 as usize)]> as
+ fn([i32; 3]) -> [i32; 3] {id::<[i32; 3]>})(([(1 as i32),
+ (2 as i32), (3 as i32)] as [i32; 3])) as [i32; 3]);
+ } as ())
+fn main() ({ } as ())