Avatar
omochimetaru 2/18/2022 4:29 AM
@Icemanhttps://discord.com/channels/291054398077927425/430242233468452865/944056010585284649 で実験してるやつ 現場としては swift-nio で 2019年に発生してるんだけど https://github.com/apple/swift-nio/issues/1257 調べてたらこの既知の問題として整理されてた https://bugs.swift.org/browse/SR-14719
4:30 AM
@usableFromInline internal struct S { @usableFromInline internal var a: Int @inlinable internal init() { self.a = 0 } }
4:30 AM
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 } ^
4:31 AM
struct S@frozen にするとビルドできるようになるんだけど
4:32 AM
「フィールドレイアウトが固定されていないのに init@inlinable だと、レイアウト変化後に、埋め込まれた古い init が正しく動作しないからおかしい」 というのが根底の話で
4:32 AM
https://bugs.swift.org/browse/SR-14783 そういう診断メッセージを出したいというチケットになってた