final class DestructuringLowering
Restricted visibility: declared "@visibility Deriver\Deriver\Lowerer\Declaration" and "@visibility Deriver\Deriver\Lowerer" and "@visibility Deriver\Deriver\Sources". Code outside that scope must not name this declaration.

Preserves array snapshots and shared cells while lowering assignment patterns.

Properties§

public LoweringScope $lowering

Methods§

public function __construct(public LoweringScope $lowering)

Parameters

$loweringLoweringScopeCurrent callable compiler
public function assignment(Assign $node): string

Evaluates a destructured source once before assigning its entries in order.

Parameters

$nodeAssignAssignment with an array or list pattern

Returns

string Assigned source value
Test cases 1
Called from 1
Calls 6
public function assign(List_|Array_ $pattern, string $value, string $address = ''): string
public function source(Expr $expression, bool $diagnostic): string

Anchors writable storage or a temporary returned array before reference iteration.

Parameters

$expressionExprEvaluated source expression
$diagnosticboolWhether a non-reference return requires a target notice

Returns

string Source address register
Test cases 1
Called from 2
Calls 2

Test cases 100§

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

Dedicated tests 3
Other tests reaching this symbol 97

Relations§

Instantiated in 4
Method calls 4