title: Struct initializer is inaccessible due to private protection level from its own file
body: <p>Using Swift 4, I have defined two structs in the same file, where one of them is private so this file is the only one that can access it. Also I'm relying on the struct's default/synthesized initializer i.e. I'm not explicitly defining one:</p>
  <pre><code>private struct A {
    private let string: String
    ...
  }
  
  struct B {
    func foo() {
      let a = A(string: &quot;bar&quot;)
      ...
    }
  }
  </code></pre>
  <p>However this will fail to compile with the following error:</p>
  <blockquote>
  <p>'A' initializer is inaccessible due to 'private' protection level</p>
  </blockquote>
  <p>I don't want to have <code>A</code> accessible to other files, so I tried to work around it by making it <code>fileprivate</code> (which should be equivalent to <code>private</code> in this scenario), but the same compilation error will occur (and it still complains that the protection level is <code>private</code>).</p>
  <p>Is there a way to keep this struct <code>fileprivate</code> and still get a synthesized initializer that exposes all uninitialized properties? i.e. <code>A.init(string:)</code></p>