Struct type #91
checks.yml
on: pull_request
Matrix: phpunit
Backward Compatibility
16s
Matrix: check-dependencies
Matrix: code-style
Matrix: phpstan
Matrix: psalm
Matrix: infection
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 |
|