summaryrefslogtreecommitdiff
path: root/tests/initializer-list/struct-visibility-diagnostic-2.slang
blob: a3255de5e88aaacdae0548d3a47f4d1a08a87666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK):

public struct Visibility
{
  internal int x;
  public int y = 5;
  // the compiler does not synthesize any ctor.
  // the compiler will try to synthesize:
  //     public __init(int y);
  // but then it will find that `x` cannot be initialized.
  // so this synthesis will fail and no ctor will be added
  // to the type.
}

void test()
{
    // CHECK: warning 41021: default initializer for 'Visibility' will not initialize field 'x'
    Visibility t1 = {};
}