Repository navigation
Phase 2: chain stitching → usable tool - #4
Merged
Merged
Annotations
11 warnings
|
Complete job
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Infection:
src/Chain/ChainTraversal.php#L227
Escaped Mutant for Mutator "IncrementInteger":
@@ @@
{
usort($this->findings, static function (Finding $left, Finding $right): int {
return [$left->chain[0]->file, $left->chain[0]->line, $left->param]
- <=> [$right->chain[0]->file, $right->chain[0]->line, $right->param];
+ <=> [$right->chain[1]->file, $right->chain[0]->line, $right->param];
});
}
|
|
Infection:
src/Chain/ChainTraversal.php#L226
Escaped Mutant for Mutator "IncrementInteger":
@@ @@
private function sortFindings(): void
{
usort($this->findings, static function (Finding $left, Finding $right): int {
- return [$left->chain[0]->file, $left->chain[0]->line, $left->param]
+ return [$left->chain[0]->file, $left->chain[1]->line, $left->param]
<=> [$right->chain[0]->file, $right->chain[0]->line, $right->param];
});
}
|
|
Infection:
src/Chain/ChainTraversal.php#L226
Escaped Mutant for Mutator "IncrementInteger":
@@ @@
private function sortFindings(): void
{
usort($this->findings, static function (Finding $left, Finding $right): int {
- return [$left->chain[0]->file, $left->chain[0]->line, $left->param]
+ return [$left->chain[1]->file, $left->chain[0]->line, $left->param]
<=> [$right->chain[0]->file, $right->chain[0]->line, $right->param];
});
}
|
|
Infection:
src/Chain/ChainTraversal.php#L208
Escaped Mutant for Mutator "TrueValue":
@@ @@
$classes = [];
foreach ($chain as $hop) {
if ($hop->class !== null) {
- $classes[$hop->class] = true;
+ $classes[$hop->class] = false;
}
}
|
|
Infection:
src/Chain/ChainTraversal.php#L142
Escaped Mutant for Mutator "LogicalOr":
@@ @@
{
$method = $this->index->get($target->fqmn);
$param = $method?->paramNamed($target->boundParam);
- if ($method === null || $param === null) {
+ if ($method === null && $param === null) {
$this->record($chain, new Terminal(null, null, TerminalKind::External));
return;
|
|
Infection:
src/Chain/ChainTraversal.php#L141
Escaped Mutant for Mutator "NullSafeMethodCall":
@@ @@
private function followTarget(ResolvedTarget $target, PartialChain $chain): void
{
$method = $this->index->get($target->fqmn);
- $param = $method?->paramNamed($target->boundParam);
+ $param = $method->paramNamed($target->boundParam);
if ($method === null || $param === null) {
$this->record($chain, new Terminal(null, null, TerminalKind::External));
|
|
Infection:
src/Chain/ChainTraversal.php#L129
Escaped Mutant for Mutator "ReturnRemoval":
@@ @@
if ($resolution instanceof ExternalTarget) {
$this->record($chain, new Terminal(null, null, TerminalKind::External));
- return;
+
}
if ($resolution instanceof TruncatedResolution) {
|
|
Infection:
src/Chain/ChainTraversal.php#L123
Escaped Mutant for Mutator "ReturnRemoval":
@@ @@
if ($resolution instanceof ResolvedTarget) {
$this->followTarget($resolution, $chain);
- return;
+
}
if ($resolution instanceof ExternalTarget) {
|
|
Infection:
src/Chain/ChainTraversal.php#L108
Escaped Mutant for Mutator "TrueValue":
@@ @@
private function walk(MethodInfo $method, ParamInfo $param, PartialChain $chain): void
{
$key = $this->key($method->fqmn, $param->name);
- $this->visited[$key] = true;
+ $this->visited[$key] = false;
foreach ($param->forwards as $forward) {
$resolution = $this->resolver->resolve($forward, $method);
|
|
Infection:
src/Chain/ChainTraversal.php#L97
Escaped Mutant for Mutator "TrueValue":
@@ @@
foreach ($param->forwards as $forward) {
$resolution = $this->resolver->resolve($forward, $method);
if ($resolution instanceof ResolvedTarget) {
- $incoming[$this->key($resolution->fqmn, $resolution->boundParam)] = true;
+ $incoming[$this->key($resolution->fqmn, $resolution->boundParam)] = false;
}
}
}
|
background
wait
wait-all
cancel
parallel
Loading