Skip to content

Issue #273: PHPMD version 3.x compatibility #239

Issue #273: PHPMD version 3.x compatibility

Issue #273: PHPMD version 3.x compatibility #239

Triggered via pull request February 20, 2026 12:11
Status Failure
Total duration 2m 18s
Artifacts

php.yml

on: pull_request
Matrix: phpqa
Fit to window
Zoom out
Zoom in

Annotations

77 errors and 50 warnings
phpqa (7.3)
Process completed with exit code 1.
phpqa (8, yes, 1)
Process completed with exit code 1.
phpqa (8, yes, 1): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
phpqa (8, yes, 1): tests/RunningToolTest.php#L7
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8, yes, 1): tests/OptionsTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8, yes, 1): tests/Config/ConfigTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8, yes, 1): src/paths.php#L51
Parameter #1 $array of function array_unique expects an array of values castable to string, array<int, array<int, string>|string> given.
phpqa (8, yes, 1): src/Tools/Tools.php#L23
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.ExitExpression)): Unexpected token ".ExitExpression)", expected ')' at offset 27 on line 1
phpqa (8, yes, 1): src/Tools/GetVersions.php#L148
Call to function method_exists() with 'Symfony\\Component…' and 'fromShellCommandline' will always evaluate to true.
phpqa (8, yes, 1): src/Tools/Analyzer/Phpstan.php#L23
Parameter #1 $array (array<non-falsy-string>) to function array_filter does not contain falsy values, the array will always stay the same.
phpqa (8, yes, 1): src/Task/AssetsLoader.php#L46
Parameter #3 $value of function curl_setopt expects bool, int given.
phpqa (7.1, yes, 1)
Process completed with exit code 1.
RedundantCondition: src/CodeAnalysisTasks.php#L71
src/CodeAnalysisTasks.php:71:30: RedundantCondition: Operand of type Symfony\Component\Console\Input\bool is always truthy (see https://psalm.dev/122)
phpqa (8.1, yes): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
phpqa (8.1, yes): tests/RunningToolTest.php#L7
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.1, yes): tests/OptionsTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.1, yes): tests/Config/ConfigTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.1, yes): src/paths.php#L51
Parameter #1 $array of function array_unique expects an array of values castable to string, array<int, array<int, string>|string> given.
phpqa (8.1, yes): src/Tools/Tools.php#L23
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.ExitExpression)): Unexpected token ".ExitExpression)", expected ')' at offset 27 on line 1
phpqa (8.1, yes): src/Tools/GetVersions.php#L148
Call to function method_exists() with 'Symfony\\Component…' and 'fromShellCommandline' will always evaluate to true.
phpqa (8.1, yes): src/Tools/Analyzer/Phpstan.php#L23
Parameter #1 $array (array<non-falsy-string>) to function array_filter does not contain falsy values, the array will always stay the same.
phpqa (8.1, yes): src/Task/AssetsLoader.php#L46
Parameter #3 $value of function curl_setopt expects bool, int given.
MethodSignatureMismatch: RoboFile.php#L5
RoboFile.php:5:7: MethodSignatureMismatch: Method Robo\Common\IO::setInput with return type 'Robo\Common\void' is different to return type 'Symfony\Component\Console\Input\void' of inherited method Symfony\Component\Console\Input\InputAwareInterface::setInput (see https://psalm.dev/042)
phpqa (8.3, yes): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
phpqa (8.3, yes): tests/RunningToolTest.php#L7
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.3, yes): tests/OptionsTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.3, yes): tests/Config/ConfigTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.3, yes): src/paths.php#L51
Parameter #1 $array of function array_unique expects an array of values castable to string, array<int, array<int, string>|string> given.
phpqa (8.3, yes): src/Tools/Tools.php#L23
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.ExitExpression)): Unexpected token ".ExitExpression)", expected ')' at offset 27 on line 1
phpqa (8.3, yes): src/Tools/GetVersions.php#L148
Call to function method_exists() with 'Symfony\\Component…' and 'fromShellCommandline' will always evaluate to true.
phpqa (8.3, yes): src/Tools/Analyzer/Phpstan.php#L23
Parameter #1 $array (array<non-falsy-string>) to function array_filter does not contain falsy values, the array will always stay the same.
phpqa (8.3, yes): src/Task/AssetsLoader.php#L46
Parameter #3 $value of function curl_setopt expects bool, int given.
phpqa (7.4, yes)
Process completed with exit code 1.
phpqa (7.4, yes): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
phpqa (7.4, yes): tests/RunningToolTest.php#L7
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (7.4, yes): tests/OptionsTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (7.4, yes): tests/Config/ConfigTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (7.4, yes): src/paths.php#L51
Parameter #1 $array of function array_unique expects an array of values castable to string, array<int, array<int, string>|string> given.
phpqa (7.4, yes): src/Tools/Tools.php#L23
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.ExitExpression)): Unexpected token ".ExitExpression)", expected ')' at offset 27 on line 1
phpqa (7.4, yes): src/Tools/GetVersions.php#L148
Call to function method_exists() with 'Symfony\\Component…' and 'fromShellCommandline' will always evaluate to true.
phpqa (7.4, yes): src/Tools/Analyzer/Phpstan.php#L23
Parameter #1 $array (array<non-falsy-string>) to function array_filter does not contain falsy values, the array will always stay the same.
phpqa (7.4, yes): src/Task/AssetsLoader.php#L46
Parameter #3 $value of function curl_setopt expects bool, int given.
MethodSignatureMismatch: RoboFile.php#L5
RoboFile.php:5:7: MethodSignatureMismatch: Method Robo\Common\IO::setInput with return type 'Robo\Common\void' is different to return type 'Symfony\Component\Console\Input\void' of inherited method Symfony\Component\Console\Input\InputAwareInterface::setInput (see https://psalm.dev/042)
phpqa (8.2, yes): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
phpqa (8.2, yes): tests/RunningToolTest.php#L7
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.2, yes): tests/OptionsTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.2, yes): tests/Config/ConfigTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.2, yes): src/paths.php#L51
Parameter #1 $array of function array_unique expects an array of values castable to string, array<int, array<int, string>|string> given.
phpqa (8.2, yes): src/Tools/Tools.php#L23
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.ExitExpression)): Unexpected token ".ExitExpression)", expected ')' at offset 27 on line 1
phpqa (8.2, yes): src/Tools/GetVersions.php#L148
Call to function method_exists() with 'Symfony\\Component…' and 'fromShellCommandline' will always evaluate to true.
phpqa (8.2, yes): src/Tools/Analyzer/Phpstan.php#L23
Parameter #1 $array (array<non-falsy-string>) to function array_filter does not contain falsy values, the array will always stay the same.
phpqa (8.2, yes): src/Task/AssetsLoader.php#L46
Parameter #3 $value of function curl_setopt expects bool, int given.
phpqa (7.2, yes)
Process completed with exit code 1.
phpqa (7.2, yes): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
MethodSignatureMismatch: RoboFile.php#L5
RoboFile.php:5:7: MethodSignatureMismatch: Method Robo\Common\IO::setInput with return type 'Robo\Common\void' is different to return type 'Symfony\Component\Console\Input\void' of inherited method Symfony\Component\Console\Input\InputAwareInterface::setInput (see https://psalm.dev/042)
phpqa (8.4, yes): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
phpqa (8.4, yes): tests/RunningToolTest.php#L7
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.4, yes): tests/OptionsTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.4, yes): tests/Config/ConfigTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.4, yes): src/paths.php#L51
Parameter #1 $array of function array_unique expects an array of values castable to string, array<int, array<int, string>|string> given.
phpqa (8.4, yes): src/Tools/Tools.php#L23
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.ExitExpression)): Unexpected token ".ExitExpression)", expected ')' at offset 27 on line 1
phpqa (8.4, yes): src/Tools/GetVersions.php#L148
Call to function method_exists() with 'Symfony\\Component…' and 'fromShellCommandline' will always evaluate to true.
phpqa (8.4, yes): src/Tools/Analyzer/Phpstan.php#L23
Parameter #1 $array (array<non-falsy-string>) to function array_filter does not contain falsy values, the array will always stay the same.
phpqa (8.4, yes): src/Task/AssetsLoader.php#L46
Parameter #3 $value of function curl_setopt expects bool, int given.
phpqa (8.5, yes): tests/RunningToolTest.php#L111
Call to method getExitCode() on an unknown class Prophecy\Prophecy\ObjectProphecy.
phpqa (8.5, yes): tests/RunningToolTest.php#L87
Invalid array key type null.
phpqa (8.5, yes): tests/RunningToolTest.php#L7
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.5, yes): tests/OptionsTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.5, yes): tests/Config/ConfigTest.php#L5
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.TooManyPublicMethods)): Unexpected token ".TooManyPublicMethods)", expected ')' at offset 27 on line 1
phpqa (8.5, yes): src/paths.php#L51
Parameter #1 $array of function array_unique expects an array of values castable to string, array<int, array<int, string>|string> given.
phpqa (8.5, yes): src/Tools/Tools.php#L23
PHPDoc tag `@SuppressWarnings` has invalid value ((PHPMD.ExitExpression)): Unexpected token ".ExitExpression)", expected ')' at offset 27 on line 1
phpqa (8.5, yes): src/Tools/GetVersions.php#L148
Call to function method_exists() with 'Symfony\\Component…' and 'fromShellCommandline' will always evaluate to true.
phpqa (8.5, yes): src/Tools/Analyzer/Phpstan.php#L23
Parameter #1 $array (array<non-falsy-string>) to function array_filter does not contain falsy values, the array will always stay the same.
phpqa (8.5, yes): src/Task/AssetsLoader.php#L46
Parameter #3 $value of function curl_setopt expects bool, int given.
phpqa (7)
Process completed with exit code 1.
phpqa (5.5, prefer-stable)
Process completed with exit code 1.
phpqa (5.6, yes, 1)
Process completed with exit code 1.
MissingParamType: src/CodeAnalysisTasks.php#L42
src/CodeAnalysisTasks.php:42:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L41
src/CodeAnalysisTasks.php:41:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::ci does not have a return type (see https://psalm.dev/050)
DeprecatedMethod: src/CodeAnalysisTasks.php#L24
src/CodeAnalysisTasks.php:24:51: DeprecatedMethod: The method Robo\Common\OutputAwareTrait::getOutput has been marked as deprecated (see https://psalm.dev/001)
MissingParamType: src/CodeAnalysisTasks.php#L19
src/CodeAnalysisTasks.php:19:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L18
src/CodeAnalysisTasks.php:18:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::tools does not have a return type, expecting void (see https://psalm.dev/050)
MissingConstructor: src/CodeAnalysisTasks.php#L12
src/CodeAnalysisTasks.php:12:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$options, but no constructor (see https://psalm.dev/073)
MissingConstructor: src/CodeAnalysisTasks.php#L10
src/CodeAnalysisTasks.php:10:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$tools, but no constructor (see https://psalm.dev/073)
ClassMustBeFinal: RoboFile.php#L5
RoboFile.php:5:7: ClassMustBeFinal: Class Edge\QA\RoboFile is never extended and is not part of the public API, and thus must be made final. (see https://psalm.dev/361)
UnusedClass: RoboFile.php#L5
RoboFile.php:5:7: UnusedClass: Class Edge\QA\RoboFile is never used (see https://psalm.dev/075)
DeprecatedInterface: RoboFile.php#L5
RoboFile.php:5:7: DeprecatedInterface: Robo\Contract\OutputAwareInterface is marked deprecated (see https://psalm.dev/152)
MissingParamType: src/CodeAnalysisTasks.php#L42
src/CodeAnalysisTasks.php:42:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L41
src/CodeAnalysisTasks.php:41:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::ci does not have a return type (see https://psalm.dev/050)
DeprecatedMethod: src/CodeAnalysisTasks.php#L24
src/CodeAnalysisTasks.php:24:51: DeprecatedMethod: The method Robo\Common\OutputAwareTrait::getOutput has been marked as deprecated (see https://psalm.dev/001)
MissingParamType: src/CodeAnalysisTasks.php#L19
src/CodeAnalysisTasks.php:19:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L18
src/CodeAnalysisTasks.php:18:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::tools does not have a return type, expecting void (see https://psalm.dev/050)
MissingConstructor: src/CodeAnalysisTasks.php#L12
src/CodeAnalysisTasks.php:12:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$options, but no constructor (see https://psalm.dev/073)
MissingConstructor: src/CodeAnalysisTasks.php#L10
src/CodeAnalysisTasks.php:10:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$tools, but no constructor (see https://psalm.dev/073)
ClassMustBeFinal: RoboFile.php#L5
RoboFile.php:5:7: ClassMustBeFinal: Class Edge\QA\RoboFile is never extended and is not part of the public API, and thus must be made final. (see https://psalm.dev/361)
UnusedClass: RoboFile.php#L5
RoboFile.php:5:7: UnusedClass: Class Edge\QA\RoboFile is never used (see https://psalm.dev/075)
DeprecatedInterface: RoboFile.php#L5
RoboFile.php:5:7: DeprecatedInterface: Robo\Contract\OutputAwareInterface is marked deprecated (see https://psalm.dev/152)
MissingParamType: src/CodeAnalysisTasks.php#L42
src/CodeAnalysisTasks.php:42:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L41
src/CodeAnalysisTasks.php:41:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::ci does not have a return type (see https://psalm.dev/050)
DeprecatedMethod: src/CodeAnalysisTasks.php#L24
src/CodeAnalysisTasks.php:24:51: DeprecatedMethod: The method Robo\Common\OutputAwareTrait::getOutput has been marked as deprecated (see https://psalm.dev/001)
MissingParamType: src/CodeAnalysisTasks.php#L19
src/CodeAnalysisTasks.php:19:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L18
src/CodeAnalysisTasks.php:18:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::tools does not have a return type, expecting void (see https://psalm.dev/050)
MissingConstructor: src/CodeAnalysisTasks.php#L12
src/CodeAnalysisTasks.php:12:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$options, but no constructor (see https://psalm.dev/073)
MissingConstructor: src/CodeAnalysisTasks.php#L10
src/CodeAnalysisTasks.php:10:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$tools, but no constructor (see https://psalm.dev/073)
ClassMustBeFinal: RoboFile.php#L5
RoboFile.php:5:7: ClassMustBeFinal: Class Edge\QA\RoboFile is never extended and is not part of the public API, and thus must be made final. (see https://psalm.dev/361)
UnusedClass: RoboFile.php#L5
RoboFile.php:5:7: UnusedClass: Class Edge\QA\RoboFile is never used (see https://psalm.dev/075)
DeprecatedInterface: RoboFile.php#L5
RoboFile.php:5:7: DeprecatedInterface: Robo\Contract\OutputAwareInterface is marked deprecated (see https://psalm.dev/152)
MissingParamType: src/CodeAnalysisTasks.php#L42
src/CodeAnalysisTasks.php:42:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L41
src/CodeAnalysisTasks.php:41:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::ci does not have a return type (see https://psalm.dev/050)
DeprecatedMethod: src/CodeAnalysisTasks.php#L24
src/CodeAnalysisTasks.php:24:51: DeprecatedMethod: The method Robo\Common\OutputAwareTrait::getOutput has been marked as deprecated (see https://psalm.dev/001)
MissingParamType: src/CodeAnalysisTasks.php#L19
src/CodeAnalysisTasks.php:19:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L18
src/CodeAnalysisTasks.php:18:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::tools does not have a return type, expecting void (see https://psalm.dev/050)
MissingConstructor: src/CodeAnalysisTasks.php#L12
src/CodeAnalysisTasks.php:12:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$options, but no constructor (see https://psalm.dev/073)
MissingConstructor: src/CodeAnalysisTasks.php#L10
src/CodeAnalysisTasks.php:10:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$tools, but no constructor (see https://psalm.dev/073)
ClassMustBeFinal: RoboFile.php#L5
RoboFile.php:5:7: ClassMustBeFinal: Class Edge\QA\RoboFile is never extended and is not part of the public API, and thus must be made final. (see https://psalm.dev/361)
UnusedClass: RoboFile.php#L5
RoboFile.php:5:7: UnusedClass: Class Edge\QA\RoboFile is never used (see https://psalm.dev/075)
DeprecatedInterface: RoboFile.php#L5
RoboFile.php:5:7: DeprecatedInterface: Robo\Contract\OutputAwareInterface is marked deprecated (see https://psalm.dev/152)
MissingParamType: src/CodeAnalysisTasks.php#L42
src/CodeAnalysisTasks.php:42:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L41
src/CodeAnalysisTasks.php:41:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::ci does not have a return type (see https://psalm.dev/050)
DeprecatedMethod: src/CodeAnalysisTasks.php#L24
src/CodeAnalysisTasks.php:24:51: DeprecatedMethod: The method Robo\Common\OutputAwareTrait::getOutput has been marked as deprecated (see https://psalm.dev/001)
MissingParamType: src/CodeAnalysisTasks.php#L19
src/CodeAnalysisTasks.php:19:9: MissingParamType: Parameter $opts has no provided type (see https://psalm.dev/154)
MissingReturnType: src/CodeAnalysisTasks.php#L18
src/CodeAnalysisTasks.php:18:21: MissingReturnType: Method Edge\QA\CodeAnalysisTasks::tools does not have a return type, expecting void (see https://psalm.dev/050)
MissingConstructor: src/CodeAnalysisTasks.php#L12
src/CodeAnalysisTasks.php:12:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$options, but no constructor (see https://psalm.dev/073)
MissingConstructor: src/CodeAnalysisTasks.php#L10
src/CodeAnalysisTasks.php:10:13: MissingConstructor: Edge\QA\RoboFile has an uninitialized property Edge\QA\CodeAnalysisTasks::$tools, but no constructor (see https://psalm.dev/073)
ClassMustBeFinal: RoboFile.php#L5
RoboFile.php:5:7: ClassMustBeFinal: Class Edge\QA\RoboFile is never extended and is not part of the public API, and thus must be made final. (see https://psalm.dev/361)
UnusedClass: RoboFile.php#L5
RoboFile.php:5:7: UnusedClass: Class Edge\QA\RoboFile is never used (see https://psalm.dev/075)
DeprecatedInterface: RoboFile.php#L5
RoboFile.php:5:7: DeprecatedInterface: Robo\Contract\OutputAwareInterface is marked deprecated (see https://psalm.dev/152)