1
如何在我的代碼中訪問類型規範的定義?我希望在宏中使用它來執行一些代碼生成。以編程方式訪問typespec的定義
像這樣的東西將是理想的。
鑑於此模塊和類型指定:
defmodule MyMod do
@type t :: :ok | :error
end
我可以打電話給這樣的功能Code.get_type(MyMod, :t)
,它會返回定義表達式的AST:
{:::, [], [{:my_type, [], Elixir}, {:|, [], [:ok, :error]}]}
或可替代只是其中的AST類型:
{:|, [], [:ok, :error]}
您是否想要訪問此模塊已編譯完成後或從該模塊內? – Dogbert