Avatar
The Swift Programming Language. Contribute to apple/swift development by creating an account on GitHub.
9:36 PM
// RUN: %target-swift-frontend -enable-experimental-feature Macros -dump-ast %s -module-name MacrosTest 2>&1 | %FileCheck %s
9:36 PM
-enable-experimental-feature Macros これで有効化していそうだけど、定義したプラグインを読み込ませている箇所が見当たらないなあ
9:37 PM
struct StringifyMacro: _CompilerPlugin { static func _name() -> (UnsafePointer<UInt8>, count: Int) { var name = "customStringify" 名前が stringify じゃない・・・
9:38 PM
// RUN: %empty-directory(%t) // RUN: %target-build-swift -Xfrontend -disable-availability-checking -I%platform-module-dir/../.. -L%platform-dylib-dir/../.. -emit-library -emit-library-path=%t/%target-library-name(MacroDefinition) -working-directory=%t -module-name=MacroDefinition %S/Inputs/macro_definition.swift // RUN: %target-swift-frontend -L%platform-dylib-dir/../.. -enable-experimental-feature Macros -load-plugin-library %t/%target-library-name(MacroDefinition) -disable-availability-checking -dump-ast -primary-file %s | %FileCheck %s お、こっちはそれっぽいですね
9:38 PM
Inputs/macro_definition.swiftMacroDefinition モジュールとしてビルドして
9:39 PM
次のコマンドでさっきみつけた -load-plugin-library で、 MacroDefinition を読み込ませている
9:39 PM
同じようにやったら動きそう
9:39 PM
あーわかった https://github.com/apple/swift/blob/92d970497ec165aef541ed032fcdac4abd578e55/test/Macros/macros.swift こっちのテストケースは -dump-ast なんで
9:40 PM
#stringify をパースさせているだけだ。 stringify は実際には提供されていない。パースから先は動かないんだと思う。