Consider ArrayAccess side effects for dead catch analysis #26422
tests.yml
on: pull_request
Matrix: Tests PHPUnit 12.x
Determine levels tests matrix
42s
Matrix: Integration tests
Matrix: Tests PHPUnit 11.x
Matrix: Tests with old PHPUnit
Matrix: Mutation Testing
Matrix: Levels tests
Annotations
2 errors and 20 warnings
|
Mutation Testing (8.4, ubuntu-latest)
Process completed with exit code 1.
|
|
Mutation Testing (8.3, ubuntu-latest)
Process completed with exit code 1.
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L6480
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$setVarType = $scope->getType($originalVar->var);
if (
!$setVarType instanceof ErrorType
- && !$setVarType->isArray()->yes()
+ && $setVarType->isArray()->no()
&& !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($setVarType)->no()
) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3995
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
$varType = $scope->getType($var->var);
- if ($varType->isArray()->yes() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->yes() || !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->yes()) {
continue;
}
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3995
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
}
$varType = $scope->getType($var->var);
- if ($varType->isArray()->yes() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->yes() || $varType->isSuperTypeOf(new ObjectType(ArrayAccess::class))->no()) {
continue;
}
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3995
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
$varType = $scope->getType($var->var);
- if ($varType->isArray()->yes() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->no() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
continue;
}
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3682
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$scope = $result->getScope();
$varType = $scope->getType($expr->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->yes()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($expr->var, 'offsetGet'),
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3682
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
$scope = $result->getScope();
$varType = $scope->getType($expr->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && !$varType->isSuperTypeOf(new ObjectType(ArrayAccess::class))->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($expr->var, 'offsetGet'),
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3682
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$scope = $result->getScope();
$varType = $scope->getType($expr->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->no() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($expr->var, 'offsetGet'),
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L2113
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$impurePoints = array_merge($impurePoints, $exprResult->getImpurePoints());
if ($var instanceof ArrayDimFetch && $var->dim !== null) {
$varType = $scope->getType($var->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->yes()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($var->var, 'offsetUnset'),
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L2113
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
$impurePoints = array_merge($impurePoints, $exprResult->getImpurePoints());
if ($var instanceof ArrayDimFetch && $var->dim !== null) {
$varType = $scope->getType($var->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && !$varType->isSuperTypeOf(new ObjectType(ArrayAccess::class))->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($var->var, 'offsetUnset'),
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L2113
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$impurePoints = array_merge($impurePoints, $exprResult->getImpurePoints());
if ($var instanceof ArrayDimFetch && $var->dim !== null) {
$varType = $scope->getType($var->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->no() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($var->var, 'offsetUnset'),
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L6480
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$setVarType = $scope->getType($originalVar->var);
if (
!$setVarType instanceof ErrorType
- && !$setVarType->isArray()->yes()
+ && $setVarType->isArray()->no()
&& !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($setVarType)->no()
) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3995
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
$varType = $scope->getType($var->var);
- if ($varType->isArray()->yes() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->yes() || !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->yes()) {
continue;
}
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3995
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
}
$varType = $scope->getType($var->var);
- if ($varType->isArray()->yes() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->yes() || $varType->isSuperTypeOf(new ObjectType(ArrayAccess::class))->no()) {
continue;
}
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3995
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
$varType = $scope->getType($var->var);
- if ($varType->isArray()->yes() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->no() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
continue;
}
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3682
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$scope = $result->getScope();
$varType = $scope->getType($expr->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->yes()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($expr->var, 'offsetGet'),
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3682
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
$scope = $result->getScope();
$varType = $scope->getType($expr->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && !$varType->isSuperTypeOf(new ObjectType(ArrayAccess::class))->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($expr->var, 'offsetGet'),
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3682
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$scope = $result->getScope();
$varType = $scope->getType($expr->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->no() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($expr->var, 'offsetGet'),
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L2113
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$impurePoints = array_merge($impurePoints, $exprResult->getImpurePoints());
if ($var instanceof ArrayDimFetch && $var->dim !== null) {
$varType = $scope->getType($var->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->yes()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($var->var, 'offsetUnset'),
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L2113
Escaped Mutant for Mutator "PHPStan\Infection\IsSuperTypeOfCalleeAndArgumentMutator":
@@ @@
$impurePoints = array_merge($impurePoints, $exprResult->getImpurePoints());
if ($var instanceof ArrayDimFetch && $var->dim !== null) {
$varType = $scope->getType($var->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if (!$varType->isArray()->yes() && !$varType->isSuperTypeOf(new ObjectType(ArrayAccess::class))->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($var->var, 'offsetUnset'),
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L2113
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$impurePoints = array_merge($impurePoints, $exprResult->getImpurePoints());
if ($var instanceof ArrayDimFetch && $var->dim !== null) {
$varType = $scope->getType($var->var);
- if (!$varType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
+ if ($varType->isArray()->no() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->no()) {
$throwPoints = array_merge($throwPoints, $this->processExprNode(
$stmt,
new MethodCall($var->var, 'offsetUnset'),
|