2017前回の記事でSpaceを使った網羅チェックのアルゴリズムを見たので、今回はswiftコンパイラに置けるその実装を見てみる。元の論文や前回の記事を参照。Swiftのバージョンは4.0.2。コメントに網羅チェックと警告について参考にした論文が紹介されている。matching網羅チェックはいつ行われるか?switch文の型チェックの直後に行われる。caseに全然関係ない型がある場合などは型チェック時に警告がでて、網羅チェックは限定的にしか行わない。基本的には変なpatternが来ることはない。sn)あたりの実装がどのように行われているかをみてみる。いうクラスによって実装されている。...}swiftでの実装ではSpaceはSpaceKindによって分類されており、BooleanConstantが特別扱いされているのが特徴的。あたるものは以下のように定義されている。いう関数になっている。&sawDowngradablePattern)PatternKindで定義された13種類のPatternに対してそれぞれのPに関する規則が定義されている。いう関数になっている。