Skip to content

Commit 92cf894

Browse files
committed
Require a trailing underscore to consider it a compiler variable
1 parent e798fd7 commit 92cf894

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

lib/elixir/src/elixir_env.erl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,9 @@ is_unused_var(Name) ->
134134
_ -> true
135135
end.
136136

137+
is_compiler_var([$_]) -> true;
137138
is_compiler_var([Var | Rest]) when Var =:= $_; Var >= $A, Var =< $Z -> is_compiler_var(Rest);
138-
is_compiler_var([_ | _]) -> false;
139-
is_compiler_var([]) -> true.
139+
is_compiler_var(_) -> false.
140140

141141
format_error({unused_var, Name}) ->
142142
case atom_to_list(Name) of

lib/elixir/test/elixir/kernel/warning_test.exs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,13 @@ defmodule Kernel.WarningTest do
9292
Code.eval_string("""
9393
defmodule Sample do
9494
def hello(__MODULE___), do: :ok
95+
def world(_R), do: :ok
9596
end
9697
""")
9798
end)
9899

99100
assert output =~ "unknown compiler variable \"__MODULE___\""
101+
refute output =~ "unknown compiler variable \"_R\""
100102
after
101103
purge(Sample)
102104
end

0 commit comments

Comments
 (0)