diff --git a/lib/igniter/code/common.ex b/lib/igniter/code/common.ex index 03b8f72..80d65c6 100644 --- a/lib/igniter/code/common.ex +++ b/lib/igniter/code/common.ex @@ -707,7 +707,7 @@ defmodule Igniter.Code.Common do {:__aliases__, _, parts} -> case current_env(zipper) do {:ok, env} -> - case Macro.Env.expand_alias(env, [], parts) do + case do_expand_alias(env, [], parts) do {:alias, value} -> Zipper.replace(zipper, {:__aliases__, [], Module.split(value)}) @@ -727,6 +727,16 @@ defmodule Igniter.Code.Common do zipper end + if Code.ensure_loaded?(Macro.Env) && function_exported?(Macro.Env, :expand_alias, 3) do + defp do_expand_alias(env, meta, parts) do + Macro.Env.expand_alias(env, meta, parts) + end + else + defp do_expand_alias(env, _, _) do + :error + end + end + @spec expand_aliases(Zipper.t()) :: Zipper.t() def expand_aliases(zipper) do Zipper.traverse(zipper, &expand_alias/1)