#[prelude_import] use ::std::prelude::v1::*; #[macro_use] extern crate std; // pretty-compare-only // pretty-mode:hir,typed // pp-exact:issue-4264.pp // #4264 fixed-length vector types pub fn foo(_: [i32; (3 as usize)]) ({ } as ()) pub 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(std::fmt::Arguments<'r>) -> std::string::String {std::fmt::format})(((::core::fmt::Arguments::new_v1 as fn(&[&str], &[std::fmt::ArgumentV1<'_>]) -> std::fmt::Arguments<'_> {std::fmt::Arguments::<'_>::new_v1})((&([("test" as &'static str)] as [&str; 1]) as &[&str; 1]), (&(match (() as ()) { () => ([] as [std::fmt::ArgumentV1<'_>; 0]), } as [std::fmt::ArgumentV1<'_>; 0]) as &[std::fmt::ArgumentV1<'_>; 0])) as std::fmt::Arguments<'_>)) as std::string::String); (res as std::string::String) } as std::string::String); } as ()) pub type Foo = [i32; (3 as usize)]; pub struct Bar { pub x: [i32; (3 as usize)], } pub struct TupleBar([i32; (4 as usize)]); pub enum Baz { BazVariant([i32; (5 as usize)]), } pub fn id(x: T) -> T ({ (x as T) } as T) pub 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 ())