こんな不具合報告してもいいのかよくわからないので,報告はしてません;;
継承使いまくりのクラスで release ビルドのみエラーを吐く
protocol MyProtocol { associatedtype RealmObject: Object associatedtype RealmCollectionObject: RealmCollection where RealmCollectionObject.ElementType == RealmObject } class SuperBase { } class Base: SuperBase, MyProtocol { typealias RealmObject = SampleEntity typealias RealmCollectionObject = List } class FunctionalBase: Base { // 任意のコード } final class VariationA: FunctionalBase { } final class VariationB: FunctionalBase { }
これはかなり抽象的にしたコードですが,Base
で「invalid redeclaration of RealmCollectionObject」と出る。
おそらく最適化のフェーズで RealmCollectionObject が複数箇所に定義されてしまった,って感じなんでしょうけど。
まとめ
Swift のコンパイラー最近色々不具合多くて本当に困る……
Swift 5.0 でも Eureka を static framework にしたので正しくコードが入ってなかったりとか……
Swift 5.1 でもこうなるとか,今まで問題なかったのが問題になるっていう…… しんどいw