「通常の」コードでは、クラスがorklass.is_a?(Reference.class)
で実装されているかどうかを確認するために使用できます。class
struct
Array.is_a?(Reference.class) #=> true
Tuple.is_a?(Reference.class) #=> false
ただし、マクロで同じことを行って、上記のクラス/構造体を再度開く方法がわかりません。
例: クラスをマクロに渡す場合Array
、 で始まるコードを生成する必要がありますclass Array
が、 a のTuple
場合はstruct Tuple
.
Crystal::Macrosのドキュメントを何度も読みましたが、必要なことを実行してコンパイルできるコードを思いつくことができません。