struct S1 {
  a : i32;
  b : i32;
  c : i32;
  d : i32;
}

struct S2 {
  e : i32;
  f : S1;
}

struct S3 {
  g : i32;
  h : S1;
  i : S2;
}

struct T {
  a : array<i32, 2>;
}

@stage(compute) @workgroup_size(1)
fn main() {
  let x : i32 = 42;
  let empty : S1 = S1();
  let nonempty : S1 = S1(1, 2, 3, 4);
  let nonempty_with_expr : S1 = S1(1, x, (x + 1), nonempty.d);
  let nested_empty : S3 = S3();
  let nested_nonempty : S3 = S3(1, S1(2, 3, 4, 5), S2(6, S1(7, 8, 9, 10)));
  let nested_nonempty_with_expr : S3 = S3(1, S1(2, x, (x + 1), nested_nonempty.i.f.d), S2(6, nonempty));
  let subexpr_empty : i32 = S1().a;
  let subexpr_nonempty : i32 = S1(1, 2, 3, 4).b;
  let subexpr_nonempty_with_expr : i32 = S1(1, x, (x + 1), nonempty.d).c;
  let subexpr_nested_empty : S1 = S2().f;
  let subexpr_nested_nonempty : S1 = S2(1, S1(2, 3, 4, 5)).f;
  let subexpr_nested_nonempty_with_expr : S1 = S2(1, S1(2, x, (x + 1), nested_nonempty.i.f.d)).f;
  let aosoa_empty : array<T, 2> = array<T, 2>();
  let aosoa_nonempty : array<T, 2> = array<T, 2>(T(array<i32, 2>(1, 2)), T(array<i32, 2>(3, 4)));
  let aosoa_nonempty_with_expr : array<T, 2> = array<T, 2>(T(array<i32, 2>(1, (aosoa_nonempty[0].a[0] + 1))), aosoa_nonempty[1]);
}
