@usableFromInline internal struct S { @usableFromInline internal var a: Int @inlinable internal init() { self.a = 0 } }a.swift:8:16: error: 'self' used before 'self.init' call or assignment to 'self' self.a = 0 ^ a.swift:9:5: error: 'self.init' isn't called on all paths before returning from initializer } ^struct S を @frozen にするとビルドできるようになるんだけどinit が @inlinable だと、レイアウト変化後に、埋め込まれた古い init が正しく動作しないからおかしい」 というのが根底の話で