feat: add dynamic parameter type extensions #25723
Triggered via pull request
February 18, 2026 09:20
Status
Failure
Total duration
14m 57s
Artifacts
–
tests.yml
on: pull_request
Matrix: Tests PHPUnit 12.x
Determine levels tests matrix
33s
Matrix: Integration tests
Matrix: Tests PHPUnit 11.x
Matrix: Tests with old PHPUnit
Matrix: Mutation Testing
Matrix: Levels tests
Annotations
6 errors and 10 warnings
|
Levels tests (php vendor/bin/phpunit 'tests/PHPStan/Levels/LevelsIntegrationTest.php' --filter 'P...
Process completed with exit code 1.
|
|
Levels tests (php vendor/bin/phpunit 'tests/PHPStan/Generics/GenericsIntegrationTest.php' --filte...
Process completed with exit code 1.
|
|
Tests with old PHPUnit (7.4, ubuntu-latest)
Process completed with exit code 2.
|
|
Tests with old PHPUnit (7.4, windows-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)
Process completed with exit code 1.
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Rules/Functions/ClosureReturnTypeRule.php#L38
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$returnType = $scope->getAnonymousFunctionReturnType();
$overriddenType = $node->getOverriddenType();
- if ($overriddenType !== null && $overriddenType->isCallable()->yes()) {
+ if ($overriddenType !== null && !$overriddenType->isCallable()->no()) {
$returnType = TypeCombinator::union(...array_map(
static fn ($a) => $a->getReturnType(),
$overriddenType->getCallableParametersAcceptors($scope),
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L5326
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if ($overriddenType instanceof UnionType) {
$overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => $innerType->isCallable()->yes());
- if ($overriddenType->isCallable()->no()) {
+ if (!$overriddenType->isCallable()->yes()) {
return null;
}
}
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L5324
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
} elseif ($overriddenType !== null && !$overriddenType->isCallable()->no()) {
if ($overriddenType instanceof UnionType) {
- $overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => $innerType->isCallable()->yes());
+ $overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => !$innerType->isCallable()->no());
if ($overriddenType->isCallable()->no()) {
return null;
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L5322
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
);
}
}
- } elseif ($overriddenType !== null && !$overriddenType->isCallable()->no()) {
+ } elseif ($overriddenType !== null && $overriddenType->isCallable()->yes()) {
if ($overriddenType instanceof UnionType) {
$overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => $innerType->isCallable()->yes());
|
|
Mutation Testing (8.3, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3632
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
$overriddenValueType = null;
- if ($overriddenType !== null && $overriddenType->hasOffsetValueType($keyType)->yes()) {
+ if ($overriddenType !== null && !$overriddenType->hasOffsetValueType($keyType)->no()) {
$overriddenValueType = $overriddenType->getOffsetValueType($keyType);
}
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Rules/Functions/ClosureReturnTypeRule.php#L38
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
$returnType = $scope->getAnonymousFunctionReturnType();
$overriddenType = $node->getOverriddenType();
- if ($overriddenType !== null && $overriddenType->isCallable()->yes()) {
+ if ($overriddenType !== null && !$overriddenType->isCallable()->no()) {
$returnType = TypeCombinator::union(...array_map(
static fn ($a) => $a->getReturnType(),
$overriddenType->getCallableParametersAcceptors($scope),
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L5326
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
if ($overriddenType instanceof UnionType) {
$overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => $innerType->isCallable()->yes());
- if ($overriddenType->isCallable()->no()) {
+ if (!$overriddenType->isCallable()->yes()) {
return null;
}
}
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L5324
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
} elseif ($overriddenType !== null && !$overriddenType->isCallable()->no()) {
if ($overriddenType instanceof UnionType) {
- $overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => $innerType->isCallable()->yes());
+ $overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => !$innerType->isCallable()->no());
if ($overriddenType->isCallable()->no()) {
return null;
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L5322
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
);
}
}
- } elseif ($overriddenType !== null && !$overriddenType->isCallable()->no()) {
+ } elseif ($overriddenType !== null && $overriddenType->isCallable()->yes()) {
if ($overriddenType instanceof UnionType) {
$overriddenType = $overriddenType->filterTypes(static fn (Type $innerType) => $innerType->isCallable()->yes());
|
|
Mutation Testing (8.4, ubuntu-latest):
src/Analyser/NodeScopeResolver.php#L3632
Escaped Mutant for Mutator "PHPStan\Infection\TrinaryLogicMutator":
@@ @@
}
$overriddenValueType = null;
- if ($overriddenType !== null && $overriddenType->hasOffsetValueType($keyType)->yes()) {
+ if ($overriddenType !== null && !$overriddenType->hasOffsetValueType($keyType)->no()) {
$overriddenValueType = $overriddenType->getOffsetValueType($keyType);
}
|