diff --git a/src/Illuminate/Conditionable/Traits/Conditionable.php b/src/Illuminate/Conditionable/Traits/Conditionable.php index 0f8a3a029ff6..81451bcded5c 100644 --- a/src/Illuminate/Conditionable/Traits/Conditionable.php +++ b/src/Illuminate/Conditionable/Traits/Conditionable.php @@ -13,7 +13,7 @@ trait Conditionable * @template TWhenParameter * @template TWhenReturnType * - * @param (callable($this): TWhenParameter)|TWhenParameter $value + * @param (\Closure($this): TWhenParameter)|TWhenParameter $value * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default * @return $this|TWhenReturnType @@ -41,7 +41,7 @@ public function when($value, callable $callback = null, callable $default = null * @template TUnlessParameter * @template TUnlessReturnType * - * @param (callable($this): TUnlessParameter)|TUnlessParameter $value + * @param (\Closure($this): TUnlessParameter)|TUnlessParameter $value * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default * @return $this|TUnlessReturnType diff --git a/types/Support/Collection.php b/types/Support/Collection.php index a2eaead80465..54b387ed9132 100644 --- a/types/Support/Collection.php +++ b/types/Support/Collection.php @@ -12,6 +12,15 @@ /** @var Traversable $traversable */ $traversable = []; +class Invokable +{ + public function __invoke(): string + { + return 'Taylor'; + } +} +$invokable = new Invokable(); + assertType('Illuminate\Support\Collection', $collection); assertType('Illuminate\Support\Collection', collect(['string'])); @@ -294,6 +303,11 @@ function ($collection, $count) { ) ); +assertType('Illuminate\Support\Collection|void', $collection->when($invokable, function ($collection, $param) { + assertType('Illuminate\Support\Collection', $collection); + assertType('Invokable', $param); +})); + assertType('bool|Illuminate\Support\Collection', $collection->whenEmpty(function ($collection) { assertType('Illuminate\Support\Collection', $collection); @@ -376,6 +390,11 @@ function ($collection, $count) { ) ); +assertType('Illuminate\Support\Collection|void', $collection->unless($invokable, function ($collection, $param) { + assertType('Illuminate\Support\Collection', $collection); + assertType('Invokable', $param); +})); + assertType('bool|Illuminate\Support\Collection', $collection->unlessEmpty(function ($collection) { assertType('Illuminate\Support\Collection', $collection);