final class LoopConvergence
Restricted visibility: declared "@visibility Deriver\Deriver\Evaluator" and "@visibility Deriver\Deriver\Evaluator\Execution". Code outside that scope must not name this declaration.

Bounds precise loop expansion and retains an explicit residual state.

Properties§

public Context $context

Methods§

public function __construct(public Context $context)

Parameters

$contextContextQuery context
public function widen(CallableGraph $callable, State $state): bool

Widens an unbounded loop instead of reporting its first iterations as exhaustive.

Parameters

$callableCallableGraphCurrent callable
$stateStateLoop header entry

Returns

bool Whether the loop was replaced by a residual exit
Called from 1
Calls 11
public function structure(State $state): string

Hashes loop alias and cursor structure without expanding shared value subgraphs.

Parameters

$stateStateLoop header state

Returns

string Alias and iteration identity
Test cases 1
Called from 1
Calls 3
public function position(IteratorCursor $iterator): int

Distinguishes cursor positions only where they select a known entry. Positions past the known entries of an unknown iterable all read unknown entries, so they share one structure.

Parameters

$iteratorIteratorCursorLoop cursor

Returns

int Position, capped after the known entries
Test cases 1
Called from 1
Calls 5

Test cases 16§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 2
Other tests reaching this symbol 14

Relations§

Instantiated in 1
Method calls 1