summaryrefslogtreecommitdiffstats
path: root/src/test/pretty/issue-4264.pp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /src/test/pretty/issue-4264.pp
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/pretty/issue-4264.pp')
-rw-r--r--src/test/pretty/issue-4264.pp57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/test/pretty/issue-4264.pp b/src/test/pretty/issue-4264.pp
new file mode 100644
index 000000000..752c36a0f
--- /dev/null
+++ b/src/test/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<'r> fn(Arguments<'r>) -> 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 ())