diff --git a/lib/elixir_sense/core/state.ex b/lib/elixir_sense/core/state.ex index e0112567..960e09f0 100644 --- a/lib/elixir_sense/core/state.ex +++ b/lib/elixir_sense/core/state.ex @@ -1676,7 +1676,7 @@ defmodule ElixirSense.Core.State do {ast, state, env} end - def expand({:use, meta, _} = ast, state, env) do + def expand({:use, meta, [_ | _]} = ast, state, env) do alias ElixirSense.Core.MacroExpander line = Keyword.fetch!(meta, :line) diff --git a/test/elixir_sense/core/metadata_builder_test.exs b/test/elixir_sense/core/metadata_builder_test.exs index 8578bd07..d557b0a5 100644 --- a/test/elixir_sense/core/metadata_builder_test.exs +++ b/test/elixir_sense/core/metadata_builder_test.exs @@ -7450,6 +7450,20 @@ defmodule ElixirSense.Core.MetadataBuilderTest do end end + test "no endless loop on use variable" do + state = + """ + defmodule Some do + use + @spec my(number()) :: number() + def my(abc) do + abc + 1 + end + end + """ + |> string_to_state + end + defp string_to_state(string) do string |> Code.string_to_quoted(columns: true, token_metadata: true)