Closed13

わいわいswiftc #1(前半〜55分くらいまで)を見ながらメモ

tanakotanako

Xcode 15でこれが動かない

swift -frontend -typecheck -debug-constraints ./test.swift

がこれで一旦

swift -frontend -typecheck -debug-constraints -sdk $(xcrun --show-sdk-path --sdk macosx) ./test.swift
tanakotanako

複数の比較対象があるときにスコアで比較する。低いほうが良い
Potential Bindingで何も情報が無い場合に発生する型は決まっている。何もない場合はIntになるなど

tanakotanako

このfor部分の読み方は..
$< はサブタイプを意味するが、
< サブタイプ
<c 変換関係でもあるし、
<oc ocでもある。という読み方。

// for $< in { <, <c, <oc }:
//   T_i $< U_i ===> (T_i...) $< (U_i...)
tanakotanako

サブタイプ関係があって型チェックが通っても、変換処理を挟まないといけないケースが普通にある。

tanakotanako

どの制約で型チェックを通したか記録して..

それを元にASTを書き換えるときに挿入する

このケースでは対応する型強制は「.someで包む」

このスクラップは2023/10/05にクローズされました