I try to modifiy the AST of a function.
In order to debug/test, I want to print the AST, but when I’m using ExUnit, it seems I can’t do it. Function can be executed properly but not ASTify (if this word exists) and printed.
Could someone help me on this or at least explain why this is happening.
I wrote a short example if you want to test.
defmodule MyModule do def my_function(fun) do fun.() end def my_function_ast(fun) do Macro.to_string(fun) |> IO.inspect() end end defmodule WeirdTest do use ExUnit.Case test "function is well executed" do assert 2 == MyModule.my_function(fn -> 1 + 1 end) end test "AST is not the one of the function but the test's one!!!" do # This returns: "#Function<0.107937300/0 in WeirdTest.\"test AST is not the one of the function but the test's one!!!\"/1>" MyModule.my_function_ast(fn -> 1 + 1 end) end # test "And this is raising an UndefinedError" do # fn -> # 1 + 1 # end # |> Code.string_to_quoted!() # |> IO.inspect() # end end