Skip to content

Struct type

Struct type #91

Triggered via pull request September 2, 2024 10:03
Status Failure
Total duration 1m 32s
Artifacts 6

checks.yml

on: pull_request
Matrix: phpunit
Backward Compatibility
16s
Backward Compatibility
Matrix: check-dependencies
Matrix: code-style
Matrix: phpstan
Matrix: psalm
Matrix: infection
Fit to window
Zoom out
Zoom in

Annotations

12 errors and 66 warnings
PHPStan - 8.3 --prefer-lowest: tests/unit/Parser/TypeParserTest.php#L215
Parameter #4 $endColumn of class Eventjet\Ausdruck\Parser\Span constructor expects int<1, max>, int<0, max> given.
PHPStan - 8.3 --prefer-lowest
Process completed with exit code 1.
PHPStan - 8.2 --prefer-lowest: tests/unit/Parser/TypeParserTest.php#L215
Parameter #4 $endColumn of class Eventjet\Ausdruck\Parser\Span constructor expects int<1, max>, int<0, max> given.
PHPStan - 8.2 --prefer-lowest
Process completed with exit code 1.
PHPStan - 8.1 --prefer-lowest: tests/unit/Parser/TypeParserTest.php#L215
Parameter #4 $endColumn of class Eventjet\Ausdruck\Parser\Span constructor expects int<1, max>, int<0, max> given.
PHPStan - 8.1 --prefer-lowest
Process completed with exit code 1.
Infection - 8.3
Process completed with exit code 1.
Infection - 8.1
Process completed with exit code 1.
Infection - 8.2
Process completed with exit code 1.
Infection - 8.1 --prefer-lowest
Process completed with exit code 1.
Infection - 8.2 --prefer-lowest
Process completed with exit code 1.
Infection - 8.3 --prefer-lowest
Process completed with exit code 1.
Composer Require Checker - 8.2 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHP CS Fixer - 8.2 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Composer Require Checker - 8.2
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Composer Require Checker - 8.3 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPUnit - 8.3 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Backward Compatibility
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Composer Require Checker - 8.1 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPUnit - 8.2 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPUnit - 8.3
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPStan - 8.3 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPUnit - 8.2
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Composer Require Checker - 8.3
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPStan - 8.2 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPStan - 8.2
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPStan - 8.3
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Psalm - 8.2 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHP CS Fixer - 8.1
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Psalm - 8.3 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPUnit - 8.1 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHP CS Fixer - 8.2
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPUnit - 8.1
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Psalm - 8.1 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Psalm - 8.1
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPStan - 8.1 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHPStan - 8.1
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Composer Require Checker - 8.1
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Psalm - 8.2
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Psalm - 8.3
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PHP CS Fixer - 8.1 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Infection - 8.3
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/download-artifact@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Infection - 8.3: src/Eq.php#L33
Escaped Mutant for Mutator "Foreach_": --- Original +++ New @@ @@ return false; } /** @var mixed $value */ - foreach ($leftVars as $key => $value) { + foreach (array() as $key => $value) { if (!array_key_exists($key, $rightVars)) { return false; }
Infection - 8.3: src/Eq.php#L46
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ } private static function compareValues(mixed $left, mixed $right) : bool { - if (is_object($left) && is_object($right)) { + if (is_object($left) || is_object($right)) { return self::compareStructs($left, $right); } return $left === $right;
Infection - 8.3: src/Parser/ExpressionParser.php#L598
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ self::expect($tokens, Token::Colon); $value = self::parseLazy(null, $tokens, $declarations); if ($value === null) { - throw SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); + SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); } return [$name->token, $value]; } }
Infection - 8.3: src/Scope.php#L227
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ { return match (true) { $var === null || is_string($var) || is_int($var) || is_bool($var) => $var, - is_object($var) => array_map(self::printValue(...), get_object_vars($var)), + is_object($var) => get_object_vars($var), default => get_debug_type($var), }; }
Infection - 8.3: src/StructLiteral.php#L65
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ } public function getType() : Type { - return Type::struct(array_map(static fn(Expression $value) => $value->getType(), $this->fields)); + return Type::struct($this->fields); } }
Infection - 8.1
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/download-artifact@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Infection - 8.1: src/Eq.php#L33
Escaped Mutant for Mutator "Foreach_": --- Original +++ New @@ @@ return false; } /** @var mixed $value */ - foreach ($leftVars as $key => $value) { + foreach (array() as $key => $value) { if (!array_key_exists($key, $rightVars)) { return false; }
Infection - 8.1: src/Eq.php#L46
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ } private static function compareValues(mixed $left, mixed $right) : bool { - if (is_object($left) && is_object($right)) { + if (is_object($left) || is_object($right)) { return self::compareStructs($left, $right); } return $left === $right;
Infection - 8.1: src/Parser/ExpressionParser.php#L598
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ self::expect($tokens, Token::Colon); $value = self::parseLazy(null, $tokens, $declarations); if ($value === null) { - throw SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); + SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); } return [$name->token, $value]; } }
Infection - 8.1: src/Scope.php#L227
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ { return match (true) { $var === null || is_string($var) || is_int($var) || is_bool($var) => $var, - is_object($var) => array_map(self::printValue(...), get_object_vars($var)), + is_object($var) => get_object_vars($var), default => get_debug_type($var), }; }
Infection - 8.1: src/StructLiteral.php#L65
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ } public function getType() : Type { - return Type::struct(array_map(static fn(Expression $value) => $value->getType(), $this->fields)); + return Type::struct($this->fields); } }
Infection - 8.2
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/download-artifact@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Infection - 8.2: src/Eq.php#L33
Escaped Mutant for Mutator "Foreach_": --- Original +++ New @@ @@ return false; } /** @var mixed $value */ - foreach ($leftVars as $key => $value) { + foreach (array() as $key => $value) { if (!array_key_exists($key, $rightVars)) { return false; }
Infection - 8.2: src/Eq.php#L46
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ } private static function compareValues(mixed $left, mixed $right) : bool { - if (is_object($left) && is_object($right)) { + if (is_object($left) || is_object($right)) { return self::compareStructs($left, $right); } return $left === $right;
Infection - 8.2: src/Parser/ExpressionParser.php#L598
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ self::expect($tokens, Token::Colon); $value = self::parseLazy(null, $tokens, $declarations); if ($value === null) { - throw SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); + SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); } return [$name->token, $value]; } }
Infection - 8.2: src/Scope.php#L227
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ { return match (true) { $var === null || is_string($var) || is_int($var) || is_bool($var) => $var, - is_object($var) => array_map(self::printValue(...), get_object_vars($var)), + is_object($var) => get_object_vars($var), default => get_debug_type($var), }; }
Infection - 8.2: src/StructLiteral.php#L65
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ } public function getType() : Type { - return Type::struct(array_map(static fn(Expression $value) => $value->getType(), $this->fields)); + return Type::struct($this->fields); } }
Infection - 8.1 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/download-artifact@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Infection - 8.1 --prefer-lowest: src/Eq.php#L33
Escaped Mutant for Mutator "Foreach_": --- Original +++ New @@ @@ return false; } /** @var mixed $value */ - foreach ($leftVars as $key => $value) { + foreach (array() as $key => $value) { if (!array_key_exists($key, $rightVars)) { return false; }
Infection - 8.1 --prefer-lowest: src/Eq.php#L46
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ } private static function compareValues(mixed $left, mixed $right) : bool { - if (is_object($left) && is_object($right)) { + if (is_object($left) || is_object($right)) { return self::compareStructs($left, $right); } return $left === $right;
Infection - 8.1 --prefer-lowest: src/Parser/ExpressionParser.php#L598
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ self::expect($tokens, Token::Colon); $value = self::parseLazy(null, $tokens, $declarations); if ($value === null) { - throw SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); + SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); } return [$name->token, $value]; } }
Infection - 8.1 --prefer-lowest: src/Scope.php#L227
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ { return match (true) { $var === null || is_string($var) || is_int($var) || is_bool($var) => $var, - is_object($var) => array_map(self::printValue(...), get_object_vars($var)), + is_object($var) => get_object_vars($var), default => get_debug_type($var), }; }
Infection - 8.1 --prefer-lowest: src/StructLiteral.php#L65
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ } public function getType() : Type { - return Type::struct(array_map(static fn(Expression $value) => $value->getType(), $this->fields)); + return Type::struct($this->fields); } }
Infection - 8.2 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/download-artifact@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Infection - 8.2 --prefer-lowest: src/Eq.php#L33
Escaped Mutant for Mutator "Foreach_": --- Original +++ New @@ @@ return false; } /** @var mixed $value */ - foreach ($leftVars as $key => $value) { + foreach (array() as $key => $value) { if (!array_key_exists($key, $rightVars)) { return false; }
Infection - 8.2 --prefer-lowest: src/Eq.php#L46
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ } private static function compareValues(mixed $left, mixed $right) : bool { - if (is_object($left) && is_object($right)) { + if (is_object($left) || is_object($right)) { return self::compareStructs($left, $right); } return $left === $right;
Infection - 8.2 --prefer-lowest: src/Parser/ExpressionParser.php#L598
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ self::expect($tokens, Token::Colon); $value = self::parseLazy(null, $tokens, $declarations); if ($value === null) { - throw SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); + SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); } return [$name->token, $value]; } }
Infection - 8.2 --prefer-lowest: src/Scope.php#L227
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ { return match (true) { $var === null || is_string($var) || is_int($var) || is_bool($var) => $var, - is_object($var) => array_map(self::printValue(...), get_object_vars($var)), + is_object($var) => get_object_vars($var), default => get_debug_type($var), }; }
Infection - 8.2 --prefer-lowest: src/StructLiteral.php#L65
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ } public function getType() : Type { - return Type::struct(array_map(static fn(Expression $value) => $value->getType(), $this->fields)); + return Type::struct($this->fields); } }
Infection - 8.3 --prefer-lowest
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/download-artifact@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Infection - 8.3 --prefer-lowest: src/Eq.php#L33
Escaped Mutant for Mutator "Foreach_": --- Original +++ New @@ @@ return false; } /** @var mixed $value */ - foreach ($leftVars as $key => $value) { + foreach (array() as $key => $value) { if (!array_key_exists($key, $rightVars)) { return false; }
Infection - 8.3 --prefer-lowest: src/Eq.php#L46
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ } private static function compareValues(mixed $left, mixed $right) : bool { - if (is_object($left) && is_object($right)) { + if (is_object($left) || is_object($right)) { return self::compareStructs($left, $right); } return $left === $right;
Infection - 8.3 --prefer-lowest: src/Parser/ExpressionParser.php#L598
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ self::expect($tokens, Token::Colon); $value = self::parseLazy(null, $tokens, $declarations); if ($value === null) { - throw SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); + SyntaxError::create('Expected value after colon', self::nextSpan($tokens)); } return [$name->token, $value]; } }
Infection - 8.3 --prefer-lowest: src/Scope.php#L227
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ { return match (true) { $var === null || is_string($var) || is_int($var) || is_bool($var) => $var, - is_object($var) => array_map(self::printValue(...), get_object_vars($var)), + is_object($var) => get_object_vars($var), default => get_debug_type($var), }; }
Infection - 8.3 --prefer-lowest: src/StructLiteral.php#L65
Escaped Mutant for Mutator "UnwrapArrayMap": --- Original +++ New @@ @@ } public function getType() : Type { - return Type::struct(array_map(static fn(Expression $value) => $value->getType(), $this->fields)); + return Type::struct($this->fields); } }
Deprecation notice: v1, v2, and v3 of the artifact actions
The following artifacts were uploaded using a version of actions/upload-artifact that is scheduled for deprecation: "coverage-8.1", "coverage-8.2", "coverage-8.3", "infection-log-8.1.txt", "infection-log-8.2.txt", "infection-log-8.3.txt". Please update your workflow to use v4 of the artifact actions. Learn more: https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/

Artifacts

Produced during runtime
Name Size
coverage-8.1
9.55 MB
coverage-8.2
9.5 MB
coverage-8.3
9.5 MB
infection-log-8.1.txt
10 KB
infection-log-8.2.txt
10 KB
infection-log-8.3.txt
10 KB