From e74014d287c2f7b19fecf0cdbbde794e303ee764 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Thu, 13 Aug 2026 10:28:11 +0200 Subject: [PATCH] Improve Enum.min_max* specs --- lib/elixir/lib/enum.ex | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/elixir/lib/enum.ex b/lib/elixir/lib/enum.ex index 937458faec6..fe88c59607d 100644 --- a/lib/elixir/lib/enum.ex +++ b/lib/elixir/lib/enum.ex @@ -2229,10 +2229,11 @@ defmodule Enum do nil """ - @spec min_max(t, (element, element -> boolean) | module()) :: {element, element} - @spec min_max(t, (-> empty_result)) :: {element, element} | empty_result when empty_result: any + @spec min_max(t, (element, element -> boolean) | module()) :: {min :: element, max :: element} + @spec min_max(t, (-> empty_result)) :: {min :: element, max :: element} | empty_result + when empty_result: any @spec min_max(t, (element, element -> boolean) | module(), (-> empty_result)) :: - {element, element} | empty_result + {min :: element, max :: element} | empty_result when empty_result: any def min_max(enumerable, sorter_or_empty_fallback \\ fn -> raise Enum.EmptyError end) @@ -2343,14 +2344,14 @@ defmodule Enum do """ @spec min_max_by(t, (element -> any), (element, element -> boolean) | module()) :: - {element, element} | empty_result + {min :: element, max :: element} | empty_result when empty_result: any @spec min_max_by( t, (element -> any), (element, element -> boolean) | module(), (-> empty_result) - ) :: {element, element} | empty_result + ) :: {min :: element, max :: element} | empty_result when empty_result: any def min_max_by( enumerable,