Update github-actions (#66) #184
Annotations
38 warnings
|
phpstan-deprecation-rules
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1, step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/RestrictedDeprecatedPropertyUsageExtension.php#L68
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
);
}
- if (!$propertyReflection->isDeprecated()->yes()) {
+ if ($propertyReflection->isDeprecated()->no()) {
return null;
}
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/RestrictedDeprecatedMethodUsageExtension.php#L66
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
);
}
- if (!$methodReflection->isDeprecated()->yes()) {
+ if ($methodReflection->isDeprecated()->no()) {
return null;
}
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/RestrictedDeprecatedFunctionUsageExtension.php#L30
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
return null;
}
- if (!$functionReflection->isDeprecated()->yes()) {
+ if ($functionReflection->isDeprecated()->no()) {
return null;
}
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/RestrictedDeprecatedClassNameUsageExtension.php#L110
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if ($location->value === ClassNameUsageLocation::CLASS_CONSTANT_ACCESS) {
$constant = $location->getClassConstant();
if ($constant !== null) {
- if ($constant->isDeprecated()->yes() || $constant->getDeclaringClass()->isDeprecated()) {
+ if (!$constant->isDeprecated()->no() || $constant->getDeclaringClass()->isDeprecated()) {
return null;
}
}
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/RestrictedDeprecatedClassNameUsageExtension.php#L88
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if ($location->value === ClassNameUsageLocation::STATIC_METHOD_CALL) {
$method = $location->getMethod();
if ($method !== null) {
- if ($method->isDeprecated()->yes() || $method->getDeclaringClass()->isDeprecated()) {
+ if (!$method->isDeprecated()->no() || $method->getDeclaringClass()->isDeprecated()) {
return null;
}
}
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/RestrictedDeprecatedClassConstantUsageExtension.php#L64
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
);
}
- if (!$constantReflection->isDeprecated()->yes()) {
+ if ($constantReflection->isDeprecated()->no()) {
return null;
}
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/FetchingDeprecatedConstRule.php#L46
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$constantReflection = $this->reflectionProvider->getConstant($node->name, $scope);
- if ($constantReflection->isDeprecated()->yes()) {
+ if (!$constantReflection->isDeprecated()->no()) {
return [
RuleErrorBuilder::message(sprintf(
$constantReflection->getDeprecatedDescription() ?? 'Use of constant %s is deprecated.',
|
|
phpstan-deprecation-rules:
src/Rules/Deprecations/DefaultDeprecatedScopeResolver.php#L23
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
$function = $scope->getFunction();
- if ($function !== null && $function->isDeprecated()->yes()) {
+ if ($function !== null && !$function->isDeprecated()->no()) {
return true;
}
|
|
phpstan-phpunit
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1, step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertSameWithCountRule.php#L93
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
) {
$type = $scope->getType($expr->var);
- if ((new ObjectType(Countable::class))->isSuperTypeOf($type)->yes()) {
+ if (!(new ObjectType(Countable::class))->isSuperTypeOf($type)->no()) {
return true;
}
}
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertRuleHelper.php#L46
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$testCaseType = new ObjectType('PHPUnit\Framework\Assert');
- return $testCaseType->isSuperTypeOf($calledOnType)->yes();
+ return !$testCaseType->isSuperTypeOf($calledOnType)->no();
}
}
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L64
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if (
($leftType->isScalar()->yes() && $rightType->isScalar()->yes())
&& ($leftType->isSuperTypeOf($rightType)->yes())
- && ($rightType->isSuperTypeOf($leftType)->yes())
+ && (!$rightType->isSuperTypeOf($leftType)->no())
) {
$correctName = strtolower($node->name->name) === 'assertnotequals' ? 'assertNotSame' : 'assertSame';
return [
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L64
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
if (
($leftType->isScalar()->yes() && $rightType->isScalar()->yes())
&& ($leftType->isSuperTypeOf($rightType)->yes())
- && ($rightType->isSuperTypeOf($leftType)->yes())
+ && ($leftType->isSuperTypeOf($rightType)->yes())
) {
$correctName = strtolower($node->name->name) === 'assertnotequals' ? 'assertNotSame' : 'assertSame';
return [
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L63
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if (
($leftType->isScalar()->yes() && $rightType->isScalar()->yes())
- && ($leftType->isSuperTypeOf($rightType)->yes())
+ && (!$leftType->isSuperTypeOf($rightType)->no())
&& ($rightType->isSuperTypeOf($leftType)->yes())
) {
$correctName = strtolower($node->name->name) === 'assertnotequals' ? 'assertNotSame' : 'assertSame';
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L63
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
if (
($leftType->isScalar()->yes() && $rightType->isScalar()->yes())
- && ($leftType->isSuperTypeOf($rightType)->yes())
+ && ($rightType->isSuperTypeOf($leftType)->yes())
&& ($rightType->isSuperTypeOf($leftType)->yes())
) {
$correctName = strtolower($node->name->name) === 'assertnotequals' ? 'assertNotSame' : 'assertSame';
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L62
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
if (
- ($leftType->isScalar()->yes() && $rightType->isScalar()->yes())
+ ($leftType->isScalar()->yes() && !$rightType->isScalar()->no())
&& ($leftType->isSuperTypeOf($rightType)->yes())
&& ($rightType->isSuperTypeOf($leftType)->yes())
) {
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L62
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
if (
- ($leftType->isScalar()->yes() && $rightType->isScalar()->yes())
+ (!$leftType->isScalar()->no() && $rightType->isScalar()->yes())
&& ($leftType->isSuperTypeOf($rightType)->yes())
&& ($rightType->isSuperTypeOf($leftType)->yes())
) {
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L57
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if ($leftType->isConstantScalarValue()->yes()) {
$leftType = $leftType->generalize(GeneralizePrecision::lessSpecific());
}
- if ($rightType->isConstantScalarValue()->yes()) {
+ if (!$rightType->isConstantScalarValue()->no()) {
$rightType = $rightType->generalize(GeneralizePrecision::lessSpecific());
}
|
|
phpstan-phpunit:
src/Rules/PHPUnit/AssertEqualsIsDiscouragedRule.php#L54
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$leftType = TypeCombinator::removeNull($scope->getType($node->getArgs()[0]->value));
$rightType = TypeCombinator::removeNull($scope->getType($node->getArgs()[1]->value));
- if ($leftType->isConstantScalarValue()->yes()) {
+ if (!$leftType->isConstantScalarValue()->no()) {
$leftType = $leftType->generalize(GeneralizePrecision::lessSpecific());
}
if ($rightType->isConstantScalarValue()->yes()) {
|
|
phpstan-src
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1, step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
phpstan-src:
src/Type/IntersectionType.php#L1147
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
if (count($yesAcceptors) === 0) {
- if ($this->isCallable()->no()) {
+ if (!$this->isCallable()->yes()) {
throw new ShouldNotHappenException();
}
|
|
phpstan-src:
src/Type/ArrayType.php#L235
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
return $traverse($type);
}
- if ($type->isString()->yes() && !$type->isDecimalIntegerString()->no()) {
+ if ($type->isString()->yes() && $type->isDecimalIntegerString()->yes()) {
return TypeCombinator::union(
new IntegerType(),
TypeCombinator::intersect($type, new AccessoryDecimalIntegerStringType(inverse: true)),
|
|
phpstan-src:
src/Type/ArrayType.php#L235
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
return $traverse($type);
}
- if ($type->isString()->yes() && !$type->isDecimalIntegerString()->no()) {
+ if (!$type->isString()->no() && !$type->isDecimalIntegerString()->no()) {
return TypeCombinator::union(
new IntegerType(),
TypeCombinator::intersect($type, new AccessoryDecimalIntegerStringType(inverse: true)),
|
|
phpstan-src:
src/Type/Accessory/AccessoryDecimalIntegerStringType.php#L90
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$isDecimalIntegerString = $type->isDecimalIntegerString();
if (
- $type->isString()->yes()
+ !$type->isString()->no()
&& ($this->inverse ? $isDecimalIntegerString->no() : $isDecimalIntegerString->yes())
) {
return AcceptsResult::createYes();
|
|
phpstan-src:
src/Reflection/Php/PhpClassReflectionExtension.php#L926
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
strtolower($methodReflection->getName()) === '__construct'
|| (
($phpDocReturnType === null || !$phpDocReturnType->isVoid()->yes())
- && !$nativeReturnType->isVoid()->yes()
+ && $nativeReturnType->isVoid()->no()
)
) {
$isPure = true;
|
|
phpstan-src:
src/Reflection/Php/PhpClassReflectionExtension.php#L925
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if (
strtolower($methodReflection->getName()) === '__construct'
|| (
- ($phpDocReturnType === null || !$phpDocReturnType->isVoid()->yes())
+ ($phpDocReturnType === null || $phpDocReturnType->isVoid()->no())
&& !$nativeReturnType->isVoid()->yes()
)
) {
|
|
phpstan-doctrine
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1, step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
phpstan-doctrine:
src/Type/Doctrine/GetRepositoryDynamicReturnTypeExtension.php#L80
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
): Type
{
$calledOnType = $scope->getType($methodCall->var);
- if ((new ObjectType(DocumentManager::class))->isSuperTypeOf($calledOnType)->yes()) {
+ if (!(new ObjectType(DocumentManager::class))->isSuperTypeOf($calledOnType)->no()) {
$defaultRepositoryClass = $this->odmRepositoryClass ?? $this->repositoryClass ?? DocumentRepository::class;
} else {
$defaultRepositoryClass = $this->ormRepositoryClass ?? $this->repositoryClass ?? EntityRepository::class;
|
|
phpstan-doctrine:
src/Type/Doctrine/GetRepositoryDynamicReturnTypeExtension.php#L80
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
): Type
{
$calledOnType = $scope->getType($methodCall->var);
- if ((new ObjectType(DocumentManager::class))->isSuperTypeOf($calledOnType)->yes()) {
+ if ($calledOnType->isSuperTypeOf(new ObjectType(DocumentManager::class))->yes()) {
$defaultRepositoryClass = $this->odmRepositoryClass ?? $this->repositoryClass ?? DocumentRepository::class;
} else {
$defaultRepositoryClass = $this->ormRepositoryClass ?? $this->repositoryClass ?? EntityRepository::class;
|
|
phpstan-doctrine:
src/Type/Doctrine/EntityManagerInterfaceThrowTypeExtension.php#L38
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
{
$type = $scope->getType($methodCall->var);
- if ((new ObjectType(EntityManagerInterface::class))->isSuperTypeOf($type)->yes()) {
+ if (!(new ObjectType(EntityManagerInterface::class))->isSuperTypeOf($type)->no()) {
return TypeCombinator::union(
...array_map(static fn ($class): Type => new ObjectType($class), self::SUPPORTED_METHOD[$methodReflection->getName()]),
);
|
|
phpstan-doctrine:
src/Type/Doctrine/EntityManagerInterfaceThrowTypeExtension.php#L38
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
{
$type = $scope->getType($methodCall->var);
- if ((new ObjectType(EntityManagerInterface::class))->isSuperTypeOf($type)->yes()) {
+ if ($type->isSuperTypeOf(new ObjectType(EntityManagerInterface::class))->yes()) {
return TypeCombinator::union(
...array_map(static fn ($class): Type => new ObjectType($class), self::SUPPORTED_METHOD[$methodReflection->getName()]),
);
|
|
phpstan-doctrine:
src/Type/Doctrine/ArgumentsProcessor.php#L62
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
continue;
}
- if ($value->isClassString()->yes() && count($value->getClassStringObjectType()->getObjectClassNames()) === 1) {
+ if (!$value->isClassString()->no() && count($value->getClassStringObjectType()->getObjectClassNames()) === 1) {
/** @var class-string $className */
$className = $value->getClassStringObjectType()->getObjectClassNames()[0];
$isEntityClassArgument = $argIndex === 0 && in_array($methodName, ['from', 'join', 'innerJoin', 'leftJoin'], true);
|
|
phpstan-doctrine:
src/Rules/Doctrine/ORM/EntityRelationRule.php#L112
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if (
$toMany
&& $collectionObjectType->isSuperTypeOf($propertyType)->yes()
- && $propertyType->isIterable()->yes()
+ && !$propertyType->isIterable()->no()
) {
$propertyTypeToCheckAgainst = TypeCombinator::intersect(
$collectionObjectType,
|
|
phpstan-doctrine:
src/Rules/Doctrine/ORM/EntityRelationRule.php#L111
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$propertyTypeToCheckAgainst = $propertyType;
if (
$toMany
- && $collectionObjectType->isSuperTypeOf($propertyType)->yes()
+ && !$collectionObjectType->isSuperTypeOf($propertyType)->no()
&& $propertyType->isIterable()->yes()
) {
$propertyTypeToCheckAgainst = TypeCombinator::intersect(
|
|
phpstan-doctrine:
src/Rules/Doctrine/ORM/EntityColumnRule.php#L109
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$enumTypeString = $fieldMapping['enumType'] ?? null;
if ($enumTypeString !== null) {
- if ($writableToDatabaseType->isArray()->no() && $writableToPropertyType->isArray()->no()) {
+ if ($writableToDatabaseType->isArray()->no() && !$writableToPropertyType->isArray()->yes()) {
if ($this->reflectionProvider->hasClass($enumTypeString)) {
$enumReflection = $this->reflectionProvider->getClass($enumTypeString);
$backedEnumType = $enumReflection->getBackedEnumType();
|
|
phpstan-doctrine:
src/Rules/Doctrine/ORM/EntityColumnRule.php#L109
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$enumTypeString = $fieldMapping['enumType'] ?? null;
if ($enumTypeString !== null) {
- if ($writableToDatabaseType->isArray()->no() && $writableToPropertyType->isArray()->no()) {
+ if (!$writableToDatabaseType->isArray()->yes() && $writableToPropertyType->isArray()->no()) {
if ($this->reflectionProvider->hasClass($enumTypeString)) {
$enumReflection = $this->reflectionProvider->getClass($enumTypeString);
$backedEnumType = $enumReflection->getBackedEnumType();
|
|
phpstan-doctrine:
src/Rules/Doctrine/ORM/DqlRule.php#L52
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$calledOnType = $scope->getType($node->var);
$entityManagerInterface = 'Doctrine\ORM\EntityManagerInterface';
- if (!(new ObjectType($entityManagerInterface))->isSuperTypeOf($calledOnType)->yes()) {
+ if ((new ObjectType($entityManagerInterface))->isSuperTypeOf($calledOnType)->no()) {
return [];
}
|