classCallbackEffects
final class CallbackEffects
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Runs a callback's object dependencies through the same slicer as its caller.
Methods§
public function __construct(private BackwardSlicer $slicer, private SliceExecutor $executor)Uses the caller's shared derivation budget and execution semantics.
Parameters
$slicer | BackwardSlicer | |
$executor | SliceExecutor |
public function apply(
FunctionLike $callback,
list<Domain> $arguments,
Environment $outer,
FunctionScope $scope,
ExpressionEvaluator $expressions,
): DomainReads the first parameter's state after the callback's possible effects.
Parameters
$callback | FunctionLike | |
$arguments | list<Domain> | |
$outer | Environment | |
$scope | FunctionScope | |
$expressions | ExpressionEvaluator |
Returns
Test cases 3
Called from 3
- method-call SqlCatalog\Extension\Laravel\CallbackModel::apply() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:57
- method-call SqlCatalog\Extension\Laravel\CallbackModel::conditional() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:81
- method-call SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:120
Calls 14
- method-call CallbackEffects::supported() line 38
- static-call Domain::unknown() line 39
- method-call CallbackEffects::bind() line 41
- method-call
FunctionLike::getParams()line 42 - function-call
is_stringline 43 - method-call ExpressionEvaluator::evaluate() line 54
- function-call
array_valuesline 58 - method-call
FunctionLike::getStmts()line 58 - method-call BackwardSlicer::walkList() line 61
- function-call
countline 61 - static-call Pending::needing() line 61
- method-call SliceExecutor::run() line 62
- function-call
array_mergeline 64 - static-call Domain::fromTerms() line 69
public function supported(FunctionLike $callback): boolOnly terminal returns of the same receiver can be interpreted as mutations.
Parameters
$callback | FunctionLike |
Returns
boolTest cases 2
Called from 1
Calls 10
- method-call
FunctionLike::getParams()line 77 - function-call
is_stringline 78 - method-call
FunctionLike::getStmts()line 81 - method-call
NodeFinder::findInstanceOf()line 82 - new
NodeFinderline 82 - class-const
Return_::class()line 82 - function-call
endline 84 - method-call ObjectEffects::root() line 87
- new ObjectEffects line 87
- function-call
strtolowerline 88
public function bind(
FunctionLike $callback,
list<Domain> $arguments,
Environment $outer,
): EnvironmentBinds invocation arguments and only the variables a closure captures.
Parameters
$callback | FunctionLike | |
$arguments | list<Domain> | |
$outer | Environment |
Returns
Called from 1
Calls 5
- method-call Environment::copy() line 103
- function-call
is_stringline 107 - function-call
array_diffline 111 - method-call
FunctionLike::getParams()line 115 - static-call Domain::unknown() line 117
Private surface 2§
Implementation details, listed for orientation only.
private BackwardSlicer $slicerprivate SliceExecutor $executorTest cases 16§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
CallbackEffectsTest::testApplyFollowsMutationsOfTheCallbackParametercallsCallbackEffectsTest::testApplyLeavesCallbacksWithoutAReceiverOpencallsCallbackEffectsTest::testApplyRunsClosureEffectsThroughCapturedAliasesOfItsReceivercallsCallbackEffectsTest::testBindKeepsOnlyExplicitClosureCapturesAndPassedArgumentscallsCallbackEffectsTest::testSupportedAcceptsExplicitNullAndVoidReturnscallsCallbackEffectsTest::testSupportedRejectsEarlyReturnsAndReplacementQueriescalls
Other tests reaching this symbol 10
ModelContextTest::testKeepsTheModelContractInputscallsBuilderQueriesTestcallsCallbackModelTest::testApplyRunsSourceDeclaredLocalScopescallsCallbackModelTest::testCheckedPreservesAVisibleGapWhenTheCallbackExceedsItsBudgetcallsCallbackModelTest::testClosedRejectsWidenedResultsAndForeignIdentitiescallsCallbackModelTest::testConditionalKeepsBothOutcomesOfWhenAndUnlesscallsCallbackModelTest::testNestedRestoresOuterClausesAndGroupsOnlyNewPredicatescallsCallModelTestcallsLaravelExtensionTest::testModelsRegistersLaravelSemanticsThroughTheOptionalContractcallsAnalyzerTestcalls
Relations§
Instantiated in 1
Method calls 3
- method-call SqlCatalog\Extension\Laravel\CallbackModel::apply() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:57
- method-call SqlCatalog\Extension\Laravel\CallbackModel::conditional() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:81
- method-call SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:120