1記事とかでもいいのでもっと雑に書こうと思った。書くのはQiitaでやる。最近はNameLookup周りを読んでいるのだけど、いい感じにまとまらないので今回はいったん離れて、マイナーそうだけどCSXXXX.cppと名前が付いているためCSApplyやCSSolverなどと合わせていつも視界に入ってくるCSPropagateを読んでみる。Propagate」などとググってみてやっとなにをするものなのか理解できた。オプションを有効にしないと使われないConstraintSystem::solveからConstraintSystem::solveRecが呼ばれる前にpropagateConstraints()が呼ばれるが、見ての通りTC.Context.LangOpts.EnableConstraintPropagationが有効でないと実行されない。solver.コメントを読むと、基本的にはオーバーロードの制約を整理するみたい。https://github.com/apple/swift/pull/10825まだ作業中みたいだけど、このあたりの複雑なオーバーロードが解決できるようになるっぽい。まとめ全然具体的なロジックは読んでないけど、なんとなくやってることはわかったので、続きはまたいつか。