]> git.lizzy.rs Git - rust.git/blob - tests/pretty/issue-4264.pp
Rollup merge of #107752 - riverar:rafael/gnu_dlltool_temp_prefix, r=petrochenkov
[rust.git] / tests / pretty / issue-4264.pp
1 #[prelude_import]
2 use ::std::prelude::rust_2015::*;
3 #[macro_use]
4 extern crate std;
5 // pretty-compare-only
6 // pretty-mode:hir,typed
7 // pp-exact:issue-4264.pp
8
9 // #4264 fixed-length vector types
10
11 fn foo(_: [i32; (3 as usize)]) ({ } as ())
12
13 fn bar() ({
14         const FOO: usize = ((5 as usize) - (4 as usize) as usize);
15         let _: [(); (FOO as usize)] = ([(() as ())] as [(); 1]);
16
17         let _: [(); (1 as usize)] = ([(() as ())] as [(); 1]);
18
19         let _ =
20             (((&([(1 as i32), (2 as i32), (3 as i32)] as [i32; 3]) as
21                         &[i32; 3]) as *const _ as *const [i32; 3]) as
22                 *const [i32; (3 as usize)] as *const [i32; 3]);
23
24
25
26
27
28
29
30
31
32         ({
33                 let res =
34                     ((::alloc::fmt::format as
35                             for<'a> fn(Arguments<'a>) -> String {format})(((<#[lang = "format_arguments"]>::new_v1
36                                 as
37                                 fn(&[&'static str], &[core::fmt::ArgumentV1<'_>]) -> Arguments<'_> {Arguments::<'_>::new_v1})((&([("test"
38                                             as &str)] as [&str; 1]) as &[&str; 1]),
39                             (&([] as [core::fmt::ArgumentV1<'_>; 0]) as
40                                 &[core::fmt::ArgumentV1<'_>; 0])) as Arguments<'_>)) as
41                         String);
42                 (res as String)
43             } as String);
44     } as ())
45 type Foo = [i32; (3 as usize)];
46 struct Bar {
47     x: [i32; (3 as usize)],
48 }
49 struct TupleBar([i32; (4 as usize)]);
50 enum Baz { BazVariant([i32; (5 as usize)]), }
51 fn id<T>(x: T) -> T ({ (x as T) } as T)
52 fn use_id() ({
53         let _ =
54             ((id::<[i32; (3 as usize)]> as
55                     fn([i32; 3]) -> [i32; 3] {id::<[i32; 3]>})(([(1 as i32),
56                         (2 as i32), (3 as i32)] as [i32; 3])) as [i32; 3]);
57     } as ())
58 fn main() ({ } as ())