Skip to content

Commit ad67ac0

Browse files
committed
Mark arg in range as generated, closes #15037
1 parent 88cbabf commit ad67ac0

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

lib/elixir/lib/kernel.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4781,7 +4781,7 @@ defmodule Kernel do
47814781

47824782
defp in_range_literal(left, first, last, step) when step > 0 do
47834783
quoted =
4784-
quote do
4784+
quote generated: true do
47854785
Kernel.and(
47864786
unquote(generated_is_integer(left)),
47874787
unquote(increasing_compare(left, first, last))
@@ -4793,7 +4793,7 @@ defmodule Kernel do
47934793

47944794
defp in_range_literal(left, first, last, step) when step < 0 do
47954795
quoted =
4796-
quote do
4796+
quote generated: true do
47974797
Kernel.and(
47984798
unquote(generated_is_integer(left)),
47994799
unquote(decreasing_compare(left, first, last))
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
defmodule Dialyzer.InRange do
2+
def string_to_number_in_range(x) do
3+
String.to_integer(x) in 1..10
4+
end
5+
end

lib/elixir/test/elixir/kernel/dialyzer_test.exs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@ defmodule Kernel.DialyzerTest do
113113
assert_dialyze_no_warnings!(context)
114114
end
115115

116+
test "no warnings on in range", context do
117+
copy_beam!(context, Dialyzer.InRange)
118+
assert_dialyze_no_warnings!(context)
119+
end
120+
116121
test "no warnings on macrocallback", context do
117122
copy_beam!(context, Dialyzer.Macrocallback)
118123
copy_beam!(context, Dialyzer.Macrocallback.Impl)

0 commit comments

Comments
 (0)