From afe79d8b17a3cc120a96201a43487c16279a0aef Mon Sep 17 00:00:00 2001 From: Marc-Andre Lafortune Date: Sun, 18 Oct 2020 15:20:03 -0400 Subject: [PATCH] Fix signature for `Enumerable#find`. --- stdlib/builtin/enumerable.rbs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/stdlib/builtin/enumerable.rbs b/stdlib/builtin/enumerable.rbs index a410db355..67ecd5e82 100644 --- a/stdlib/builtin/enumerable.rbs +++ b/stdlib/builtin/enumerable.rbs @@ -307,11 +307,17 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return] # ``` def to_h: () -> ::Hash[untyped, untyped] - def each_slice: (Integer n) { (::Array[Elem] arg0) -> untyped } -> NilClass + def each_slice: (Integer n) { (::Array[Elem]) -> untyped } -> NilClass | (Integer n) -> ::Enumerator[::Array[Elem], Return] - def find: (?Proc ifnone) { (Elem arg0) -> bool } -> Elem? - | (?Proc ifnone) -> ::Enumerator[Elem, Return] + interface _NotFound[T] + def call: () -> T + end + + def find: () { (Elem) -> bool } -> Elem? + | () -> ::Enumerator[Elem, Elem?] + | [T] (_NotFound[T] ifnone) { (Elem) -> bool } -> (Elem | T) + | [T] (_NotFound[T] ifnone) -> ::Enumerator[Elem, Elem | T] def flat_map: [U] () { (Elem arg0) -> U } -> U | () -> ::Enumerator[Elem, Return]