3232use Psr \Http \Message \RequestInterface ;
3333use Symfony \Component \VarDumper \VarDumper ;
3434
35+ /**
36+ * @template TAsync of bool = false
37+ */
3538class PendingRequest
3639{
3740 use Conditionable, Macroable;
@@ -193,7 +196,7 @@ class PendingRequest
193196 /**
194197 * Whether the requests should be asynchronous.
195198 *
196- * @var bool
199+ * @var TAsync
197200 */
198201 protected $ async = false ;
199202
@@ -813,7 +816,7 @@ public function dd()
813816 *
814817 * @param string $url
815818 * @param array|string|null $query
816- * @return \Illuminate\Http\Client\Response| \GuzzleHttp\Promise\PromiseInterface
819+ * @return (TAsync is false ? \Illuminate\Http\Client\Response : \GuzzleHttp\Promise\PromiseInterface)
817820 *
818821 * @throws \Illuminate\Http\Client\ConnectionException
819822 */
@@ -829,7 +832,7 @@ public function get(string $url, $query = null)
829832 *
830833 * @param string $url
831834 * @param array|string|null $query
832- * @return \Illuminate\Http\Client\Response| \GuzzleHttp\Promise\PromiseInterface
835+ * @return (TAsync is false ? \Illuminate\Http\Client\Response : \GuzzleHttp\Promise\PromiseInterface)
833836 *
834837 * @throws \Illuminate\Http\Client\ConnectionException
835838 */
@@ -845,7 +848,7 @@ public function head(string $url, $query = null)
845848 *
846849 * @param string $url
847850 * @param array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data
848- * @return \Illuminate\Http\Client\Response| \GuzzleHttp\Promise\PromiseInterface
851+ * @return (TAsync is false ? \Illuminate\Http\Client\Response : \GuzzleHttp\Promise\PromiseInterface)
849852 *
850853 * @throws \Illuminate\Http\Client\ConnectionException
851854 */
@@ -861,7 +864,7 @@ public function post(string $url, $data = [])
861864 *
862865 * @param string $url
863866 * @param array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data
864- * @return \Illuminate\Http\Client\Response| \GuzzleHttp\Promise\PromiseInterface
867+ * @return (TAsync is false ? \Illuminate\Http\Client\Response : \GuzzleHttp\Promise\PromiseInterface)
865868 *
866869 * @throws \Illuminate\Http\Client\ConnectionException
867870 */
@@ -877,7 +880,7 @@ public function patch(string $url, $data = [])
877880 *
878881 * @param string $url
879882 * @param array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data
880- * @return \Illuminate\Http\Client\Response| \GuzzleHttp\Promise\PromiseInterface
883+ * @return (TAsync is false ? \Illuminate\Http\Client\Response : \GuzzleHttp\Promise\PromiseInterface)
881884 *
882885 * @throws \Illuminate\Http\Client\ConnectionException
883886 */
@@ -893,7 +896,7 @@ public function put(string $url, $data = [])
893896 *
894897 * @param string $url
895898 * @param array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data
896- * @return \Illuminate\Http\Client\Response| \GuzzleHttp\Promise\PromiseInterface
899+ * @return (TAsync is false ? \Illuminate\Http\Client\Response : \GuzzleHttp\Promise\PromiseInterface)
897900 *
898901 * @throws \Illuminate\Http\Client\ConnectionException
899902 */
@@ -974,7 +977,7 @@ public function batch(callable $callback): Batch
974977 * @param string $method
975978 * @param string $url
976979 * @param array $options
977- * @return \Illuminate\Http\Client\Response| \Illuminate\Http\Client\Promises\LazyPromise
980+ * @return (TAsync is false ? \Illuminate\Http\Client\Response : \Illuminate\Http\Client\Promises\LazyPromise)
978981 *
979982 * @throws \Exception
980983 * @throws \Illuminate\Http\Client\ConnectionException
@@ -1639,8 +1642,12 @@ public function isAllowedRequestUrl($url)
16391642 /**
16401643 * Toggle asynchronicity in requests.
16411644 *
1642- * @param bool $async
1643- * @return $this
1645+ * @template T of bool = true
1646+ *
1647+ * @param T $async
1648+ * @return self<T>
1649+ *
1650+ * @phpstan-self-out self<T>
16441651 */
16451652 public function async (bool $ async = true )
16461653 {
0 commit comments