1struct MyStruct {
2    f1 : f32;
3};
4
5type MyArray = array<f32, 10>;
6
7fn ret_i32() -> i32 { return 1; }
8fn ret_u32() -> u32 { return 1u; }
9fn ret_f32() -> f32 { return 1.0; }
10fn ret_MyStruct() -> MyStruct { return MyStruct(); }
11fn ret_MyArray() -> MyArray { return MyArray(); }
12
13// Local variables
14fn var_decls() {
15    var v1 = 1;
16    var v2 = 1u;
17    var v3 = 1.0;
18
19    var v4 = vec3<i32>(1, 1, 1);
20    var v5 = vec3<u32>(1u, 1u, 1u);
21    var v6 = vec3<f32>(1.0, 1.0, 1.0);
22
23    var v7 = mat3x3<f32>(v6, v6, v6);
24
25    var v8 = MyStruct(1.0);
26    var v9 = MyArray();
27
28    var v10 = ret_i32();
29    var v11 = ret_u32();
30    var v12 = ret_f32();
31    var v13 = ret_MyStruct();
32    var v14 = ret_MyStruct();
33    var v15 = ret_MyArray();
34}
35
36[[stage(fragment)]]
37fn main() -> [[location(0)]] vec4<f32> {
38    return vec4<f32>(0.0,0.0,0.0,0.0);
39}
40