// RUN: %target-swift-frontend -enable-experimental-feature Macros -dump-ast %s -module-name MacrosTest 2>&1 | %FileCheck %s
-enable-experimental-feature Macros
これで有効化していそうだけど、定義したプラグインを読み込ませている箇所が見当たらないなあstruct StringifyMacro: _CompilerPlugin { static func _name() -> (UnsafePointer<UInt8>, count: Int) { var name = "customStringify"
名前が stringify
じゃない・・・// 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
お、こっちはそれっぽいですねInputs/macro_definition.swift
を MacroDefinition
モジュールとしてビルドして-load-plugin-library
で、 MacroDefinition
を読み込ませている-dump-ast
なんで#stringify
をパースさせているだけだ。 stringify
は実際には提供されていない。パースから先は動かないんだと思う。