Skip to content

Commit b805042

Browse files
committed
Update docblock type annotations
Updated docblocks with new syntax supported by PhpStorm and Psalm.
1 parent b80a258 commit b805042

13 files changed

Lines changed: 53 additions & 60 deletions

src/EventLoop.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ protected function now(): float
7373
* Does NOT create an event callback, thus CAN NOT be marked as disabled or unreferenced.
7474
* Use {@see EventLoop::defer()} if you need these features.
7575
*
76-
* @param \Closure $closure The callback to queue.
76+
* @param \Closure(...):void $closure The callback to queue.
7777
* @param mixed ...$args The callback arguments.
7878
*/
7979
public static function queue(\Closure $closure, mixed ...$args): void

src/EventLoop/Driver.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ public function isRunning(): bool;
5656
* Does NOT create an event callback, thus CAN NOT be marked as disabled or unreferenced.
5757
* Use {@see EventLoop::defer()} if you need these features.
5858
*
59-
* @param \Closure $closure The callback to queue.
60-
* @param mixed ...$args The callback arguments.
59+
* @param \Closure(...):void $closure The callback to queue.
60+
* @param mixed ...$args The callback arguments.
6161
*/
6262
public function queue(\Closure $closure, mixed ...$args): void;
6363

@@ -246,7 +246,8 @@ public function unreference(string $callbackId): string;
246246
*
247247
* Subsequent calls to this method will overwrite the previous handler.
248248
*
249-
* @param null|\Closure(\Throwable):void $errorHandler The callback to execute. `null` will clear the current handler.
249+
* @param null|\Closure(\Throwable):void $errorHandler The callback to execute. `null` will clear the current
250+
* handler.
250251
*/
251252
public function setErrorHandler(?\Closure $errorHandler): void;
252253

src/EventLoop/Driver/EvDriver.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
final class EvDriver extends AbstractDriver
1616
{
17-
/** @var \EvSignal[]|null */
17+
/** @var array<string, \EvSignal>|null */
1818
private static ?array $activeSignals = null;
1919

2020
public static function isSupported(): bool
@@ -24,7 +24,7 @@ public static function isSupported(): bool
2424

2525
private \EvLoop $handle;
2626

27-
/** @var \EvWatcher[] */
27+
/** @var array<string, \EvWatcher> */
2828
private array $events = [];
2929

3030
private readonly \Closure $ioCallback;
@@ -33,7 +33,7 @@ public static function isSupported(): bool
3333

3434
private readonly \Closure $signalCallback;
3535

36-
/** @var \EvSignal[] */
36+
/** @var array<string, \EvSignal> */
3737
private array $signals = [];
3838

3939
public function __construct()

src/EventLoop/Driver/EventDriver.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
final class EventDriver extends AbstractDriver
1616
{
17-
/** @var \Event[]|null */
17+
/** @var array<string, \Event>|null */
1818
private static ?array $activeSignals = null;
1919

2020
public static function isSupported(): bool
@@ -23,11 +23,13 @@ public static function isSupported(): bool
2323
}
2424

2525
private \EventBase $handle;
26-
/** @var \Event[] */
26+
/** @var array<string, \Event> */
2727
private array $events = [];
2828
private readonly \Closure $ioCallback;
2929
private readonly \Closure $timerCallback;
3030
private readonly \Closure $signalCallback;
31+
32+
/** @var array<string, \Event> */
3133
private array $signals = [];
3234

3335
public function __construct()

src/EventLoop/Driver/StreamSelectDriver.php

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@
1515

1616
final class StreamSelectDriver extends AbstractDriver
1717
{
18-
/** @var resource[]|object[] */
18+
/** @var array<int, resource> */
1919
private array $readStreams = [];
2020

21-
/** @var StreamReadableCallback[][] */
21+
/** @var array<int, array<string, StreamReadableCallback>> */
2222
private array $readCallbacks = [];
2323

24-
/** @var resource[]|object[] */
24+
/** @var array<int, resource> */
2525
private array $writeStreams = [];
2626

27-
/** @var StreamWritableCallback[][] */
27+
/** @var array<int, array<string, StreamWritableCallback>> */
2828
private array $writeCallbacks = [];
2929

3030
private readonly TimerQueue $timerQueue;
3131

32-
/** @var SignalCallback[][] */
32+
/** @var array<int, array<string, SignalCallback>> */
3333
private array $signalCallbacks = [];
3434

3535
/** @var \SplQueue<int> */
@@ -49,7 +49,7 @@ public function __construct()
4949
$this->timerQueue = new TimerQueue();
5050
$this->signalHandling = \extension_loaded("pcntl");
5151

52-
$this->streamSelectErrorHandler = function ($errno, $message) {
52+
$this->streamSelectErrorHandler = function (int $errno, string $message): void {
5353
// Casing changed in PHP 8 from 'unable' to 'Unable'
5454
if (\stripos($message, "stream_select(): unable to select [4]: ") === 0) { // EINTR
5555
$this->streamSelectIgnoreResult = true;
@@ -86,8 +86,6 @@ public function __destruct()
8686
}
8787

8888
/**
89-
* {@inheritdoc}
90-
*
9189
* @throws UnsupportedFeatureException If the pcntl extension is not available.
9290
*/
9391
public function onSignal(int $signal, \Closure $closure): string
@@ -99,9 +97,6 @@ public function onSignal(int $signal, \Closure $closure): string
9997
return parent::onSignal($signal, $closure);
10098
}
10199

102-
/**
103-
* {@inheritdoc}
104-
*/
105100
public function getHandle(): mixed
106101
{
107102
return null;
@@ -144,9 +139,6 @@ protected function dispatch(bool $blocking): void
144139
}
145140
}
146141

147-
/**
148-
* {@inheritdoc}
149-
*/
150142
protected function activate(array $callbacks): void
151143
{
152144
foreach ($callbacks as $callback) {
@@ -191,9 +183,6 @@ protected function activate(array $callbacks): void
191183
}
192184
}
193185

194-
/**
195-
* {@inheritdoc}
196-
*/
197186
protected function deactivate(DriverCallback $callback): void
198187
{
199188
if ($callback instanceof StreamReadableCallback) {
@@ -232,8 +221,8 @@ protected function deactivate(DriverCallback $callback): void
232221
}
233222

234223
/**
235-
* @param resource[]|object[] $read
236-
* @param resource[]|object[] $write
224+
* @param array<int, resource> $read
225+
* @param array<int, resource> $write
237226
*/
238227
private function selectStreams(array $read, array $write, float $timeout): void
239228
{
@@ -283,9 +272,7 @@ private function selectStreams(array $read, array $write, float $timeout): void
283272
}
284273
}
285274

286-
\assert(\is_array($write)); // See https://github.com/vimeo/psalm/issues/3036
287-
288-
/** @var resource[]|object[]|null $except */
275+
/** @var array<int, resource>|null $except */
289276
if ($except) {
290277
foreach ($except as $key => $socket) {
291278
$write[$key] = $socket;

src/EventLoop/Driver/TracingDriver.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ final class TracingDriver implements Driver
1010
{
1111
private readonly Driver $driver;
1212

13-
/** @var true[] */
13+
/** @var array<string, true> */
1414
private array $enabledCallbacks = [];
1515

16-
/** @var true[] */
16+
/** @var array<string, true> */
1717
private array $unreferencedCallbacks = [];
1818

19-
/** @var string[] */
19+
/** @var array<string, string> */
2020
private array $creationTraces = [];
2121

22-
/** @var string[] */
22+
/** @var array<string, string> */
2323
private array $cancelTraces = [];
2424

2525
public function __construct(Driver $driver)

src/EventLoop/Driver/UvDriver.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ public static function isSupported(): bool
1919

2020
/** @var resource|\UVLoop A uv_loop resource created with uv_loop_new() */
2121
private $handle;
22-
/** @var resource[] */
22+
/** @var array<string, resource> */
2323
private array $events = [];
24-
/** @var DriverCallback[][] */
24+
/** @var array<int, array<array-key, DriverCallback>> */
2525
private array $callbacks = [];
26-
/** @var resource[] */
26+
/** @var array<int, resource> */
2727
private array $streams = [];
2828
private readonly \Closure $ioCallback;
2929
private readonly \Closure $timerCallback;

src/EventLoop/FiberLocal.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ private static function getFiberStorage(): \WeakMap
3535
$fiber = \Fiber::getCurrent();
3636

3737
if ($fiber === null) {
38-
$fiber = self::$mainFiber ??= new \Fiber(static function () {
38+
$fiber = self::$mainFiber ??= new \Fiber(static function (): void {
3939
// dummy fiber for main, as we need some object for the WeakMap
4040
});
4141
}

src/EventLoop/Internal/AbstractDriver.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,19 @@ abstract class AbstractDriver implements Driver
2828
private \Fiber $callbackFiber;
2929
private \Closure $errorCallback;
3030

31-
/** @var DriverCallback[] */
31+
/** @var array<string, DriverCallback> */
3232
private array $callbacks = [];
3333

34-
/** @var DriverCallback[] */
34+
/** @var array<string, DriverCallback> */
3535
private array $enableQueue = [];
3636

37-
/** @var DriverCallback[] */
37+
/** @var array<string, DriverCallback> */
3838
private array $enableDeferQueue = [];
3939

40-
/** @var null|\Closure(\Throwable) */
40+
/** @var null|\Closure(\Throwable):void */
4141
private ?\Closure $errorHandler = null;
42+
43+
/** @var null|\Closure():mixed */
4244
private ?\Closure $interrupt = null;
4345

4446
private readonly \Closure $interruptCallback;
@@ -501,6 +503,9 @@ private function invokeCallbacks(): void
501503
}
502504
}
503505

506+
/**
507+
* @param \Closure():mixed $interrupt
508+
*/
504509
private function setInterrupt(\Closure $interrupt): void
505510
{
506511
\assert($this->interrupt === null);

src/EventLoop/Internal/DriverSuspension.php

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,6 @@ final class DriverSuspension implements Suspension
1919

2020
private ?\FiberError $fiberError = null;
2121

22-
private readonly \Closure $run;
23-
24-
private readonly \Closure $queue;
25-
26-
private readonly \Closure $interrupt;
27-
2822
private bool $pending = false;
2923

3024
private readonly \WeakReference $suspensions;
@@ -36,13 +30,14 @@ final class DriverSuspension implements Suspension
3630
*
3731
* @internal
3832
*/
39-
public function __construct(\Closure $run, \Closure $queue, \Closure $interrupt, \WeakMap $suspensions)
40-
{
33+
public function __construct(
34+
private readonly \Closure $run,
35+
private readonly \Closure $queue,
36+
private readonly \Closure $interrupt,
37+
\WeakMap $suspensions
38+
) {
4139
$fiber = \Fiber::getCurrent();
4240

43-
$this->run = $run;
44-
$this->queue = $queue;
45-
$this->interrupt = $interrupt;
4641
$this->fiberRef = $fiber ? \WeakReference::create($fiber) : null;
4742
$this->suspensions = \WeakReference::create($suspensions);
4843
}

0 commit comments

Comments
 (0)