Avatar
現状コンパイルのメインのパーサーは元々の C++ (lib/Parse) です。マクロの展開が要求されたときに SwiftParserがオンデマンドで走ってSwiftSyntax ツリーとしてパースされ、マクロの実装に渡すようになってます。なので libParse と SwiftParser の両方が走るので効率悪いです。当然将来的には SwiftParser で libParse を置き換えて SwiftParser に統一することを目指してます。
5:47 AM
テストでの REQUIRES: swift_swift_parser は SwiftParser が有効になっている時にだけ実行されるテストで、フラグがある通り全てのビルドで有効になっているわけではありません。具体的には Linux, Windows など Darwin 以外では様々な理由で有効にできていません。 (edited)
5:47 AM
なので現状 Linux, Windows では SwiftParser が必要な機能であるマクロは使えないです。