classMutations
final class Mutations
Restricted visibility: declared "@visibility parent". Code outside that scope must not name this declaration.
Describes storage mutations for both origin discovery and reaching definitions.
Methods§
public static function apply(
Evaluator $engine,
Frame $frame,
Instruction $write,
string $address,
int $block,
int $offset,
int $depth,
array<string, true> $seen,
bool $truth = false,
int $wanted = 3,
?Demand $finite = null,
): TermEvaluates a selected reaching write after storage identity has been resolved.
Parameters
$engine | Evaluator | |
$frame | Frame | |
$write | Instruction | |
$address | string | |
$block | int | |
$offset | int | |
$depth | int | |
$seen | array<string, true> | Previously visited storage definitions |
$truth | bool | |
$wanted | int | |
$finite | ?Demand |
Returns
Called from 1
Calls 13
- method-call Truth::value() line 30
- new Truth line 30
- class-const EvidenceKind::StorageWrite() line 30
- method-call Aliases::key() line 30
- new Aliases line 30
- new Storage line 30
- method-call PropertyHooks::write() line 32
- new PropertyHooks line 32
- method-call Evaluator::value() line 36
- static-call Term::constant() line 39
- method-call Storage::search() line 41
- static-call Mutations::increment() line 43
- method-call Evaluator::operation() line 45
public static function value(
Evaluator $engine,
Frame $frame,
Instruction $write,
int $depth,
): TermReads the expression result at the mutation's before or after position.
Parameters
$engine | Evaluator | |
$frame | Frame | |
$write | Instruction | |
$depth | int |
Returns
Called from 1
Calls 2
- method-call Storage::search() line 55
- new Storage line 55
public static function increment(Evaluator $engine, Instruction $write, Term $before): TermShares PHP target increment semantics across scalar, element and property writes.
Parameters
$engine | Evaluator | |
$write | Instruction | |
$before | Term |
Returns
Called from 2
Calls 6
- method-call Choices::apply() line 63
- new Choices line 63
- new Increment line 64
- method-call Increment::apply() line 66
- method-call Increment::warning() line 67
- new Term line 67
Relations§
Static calls 3
- static-call Deriver\Deriver\Evaluator\Expression\Storage::write() packages/deriver/src/Deriver/Evaluator/Expression/Storage.php:216
- static-call Deriver\Deriver\Evaluator\Memory\Elements::mutate() packages/deriver/src/Deriver/Evaluator/Memory/Elements.php:60
- static-call Deriver\Deriver\Evaluator\Micro\InstructionEvaluator::evaluate() packages/deriver/src/Deriver/Evaluator/Micro/InstructionEvaluator.php:32