2828/**
2929 * This is a text processing task
3030 * @since 27.1.0
31- * @psalm-template T of ITaskType
32- * @psalm-template S as class-string<T>
33- * @psalm-template P as IProvider<T>
31+ * @psalm-template-covariant T of ITaskType
3432 */
3533final class Task implements \JsonSerializable {
3634 protected ?int $ id = null ;
@@ -74,7 +72,7 @@ final class Task implements \JsonSerializable {
7472 protected int $ status = self ::STATUS_UNKNOWN ;
7573
7674 /**
77- * @psalm-param S $type
75+ * @psalm-param class-string<T> $type
7876 * @param string $type
7977 * @param string $input
8078 * @param string $appId
@@ -92,7 +90,7 @@ final public function __construct(
9290 }
9391
9492 /**
95- * @psalm-param P $provider
93+ * @psalm-param IProvider<T> $provider
9694 * @param IProvider $provider
9795 * @return string
9896 * @since 27.1.0
@@ -109,7 +107,7 @@ public function visitProvider(IProvider $provider): string {
109107 }
110108
111109 /**
112- * @psalm-param P $provider
110+ * @psalm-param IProvider<T> $provider
113111 * @param IProvider $provider
114112 * @return bool
115113 * @since 27.1.0
@@ -119,7 +117,7 @@ public function canUseProvider(IProvider $provider): bool {
119117 }
120118
121119 /**
122- * @psalm-return S
120+ * @psalm-return class-string<T>
123121 * @since 27.1.0
124122 */
125123 final public function getType (): string {
@@ -207,7 +205,7 @@ final public function getUserId(): ?string {
207205 }
208206
209207 /**
210- * @psalm-return array{id: ?int, type: S , status: 0|1|2|3|4, userId: ?string, appId: string, input: string, output: ?string, identifier: string, completionExpectedAt: ?int}
208+ * @psalm-return array{id: ?int, type: class-string<T> , status: 0|1|2|3|4, userId: ?string, appId: string, input: string, output: ?string, identifier: string, completionExpectedAt: ?int}
211209 * @since 27.1.0
212210 */
213211 public function jsonSerialize (): array {
0 commit comments