Skip to content

Commit

Permalink
fix(TextProcessing): Make task type template param covariant
Browse files Browse the repository at this point in the history
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
  • Loading branch information
marcelklehr committed Dec 1, 2023
1 parent 546cf0e commit fe6d9e3
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 9 deletions.
2 changes: 1 addition & 1 deletion lib/public/TextProcessing/IProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
/**
* This is the interface that is implemented by apps that
* implement a text processing provider
* @template T of ITaskType
* @psalm-template-covariant T of ITaskType
* @since 27.1.0
*/
interface IProvider {
Expand Down
14 changes: 6 additions & 8 deletions lib/public/TextProcessing/Task.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,7 @@
/**
* This is a text processing task
* @since 27.1.0
* @psalm-template T of ITaskType
* @psalm-template S as class-string<T>
* @psalm-template P as IProvider<T>
* @psalm-template-covariant T of ITaskType
*/
final class Task implements \JsonSerializable {
protected ?int $id = null;
Expand Down Expand Up @@ -74,7 +72,7 @@ final class Task implements \JsonSerializable {
protected int $status = self::STATUS_UNKNOWN;

/**
* @psalm-param S $type
* @psalm-param class-string<T> $type
* @param string $type
* @param string $input
* @param string $appId
Expand All @@ -92,7 +90,7 @@ final public function __construct(
}

/**
* @psalm-param P $provider
* @psalm-param IProvider<T> $provider
* @param IProvider $provider
* @return string
* @since 27.1.0
Expand All @@ -109,7 +107,7 @@ public function visitProvider(IProvider $provider): string {
}

/**
* @psalm-param P $provider
* @psalm-param IProvider<T> $provider
* @param IProvider $provider
* @return bool
* @since 27.1.0
Expand All @@ -119,7 +117,7 @@ public function canUseProvider(IProvider $provider): bool {
}

/**
* @psalm-return S
* @psalm-return class-string<T>
* @since 27.1.0
*/
final public function getType(): string {
Expand Down Expand Up @@ -207,7 +205,7 @@ final public function getUserId(): ?string {
}

/**
* @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}
* @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}
* @since 27.1.0
*/
public function jsonSerialize(): array {
Expand Down

0 comments on commit fe6d9e3

Please sign in to comment.