|
10 | 10 | $deferredB = new Deferred();
|
11 | 11 | $deferredB->resolve(42);
|
12 | 12 | assertType('React\Promise\PromiseInterface<int>', $deferredB->promise());
|
| 13 | + |
| 14 | +// $deferred = new Deferred(); |
| 15 | +// $deferred->resolve(42); |
| 16 | +// assertType('React\Promise\Deferred<int>', $deferred); |
| 17 | + |
| 18 | +// $deferred = new Deferred(); |
| 19 | +// $deferred->resolve(true); |
| 20 | +// $deferred->resolve('ignored'); |
| 21 | +// assertType('React\Promise\Deferred<bool>', $deferred); |
| 22 | + |
| 23 | +// $deferred = new Deferred(); |
| 24 | +// $deferred->reject(new \RuntimeException()); |
| 25 | +// assertType('React\Promise\Deferred<never>', $deferred); |
| 26 | + |
| 27 | +// invalid number of arguments passed to $canceller |
| 28 | +/** @phpstan-ignore-next-line */ |
| 29 | +$deferred = new Deferred(function ($a, $b, $c) { }); |
| 30 | +assertType('React\Promise\Deferred<mixed>', $deferred); |
| 31 | + |
| 32 | +// invalid types for arguments of $canceller |
| 33 | +/** @phpstan-ignore-next-line */ |
| 34 | +$deferred = new Deferred(function (int $a, string $b) { }); |
| 35 | +assertType('React\Promise\Deferred<mixed>', $deferred); |
| 36 | + |
| 37 | +// invalid number of arguments passed to $resolve |
| 38 | +$deferred = new Deferred(function (callable $resolve) { |
| 39 | + /** @phpstan-ignore-next-line */ |
| 40 | + $resolve(); |
| 41 | +}); |
| 42 | +assertType('React\Promise\Deferred<mixed>', $deferred); |
| 43 | + |
| 44 | +// invalid type passed to $reject |
| 45 | +$deferred = new Deferred(function (callable $resolve, callable $reject) { |
| 46 | + /** @phpstan-ignore-next-line */ |
| 47 | + $reject(2); |
| 48 | +}); |
| 49 | +assertType('React\Promise\Deferred<mixed>', $deferred); |
0 commit comments