This is a drastically simplified example of what I’m trying to do:
defmodule X do def call(val) do IO.inspect val end end defmodule Y do the_call = quote do: X.call(val) def call_it(val) do unquote(the_call) end end
The problem is, I can’t figure out how to get the
val from the quoted block to reference the argument to the
call_it function. When I run this code in iex, the result is:
# Refers to `val` in function body warning: variable "val" does not exist and is being expanded to "val()", please use parentheses to remove the ambiguity or change the variable name iex # Refers to `val` argument in function head warning: variable "val" is unused (if the variable is not meant to be used, prefix it with an underscore) iex:8 ** (CompileError) iex: undefined function val/0 (elixir) src/elixir_locals.erl:107: :elixir_locals."-ensure_no_undefined_local/3-lc$^0/1-0-"/2 (elixir) src/elixir_locals.erl:108: anonymous fn/3 in :elixir_locals.ensure_no_undefined_local/3
What can I do?