From 84121d01f682b156d782182a29ad568352fd8568 Mon Sep 17 00:00:00 2001 From: Alex Gubarev Date: Tue, 28 Jul 2026 10:05:51 +0300 Subject: [PATCH 1/2] Fix Date.range/3 raises wrong exception for invalid step --- lib/elixir/lib/calendar/date.ex | 2 +- lib/elixir/test/elixir/calendar/date_range_test.exs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/elixir/lib/calendar/date.ex b/lib/elixir/lib/calendar/date.ex index 1bdb7895727..ad709413306 100644 --- a/lib/elixir/lib/calendar/date.ex +++ b/lib/elixir/lib/calendar/date.ex @@ -160,7 +160,7 @@ defmodule Date do ) do raise ArgumentError, "both dates must have matching calendar and the step must be a " <> - "non-zero integer, got: #{inspect(first)}, #{inspect(last)}, #{step}" + "non-zero integer, got: #{inspect(first)}, #{inspect(last)}, #{inspect(step)}" end defp range(first, first_days, last, last_days, calendar, step) do diff --git a/lib/elixir/test/elixir/calendar/date_range_test.exs b/lib/elixir/test/elixir/calendar/date_range_test.exs index 11ba41b2fe8..5d800640902 100644 --- a/lib/elixir/test/elixir/calendar/date_range_test.exs +++ b/lib/elixir/test/elixir/calendar/date_range_test.exs @@ -161,6 +161,13 @@ defmodule Date.RangeTest do assert_raise ArgumentError, message, fn -> Date.range(~D[2000-01-01], ~D[2000-01-31], step) end + + step = {1} + message = ~r/got: ~D\[2000-01-01\], ~D\[2000-02-01\], \{1\}/ + + assert_raise ArgumentError, message, fn -> + Date.range(~D[2000-01-01], ~D[2000-02-01], step) + end end describe "old date ranges" do From e83d350947f906a55b13e1fc5ce335b712a9bc08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 28 Jul 2026 09:34:51 +0200 Subject: [PATCH 2/2] Apply suggestion from @josevalim --- lib/elixir/test/elixir/calendar/date_range_test.exs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/elixir/test/elixir/calendar/date_range_test.exs b/lib/elixir/test/elixir/calendar/date_range_test.exs index 5d800640902..9c5730dec81 100644 --- a/lib/elixir/test/elixir/calendar/date_range_test.exs +++ b/lib/elixir/test/elixir/calendar/date_range_test.exs @@ -162,11 +162,8 @@ defmodule Date.RangeTest do Date.range(~D[2000-01-01], ~D[2000-01-31], step) end - step = {1} - message = ~r/got: ~D\[2000-01-01\], ~D\[2000-02-01\], \{1\}/ - - assert_raise ArgumentError, message, fn -> - Date.range(~D[2000-01-01], ~D[2000-02-01], step) + assert_raise ArgumentError, ~r/got: ~D\[2000-01-01\], ~D\[2000-02-01\], \{1\}/, fn -> + Date.range(~D[2000-01-01], ~D[2000-02-01], {1}) end end