classEnvironment
final class Environment
What the analyzer knows about each variable at one point in a function body.
Properties§
public bool $combined = falseWhether joining branch states lost their pairing.
Methods§
public function __construct(
array<string, Domain> $variables = [],
?ObjectMemory $objects = null,
)Parameters
$variables | array<string, Domain> | Initial bindings, keyed by variable name without the sigil |
$objects | ?ObjectMemory |
Calls 4
- method-call Environment::objects() line 41
- function-call
array_fill_keysline 44 - function-call
array_keysline 44 - class-const Presence::Present() line 44
public function read(string $name): DomainThe domain bound to a variable, or an unresolved domain when it has none.
Parameters
$name | string |
Returns
Test cases 52
CallEvaluatorTest::testApplyEffectsKeepsKnownByValueArgumentsAndOpensReferencescallsCallEvaluatorTest::testEvaluateAppliesOnlyPossibleCallWritescallsCallEvaluatorTest::testEvaluateRetainsReferenceWritesForAModeledNamespacedFunctioncallsCallEvaluatorTest::testInvalidateEscapesOpensAliasedObjectStatecallsCallbackEffectsTest::testApplyRunsClosureEffectsThroughCapturedAliasesOfItsReceivercallsSliceExecutorTest::testApplyGoesOnFromThePassAForeachReachedOverWhatItFirstReadcallsSliceExecutorTest::testApplySplitsAForeachPastItsElementsWithinTheLimitcallsSliceExecutorTest::testApplyStartsAForeachByReadingWhatItGoesOvercallsSliceExecutorTest::testAssignOnceTheBudgetIsSpentcallsSliceExecutorTest::testAssignQuotesWhatItCouldNotFollowcallsSliceExecutorTest::testDeclareGlobalTakesTheClassTheNameIsKnownToHoldcallsSliceExecutorTest::testDeclareStaticNeverTakesAClasscallsSliceExecutorTest::testEnterClosureBindsParametersAndMarksOtherLocalsAbsentcallsSliceExecutorTest::testEnterClosureMarksNamesWithoutAParameterAbsentcallsSliceExecutorTest::testEnterClosureOfAnArrowFunctionReadsItsParameterTypescallsSliceExecutorTest::testIterateOverAnythingElseQuotesTheIteratedKeyAndValuecallsSliceExecutorTest::testSplitBoundsIntermediateProductsWithoutLosingValuescallsWriteEffectsTest::testApplyInvalidatesAbsenceAndValuesWithoutChangingUnrelatedBindingscallsWriteEffectsTest::testAssignmentInvalidatesAliasValuesBeforeWritingTheTargetcallsExpressionEvaluatorTest::testEvaluateAssignIsCalledWithTheExpressionItselfcallsExpressionEvaluatorTest::testEvaluateCloneCreatesAnIndependentTrackedAllocationcallsExpressionEvaluatorTest::testEvaluateInvalidatesAllAliasesOfAReferenceAssignedObjectcallsExpressionEvaluatorTest::testEvaluateIssetKeepsIntermediateOperandWritescallsExpressionEvaluatorTest::testEvaluateIssetKeepsPossibleOperandEffectscallsExpressionEvaluatorTest::testEvaluateMatchSeesAssignmentsInTheSubjectAndInTheConditionscallsExpressionEvaluatorTest::testEvaluateOperandsEvaluatesEveryOperandInPlacecallsExpressionEvaluatorTest::testEvaluateOptionalRightKeepsTheUnwrittenAlternativecallsExpressionEvaluatorTest::testEvaluateResultSeesAnAssignmentWrittenInsideTheOperandcallsExpressionEvaluatorTest::testEvaluateSeesAnAssignmentWrittenInsideAnOperatorItDoesNotModelcallsExpressionEvaluatorTest::testEvaluateTernaryKeepsBothBranchesEvenForKnownConditionscallsExpressionEvaluatorTest::testEvaluateTraversesIncludeEffectsBeforeReadingAnotherOperandcallsReferenceEvaluatorTest::testAssignElementKeepsWhetherTheArrayIsKnownInFullcallsReferenceEvaluatorTest::testAssignElementMarksTheArrayANestedWriteGoesIntoAsIncompletecallsReferenceEvaluatorTest::testAssignListDescendsIntoANestedListcallsReferenceEvaluatorTest::testAssignListLeavesAGapCarryingTheOriginOfAValueThatIsNotAKnownArraycallsReferenceEvaluatorTest::testAssignListLeavesAGapForAnElementTheArrayDoesNotHoldcallsReferenceEvaluatorTest::testAssignListReadsAKeyedTargetByItsKeycallsReferenceEvaluatorTest::testAssignListWritesEachElementIntoTheTargetAtItsPositioncallsReferenceEvaluatorTest::testLoseTrackLeavesAnythingThatIsNotATrackedArrayAlonecallsReferenceEvaluatorTest::testLoseTrackMarksAnArrayHeldByAPropertyOfThisAsIncompletecallsReferenceEvaluatorTest::testLoseTrackMarksTheArrayANestedWriteGoesIntoAsIncompletecallsEnvironmentTest::testCopyIsIndependentOfTheOriginalcallsEnvironmentTest::testInvalidateDoesNotTurnUnknownWritesIntoEmptyStringscallsEnvironmentTest::testJoinPreservesCombinationUncertaintyAndPresenceWithoutInventingItcallsEnvironmentTest::testObjectsSharesSnapshotsAcrossAliasesButNotCopiescallsEnvironmentTest::testPresenceSeparatesUndefinedNullAndUnknowncallsEnvironmentTest::testReadFallsBackToAnUnresolvedValuecallsEnvironmentTest::testReplaceKeepsJoinedAlternativeObjectStatescallsEnvironmentTest::testWriteBindsAVariablecallsBuilderCallsTest::testExecutionFindRetainsItsPredicateAndTheModelReturnTypecallsBuilderCallsTest::testExecutionPreservesFirstLimitAndReturnsACollectionForGetcallsBuilderCallsTest::testUnsupportedInvalidatesAliasesWithoutLosingTheirIdentitycalls
Called from 11
- method-call SqlCatalog\Core\Analysis\CallEvaluator::applyEffects() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:129
- method-call SqlCatalog\Core\Analysis\CallEvaluator::invalidateEscapes() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:355
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::split() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:381
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::readVariable() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:103
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::readProperty() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:186
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assignElement() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:380
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::loseTrack() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:396
- method-call SqlCatalog\Core\Evaluation\Environment::join() packages/sql-catalog/src/Core/Evaluation/Environment.php:134
- method-call SqlCatalog\Core\Evaluation\Environment::invalidate() packages/sql-catalog/src/Core/Evaluation/Environment.php:166
- method-call SqlCatalog\Core\Evaluation\Environment::signature() packages/sql-catalog/src/Core/Evaluation/Environment.php:189
- method-call SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:112
Calls 7
- method-call Environment::presence() line 52
- class-const Presence::Absent() line 52
- static-call Domain::literal() line 53
- method-call Environment::refresh() line 56
- static-call Domain::opaque() line 56
- static-call TypeShape::unknown() line 56
- class-const Origin::Unresolved() line 56
public function write(string $name, Domain $domain): voidBinds a variable to a domain.
Parameters
$name | string | |
$domain | Domain |
Test cases 2
Called from 9
- method-call SqlCatalog\Core\Analysis\Derivation\CalleeReturns::parameters() packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:178
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::leaveOpen() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:360
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::fileScope() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:380
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::enterClosure() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:277
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::declare() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:300
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assign() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:299
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assignElement() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:384
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::loseTrack() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:398
- method-call SqlCatalog\Core\Evaluation\Environment::narrow() packages/sql-catalog/src/Core/Evaluation/Environment.php:79
Calls 3
- method-call Domain::soleObject() line 66
- method-call Environment::objects() line 68
- class-const Presence::Present() line 70
public function narrow(string $name, Domain $domain): voidNarrows a value while keeping a possible absence distinct from present null.
Parameters
$name | string | |
$domain | Domain |
Test cases 1
Calls 4
- method-call Environment::presence() line 78
- method-call Environment::write() line 79
- class-const Presence::Present() line 80
- method-call Domain::type() line 80
public function has(string $name): boolWhether the variable has a binding.
Parameters
$name | string |
Returns
boolTest cases 4
Called from 4
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::split() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:378
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::readProperty() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:185
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assignElement() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:380
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::loseTrack() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:396
public function forget(string $name): voidDrops the binding of a variable.
Parameters
$name | string |
Test cases 1
public function names(): list<string>The bound variable names.
Returns
list<string>Test cases 13
CalleeReturnsTest::testReturnedReadsWhatTheReturnDependsOnFromTheStartcallsSliceExecutorTest::testAbandonLeavesOpenEveryNameTheStepsLeftWritecallsSliceExecutorTest::testApplyAssignsAnExpressionAndSplitsOnWhatItWrotecallsSliceExecutorTest::testApplyEntersAClosureWithoutEvaluatingAnythingcallsSliceExecutorTest::testDeclareStaticNeverTakesAClasscallsSliceExecutorTest::testEnterClosureBindsParametersAndMarksOtherLocalsAbsentcallsSliceExecutorTest::testRunWhenClosingStopsOnceTheReadingBudgetIsSpentcallsExpressionEvaluatorTest::testEvaluateOperandsEvaluatesEveryOperandInPlacecallsReferenceEvaluatorTest::testAssignElementIgnoresATargetItCannotNamecallsReferenceEvaluatorTest::testAssignLeavesATargetItDoesNotTrackAlonecallsReferenceEvaluatorTest::testAssignListWritesEachElementIntoTheTargetAtItsPositioncallsReferenceEvaluatorTest::testLoseTrackLeavesAnythingThatIsNotATrackedArrayAlonecallsEnvironmentTest::testNamesListsTheBoundVariablescalls
Called from 2
Calls 1
- function-call
array_keysline 108
public function copy(): selfAn independent copy, so a branch can be analyzed without disturbing the caller.
Returns
selfTest cases 5
EnvironmentTest::testCopyIsIndependentOfTheOriginalcallsEnvironmentTest::testJoinPreservesCombinationUncertaintyAndPresenceWithoutInventingItcallsEnvironmentTest::testMarkAbsentSurvivesCopyAndJoincallsEnvironmentTest::testObjectsSharesSnapshotsAcrossAliasesButNotCopiescallsEnvironmentTest::testReplaceKeepsJoinedAlternativeObjectStatescalls
Called from 11
- method-call SqlCatalog\Core\Analysis\Derivation\CalleeReturns::returned() packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:143
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::fromCallers() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:251
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::withParameters() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:343
- method-call SqlCatalog\Core\Analysis\Derivation\Objects\CallbackEffects::bind() packages/sql-catalog/src/Core/Analysis/Derivation/Objects/CallbackEffects.php:103
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::apply() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:227
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::apply() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:232
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateOptionalRight() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:196
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateTernary() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:318
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateTernary() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:319
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateIsset() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:332
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateMatch() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:349
public function join(self $other): selfThe environment holding, for each variable, what either branch may leave in it.
A variable bound in only one branch keeps that branch's domain widened with the unresolved value it holds when the branch is not taken.
Parameters
$other | self |
Returns
selfTest cases 4
Called from 2
Calls 11
- new
selfline 130 - function-call
array_uniqueline 131 - function-call
array_mergeline 131 - method-call Environment::names() line 131
- method-call
self::names()line 131 - method-call Environment::presence() line 132
- method-call
self::presence()line 133 - method-call Environment::read() line 134
- method-call
self::read()line 134 - class-const Presence::Maybe() line 135
- method-call Environment::equals() line 137
public function presence(string $name): PresenceThe existence of a variable, independently of what value it holds.
Parameters
$name | string |
Returns
Test cases 8
SliceExecutorTest::testSplitBoundsIntermediateProductsWithoutLosingValuescallsWriteEffectsTest::testApplyInvalidatesAbsenceAndValuesWithoutChangingUnrelatedBindingscallsWriteEffectsTest::testAssignmentInvalidatesAliasValuesBeforeWritingTheTargetcallsExpressionEvaluatorTest::testEvaluateTraversesIncludeEffectsBeforeReadingAnotherOperandcallsEnvironmentTest::testInvalidateDoesNotTurnUnknownWritesIntoEmptyStringscallsEnvironmentTest::testMarkAbsentSurvivesCopyAndJoincallsEnvironmentTest::testNarrowDoesNotTurnPossibleAbsenceIntoPresentNullcallsEnvironmentTest::testPresenceSeparatesUndefinedNullAndUnknowncalls
Called from 3
- method-call SqlCatalog\Core\Evaluation\Environment::read() packages/sql-catalog/src/Core/Evaluation/Environment.php:52
- method-call SqlCatalog\Core\Evaluation\Environment::narrow() packages/sql-catalog/src/Core/Evaluation/Environment.php:78
- method-call SqlCatalog\Core\Evaluation\Environment::join() packages/sql-catalog/src/Core/Evaluation/Environment.php:132
Calls 1
- class-const Presence::Maybe() line 149
public function markAbsent(string $name): voidRecords that a variable is definitely undefined.
Parameters
$name | string |
Test cases 10
CallEvaluatorTest::testApplyEffectsKeepsKnownByValueArgumentsAndOpensReferencescallsSliceExecutorTest::testSplitBoundsIntermediateProductsWithoutLosingValuescallsWriteEffectsTest::testApplyInvalidatesAbsenceAndValuesWithoutChangingUnrelatedBindingscallsExpressionEvaluatorTest::testEvaluateTraversesIncludeEffectsBeforeReadingAnotherOperandcallsEnvironmentTest::testInvalidateDoesNotTurnUnknownWritesIntoEmptyStringscallsEnvironmentTest::testJoinPreservesCombinationUncertaintyAndPresenceWithoutInventingItcallsEnvironmentTest::testMarkAbsentSurvivesCopyAndJoincallsEnvironmentTest::testNarrowDoesNotTurnPossibleAbsenceIntoPresentNullcallsEnvironmentTest::testPresenceSeparatesUndefinedNullAndUnknowncallsEnvironmentTest::testReplaceRetainsPresenceAndCombinationMetadatacalls
Called from 3
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::parameterBindings() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:205
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::enterClosure() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:279
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::declare() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:292
Calls 1
- class-const Presence::Absent() line 158
public function invalidate(string $name, Origin $origin = Origin::Unresolved): voidForgets both the value and existence after an unmodelled write.
Parameters
$name | string | |
$origin | Origin |
Test cases 2
Called from 1
Calls 5
- class-const Origin::Unresolved() line 164
- method-call Environment::read() line 166
- static-call Domain::opaque() line 167
- static-call TypeShape::unknown() line 167
- class-const Presence::Maybe() line 168
public function replace(self $other): voidReplaces this state with the result of evaluating alternatives.
Parameters
$other | self |
Test cases 2
Called from 4
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateOptionalRight() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:198
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateTernary() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:322
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateIsset() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:335
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateMatch() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:362
public function signature(): stringA canonical string used to compare environments.
Returns
stringTest cases 34
EntryBinderTest::testFromCallersBindsEachArgumentAndFillsInWhatACallLeavesOutcallsEntryBinderTest::testWithParametersLeavesEveryParameterOpenForTheReasonGivencallsSliceExecutorTest::testAbandonLeavesOpenEveryNameTheStepsLeftWritecallsSliceExecutorTest::testApplyAssignsAnExpressionAndSplitsOnWhatItWrotecallsSliceExecutorTest::testApplyBindsADeclarationcallsSliceExecutorTest::testApplyEntersAClosureWithoutEvaluatingAnythingcallsSliceExecutorTest::testApplyEntersAnArrowFunctioncallsSliceExecutorTest::testApplyLeavesAnyOtherStatementAsItFoundItcallsSliceExecutorTest::testApplyRunsEveryAlternativeFromItsOwnCopycallsSliceExecutorTest::testAssignRunsEveryKindOfAssignmentcallsSliceExecutorTest::testBoundJoinsTheEnvironmentsPastTheLimitcallsSliceExecutorTest::testBoundOfOneJoinsThemAllcallsSliceExecutorTest::testDeclareUnsetClearsOnlyThePlainVariablesItNamescallsSliceExecutorTest::testIterateBindsTheValueAndKeyOfOnePasscallsSliceExecutorTest::testIterateWithoutAKeyBindsOnlyTheValuecallsSliceExecutorTest::testRunAbandonsTheStepsLeftOnceTheSearchBudgetIsExhaustedcallsSliceExecutorTest::testRunDropsRunsThatEndUpTheSamecallsSliceExecutorTest::testRunJoinsTheRunsPastTheLimitcallsSliceExecutorTest::testRunSplitsOnATernarySoLaterReadsAgreecallsSliceExecutorTest::testRunWhenClosingReadsOnPastTheSearchBudgetcallsSliceExecutorTest::testRunWhenClosingStopsOnceTheReadingBudgetIsSpentcallsSliceExecutorTest::testRunWithALimitOfOneKeepsTheValuesTogethercallsSliceExecutorTest::testSplitBoundsIntermediateProductsWithoutLosingValuescallsSliceExecutorTest::testSplitGoesOnPastANameWithNoValuesToTellApartcallsSliceExecutorTest::testSplitJoinsWhatGoesPastTheLimitcallsSliceExecutorTest::testSplitPairsEveryValueOfEveryNamecallsSliceExecutorTest::testSplitSkipsANameTheEnvironmentDoesNotBindcallsSliceExecutorTest::testSplitWritesOneEnvironmentPerValuecallsEnvironmentTest::testJoinPreservesCombinationUncertaintyAndPresenceWithoutInventingItcallsEnvironmentTest::testPresenceSeparatesUndefinedNullAndUnknowncallsEnvironmentTest::testSignatureDiffersForDifferentBindingscallsEnvironmentTest::testSignatureIsEmptyWithoutBindingscallsEnvironmentTest::testSignatureIsTheSameForTheSameBindingsInAnyOrdercallsEnvironmentTest::testSignatureWritesEachBindingSortedByNamecalls
Called from 1
Calls 4
- method-call Environment::read() line 189
- class-const Presence::Present() line 190
- function-call
sortline 192 - function-call
implodeline 196
public function equals(self $other): boolWhether the two environments bind the same names to the same values.
Parameters
$other | self |
Returns
boolTest cases 3
Called from 1
Calls 2
- method-call Environment::signature() line 204
- method-call
self::signature()line 204
Resolves an already-evaluated object reference after subsequent argument effects.
Parameters
$value | Domain |
Returns
Test cases 1
public function objects(): ObjectMemoryThe object snapshots shared by this run's aliases.
Returns
Test cases 3
Called from 13
- method-call SqlCatalog\Core\Analysis\CallEvaluator::evaluateMethod() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:190
- method-call SqlCatalog\Core\Analysis\CallEvaluator::invalidateEscapes() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:355
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateClone() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:182
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assign() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:307
- method-call SqlCatalog\Core\Evaluation\Environment::__construct() packages/sql-catalog/src/Core/Evaluation/Environment.php:41
- method-call SqlCatalog\Core\Evaluation\Environment::write() packages/sql-catalog/src/Core/Evaluation/Environment.php:68
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::methodCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:124
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::callback() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:151
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::connectionCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:196
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::mutate() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:237
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::execution() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:266
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::unsupported() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:305
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::unsupported() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:314
Calls 1
- new ObjectMemory line 220
Private surface 3§
Implementation details, listed for orientation only.
private array<string, Domain> $variablesprivate ?ObjectMemory $objectsprivate array<string, Presence> $presence = []Test cases 210§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 22
EnvironmentTest::testCopyIsIndependentOfTheOriginalcallsEnvironmentTest::testEqualsComparesBindingscallsEnvironmentTest::testForgetDropsABindingcallsEnvironmentTest::testHasReportsWhetherAVariableIsBoundcallsEnvironmentTest::testInvalidateDoesNotTurnUnknownWritesIntoEmptyStringscallsEnvironmentTest::testJoinKeepsABindingOnlyOneSideHascallsEnvironmentTest::testJoinKeepsWhatEitherSideMayHoldcallsEnvironmentTest::testJoinPreservesCombinationUncertaintyAndPresenceWithoutInventingItcallsEnvironmentTest::testMarkAbsentSurvivesCopyAndJoincallsEnvironmentTest::testNamesListsTheBoundVariablescallsEnvironmentTest::testNarrowDoesNotTurnPossibleAbsenceIntoPresentNullcallsEnvironmentTest::testObjectsSharesSnapshotsAcrossAliasesButNotCopiescallsEnvironmentTest::testPresenceSeparatesUndefinedNullAndUnknowncallsEnvironmentTest::testReadFallsBackToAnUnresolvedValuecallsEnvironmentTest::testRefreshObservesLaterMutationsThroughAnAlreadyEvaluatedReferencecallsEnvironmentTest::testReplaceKeepsJoinedAlternativeObjectStatescallsEnvironmentTest::testReplaceRetainsPresenceAndCombinationMetadatacallsEnvironmentTest::testSignatureDiffersForDifferentBindingscallsEnvironmentTest::testSignatureIsEmptyWithoutBindingscallsEnvironmentTest::testSignatureIsTheSameForTheSameBindingsInAnyOrdercallsEnvironmentTest::testSignatureWritesEachBindingSortedByNamecallsEnvironmentTest::testWriteBindsAVariablecalls
Other tests reaching this symbol 188
CatalogCommandTestcallsCallEvaluatorTest::testApplyEffectsKeepsKnownByValueArgumentsAndOpensReferencescallsCallEvaluatorTest::testArgumentsAreEvaluatedInOrdercallsCallEvaluatorTest::testArgumentsIsCalledWithTheCallItselfcallsCallEvaluatorTest::testEvaluateAppliesOnlyPossibleCallWritescallsCallEvaluatorTest::testEvaluateInstantiationResolvesSelfcallsCallEvaluatorTest::testEvaluateMethodFollowsAMethodDeclaredWithoutABodycallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAClassNoExtensionModelscallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAModelledClassOnlyFromItsOwnBodycallsCallEvaluatorTest::testEvaluateMethodGivesUpOnAMethodWhoseNameIsNotWrittencallsCallEvaluatorTest::testEvaluateOfAFirstClassCallableIsAClosurecallsCallEvaluatorTest::testEvaluateRetainsReferenceWritesForAModeledNamespacedFunctioncallsCallEvaluatorTest::testInvalidateEscapesOpensAliasedObjectStatecallsCallEvaluatorTest::testTheCallMethodsAreReachedDirectlycallsConstantReaderTestcallsBindingTest::testABindingHoldsTheNamesAndTheWayIncallsBindingTest::testABindingIsNeitherCutShortNorPairedUnlessItSaysSocallsCalleeReturnsTest::testReturnedReadsNullFromABareReturncallsCalleeReturnsTest::testReturnedReadsWhatTheReturnDependsOnFromTheStartcallsCalleeReturnsTest::testReturnedUnitesEveryRunOfTheSlicecallsCallersTestcallsDeriverTestcallsEntryBinderTest::testAffordableJoinsTheRestIntoOneThatIsNotCutShortWhenNoneOfThemWascallsEntryBinderTest::testAffordableJoinsTheWaysInBeyondTheLimitIntoOnecallsEntryBinderTest::testAffordableKeepsTheSameWaysInWithinTheLimitcallsEntryBinderTest::testFromCallersAsksNoMoreThanTheCallerLimitcallsEntryBinderTest::testFromCallersBindsEachArgumentAndFillsInWhatACallLeavesOutcallsEntryBinderTest::testFromCallersCarriesWhetherTheCallerPairedValuesWorkedOutApartcallsEntryBinderTest::testFromCallersCarriesWhetherTheCallerWasCutShortcallsEntryBinderTest::testFromCallersMarksEveryWayInCutShortWhenTheCallersArePartialcallsEntryBinderTest::testFromCallersMarksTheWaysInFoundBeforeTheBudgetRanOutAsCutShortcallsEntryBinderTest::testFromCallersStopsOnceTheBudgetIsSpentcallsEntryBinderTest::testWithParametersLeavesEveryParameterOpenForTheReasonGivencallsEntryBinderTest::testWithPropertyKeepsNoMoreWaysInThanTheSolutionLimitcallsEntryBinderTest::testWithPropertyLeavesTheWaysInAloneWithoutValuescallsEntryBinderTest::testWithPropertyMarksEveryWayInCombinedWhenAskedcallsEntryBinderTest::testWithPropertySplitsEveryWayInByEachValuecallsCallbackEffectsTest::testApplyFollowsMutationsOfTheCallbackParametercallsCallbackEffectsTest::testApplyLeavesCallbacksWithoutAReceiverOpencallsCallbackEffectsTest::testApplyRunsClosureEffectsThroughCapturedAliasesOfItsReceivercallsCallbackEffectsTest::testBindKeepsOnlyExplicitClosureCapturesAndPassedArgumentscallsPropertyWritesTestcallsSliceExecutorTest::testAbandonLeavesOpenEveryNameTheStepsLeftWritecallsSliceExecutorTest::testApplyAssignsAnExpressionAndSplitsOnWhatItWrotecallsSliceExecutorTest::testApplyBindsADeclarationcallsSliceExecutorTest::testApplyEntersAClosureWithoutEvaluatingAnythingcallsSliceExecutorTest::testApplyEntersAnArrowFunctioncallsSliceExecutorTest::testApplyGoesOnFromThePassAForeachReachedOverWhatItFirstReadcallsSliceExecutorTest::testApplyLeavesAnyOtherStatementAsItFoundItcallsSliceExecutorTest::testApplyRunsEveryAlternativeFromItsOwnCopycallsSliceExecutorTest::testApplySplitsAForeachPastItsElementsWithinTheLimitcallsSliceExecutorTest::testApplyStartsAForeachByReadingWhatItGoesOvercallsSliceExecutorTest::testAssignOnceTheBudgetIsSpentcallsSliceExecutorTest::testAssignQuotesWhatItCouldNotFollowcallsSliceExecutorTest::testAssignRunsEveryKindOfAssignmentcallsSliceExecutorTest::testBoundDropsRepeatsKeepingTheFirstcallsSliceExecutorTest::testBoundJoinsTheEnvironmentsPastTheLimitcallsSliceExecutorTest::testBoundKeepsEveryEnvironmentUpToTheLimitcallsSliceExecutorTest::testBoundKeepsTwelveApartByDefaultcallsSliceExecutorTest::testBoundOfOneJoinsThemAllcallsSliceExecutorTest::testDeclareGlobalTakesTheClassTheNameIsKnownToHoldcallsSliceExecutorTest::testDeclareStaticNeverTakesAClasscallsSliceExecutorTest::testDeclareUnsetClearsOnlyThePlainVariablesItNamescallsSliceExecutorTest::testEnterClosureBindsParametersAndMarksOtherLocalsAbsentcallsSliceExecutorTest::testEnterClosureMarksNamesWithoutAParameterAbsentcallsSliceExecutorTest::testEnterClosureOfAnArrowFunctionReadsItsParameterTypescallsSliceExecutorTest::testIterateBindsTheValueAndKeyOfOnePasscallsSliceExecutorTest::testIterateOverAnythingElseQuotesTheIteratedKeyAndValuecallsSliceExecutorTest::testIterateWithoutAKeyBindsOnlyTheValuecallsSliceExecutorTest::testRunAbandonsTheStepsLeftOnceTheSearchBudgetIsExhaustedcallsSliceExecutorTest::testRunDropsRunsThatEndUpTheSamecallsSliceExecutorTest::testRunJoinsTheRunsPastTheLimitcallsSliceExecutorTest::testRunSizesTheLimitFromTheBudgetWhenNoneIsGivencallsSliceExecutorTest::testRunSplitsOnATernarySoLaterReadsAgreecallsSliceExecutorTest::testRunWhenClosingReadsOnPastTheSearchBudgetcallsSliceExecutorTest::testRunWhenClosingStopsOnceTheReadingBudgetIsSpentcallsSliceExecutorTest::testRunWithALimitOfOneKeepsTheValuesTogethercallsSliceExecutorTest::testRunWithNoStepsHandsBackTheStartcallsSliceExecutorTest::testSplitBoundsIntermediateProductsWithoutLosingValuescallsSliceExecutorTest::testSplitGoesOnPastANameWithNoValuesToTellApartcallsSliceExecutorTest::testSplitJoinsWhatGoesPastTheLimitcallsSliceExecutorTest::testSplitKeepsTheEnvironmentWhenTheNameHasNoValuesToTellApartcallsSliceExecutorTest::testSplitPairsEveryValueOfEveryNamecallsSliceExecutorTest::testSplitSkipsANameTheEnvironmentDoesNotBindcallsSliceExecutorTest::testSplitWithALimitBelowTwoKeepsTheEnvironmentcallsSliceExecutorTest::testSplitWritesOneEnvironmentPerValuecallsWriteEffectsTest::testApplyInvalidatesAbsenceAndValuesWithoutChangingUnrelatedBindingscallsWriteEffectsTest::testAssignmentInvalidatesAliasValuesBeforeWritingTheTargetcallsExpressionEvaluatorTest::testEvaluatecallsExpressionEvaluatorTest::testEvaluateAppendIsCalledWithTheExpressionItselfcallsExpressionEvaluatorTest::testEvaluateAppendStartsFromWhatTheVariableAlreadyHoldscallsExpressionEvaluatorTest::testEvaluateAssignIsCalledWithTheExpressionItselfcallsExpressionEvaluatorTest::testEvaluateAssignWritesIntoTheEnvironmentcallsExpressionEvaluatorTest::testEvaluateCastEndsTheTrailBackToExternalInputcallsExpressionEvaluatorTest::testEvaluateCastNamesTheTypeACastProducesWhenTheValueIsNotKnowncallsExpressionEvaluatorTest::testEvaluateCastOfAnObjectKnowsOnlyThatItIsOnecallsExpressionEvaluatorTest::testEvaluateCloneCreatesAnIndependentTrackedAllocationcallsExpressionEvaluatorTest::testEvaluateGivesUpOnceTheBudgetIsSpentcallsExpressionEvaluatorTest::testEvaluateInterpolationIsCalledWithTheExpressionItselfcallsExpressionEvaluatorTest::testEvaluateInterpolationJoinsLiteralPartsAndExpressionscallsExpressionEvaluatorTest::testEvaluateInvalidatesAllAliasesOfAReferenceAssignedObjectcallsExpressionEvaluatorTest::testEvaluateIssetDoesNotEvaluatePredicatescallsExpressionEvaluatorTest::testEvaluateIssetKeepsIntermediateOperandWritescallsExpressionEvaluatorTest::testEvaluateIssetKeepsPossibleOperandEffectscallsExpressionEvaluatorTest::testEvaluateMatchOfNoArmsKnowsNothingcallsExpressionEvaluatorTest::testEvaluateMatchRetainsEarlierConditionEffectsForLaterArmscallsExpressionEvaluatorTest::testEvaluateMatchSeesAssignmentsInTheSubjectAndInTheConditionscallsExpressionEvaluatorTest::testEvaluateOfAMatchKeepsEveryArmcallsExpressionEvaluatorTest::testEvaluateOfAnAppendingAssignmentExtendsTheVariablecallsExpressionEvaluatorTest::testEvaluateOfAnInterpolatedStringJoinsItsPartscallsExpressionEvaluatorTest::testEvaluateOfATernaryKeepsBothBranchescallsExpressionEvaluatorTest::testEvaluateOperandsEvaluatesEveryOperandInPlacecallsExpressionEvaluatorTest::testEvaluateOperatorOfACoalesceKeepsBothSidescallsExpressionEvaluatorTest::testEvaluateOperatorOnlyAnswersForOperatorscallsExpressionEvaluatorTest::testEvaluateOptionalRightKeepsTheUnwrittenAlternativecallsExpressionEvaluatorTest::testEvaluateResultReportsTheTypeTheOperatorProducescallsExpressionEvaluatorTest::testEvaluateResultSeesAnAssignmentWrittenInsideTheOperandcallsExpressionEvaluatorTest::testEvaluateSeesAnAssignmentWrittenInsideAnOperatorItDoesNotModelcallsExpressionEvaluatorTest::testEvaluateTernaryHandlesTheShortFormcallsExpressionEvaluatorTest::testEvaluateTernaryIsCalledWithTheExpressionItselfcallsExpressionEvaluatorTest::testEvaluateTernaryKeepsBothBranchesEvenForKnownConditionscallsExpressionEvaluatorTest::testEvaluateTraversesIncludeEffectsBeforeReadingAnotherOperandcallsRegistryTest::testEvaluateCallUsesTheNewestHandlingFunctionAndPreservesItsDomaincallsInterpreterTest::testEvaluatorForWiresAnEvaluatorOverTheFilescallsModelQueriesTestcallsReferenceEvaluatorTest::testAssignElementIgnoresATargetItCannotNamecallsReferenceEvaluatorTest::testAssignElementKeepsWhetherTheArrayIsKnownInFullcallsReferenceEvaluatorTest::testAssignElementMarksTheArrayANestedWriteGoesIntoAsIncompletecallsReferenceEvaluatorTest::testAssignLeavesATargetItDoesNotTrackAlonecallsReferenceEvaluatorTest::testAssignListDescendsIntoANestedListcallsReferenceEvaluatorTest::testAssignListLeavesAGapCarryingTheOriginOfAValueThatIsNotAKnownArraycallsReferenceEvaluatorTest::testAssignListLeavesAGapForAnElementTheArrayDoesNotHoldcallsReferenceEvaluatorTest::testAssignListReadsAKeyedTargetByItsKeycallsReferenceEvaluatorTest::testAssignListWritesEachElementIntoTheTargetAtItsPositioncallsReferenceEvaluatorTest::testAssignWritesIntoAnArrayHeldByAVariablecallsReferenceEvaluatorTest::testEvaluatecallsReferenceEvaluatorTest::testEvaluateOnlyAnswersForReferencescallsReferenceEvaluatorTest::testEvaluateReadsAnInstantiationAStaticPropertyAndAClosurecallsReferenceEvaluatorTest::testLoseTrackLeavesAnythingThatIsNotATrackedArrayAlonecallsReferenceEvaluatorTest::testLoseTrackMarksAnArrayHeldByAPropertyOfThisAsIncompletecallsReferenceEvaluatorTest::testLoseTrackMarksTheArrayANestedWriteGoesIntoAsIncompletecallsReferenceEvaluatorTest::testReadArrayIsCalledWithTheExpressionItselfcallsReferenceEvaluatorTest::testReadArrayKeepsTheElementsWrittenAfterAnUnpackingcallsReferenceEvaluatorTest::testReadArrayKnowsALiteralWithoutUnpackingInFullcallsReferenceEvaluatorTest::testReadArrayMarksAnUnpackedLiteralIncompletecallsReferenceEvaluatorTest::testReadElementFallsBackToTheOriginOfTheArraycallsReferenceEvaluatorTest::testReadElementIsCalledWithTheExpressionItselfcallsReferenceEvaluatorTest::testReadElementLeavesAGapForAnElementTheArrayDoesNotHoldcallsReferenceEvaluatorTest::testReadElementUnderAKeyThatDidNotResolveQuotesTheGapOfAnArrayKnownOnlyInPartcallsReferenceEvaluatorTest::testReadElementUnderAKeyThatDidNotResolveReadsEveryElementcallsReferenceEvaluatorTest::testReadEnumPropertyNarrowsToOneCaseWhenTheCaseIsKnowncallsReferenceEvaluatorTest::testReadEnumPropertyReadsCaseNamescallsReferenceEvaluatorTest::testReadPropertyFallsBackToTheDeclaredTypecallsReferenceEvaluatorTest::testReadPropertyFallsBackToTheDeclaredTypeOfAStaticPropertyTheClassAssignscallsReferenceEvaluatorTest::testReadPropertyIsCalledWithTheExpressionItselfcallsReferenceEvaluatorTest::testReadPropertyPrefersWhatTheBodyAssignedEarliercallsReferenceEvaluatorTest::testReadPropertyQuotesAPropertyItCannotNamecallsReferenceEvaluatorTest::testReadPropertyQuotesAStaticPropertyWhoseClassItCannotNamecallsReferenceEvaluatorTest::testReadPropertyReadsTheSettledDefaultOfAStaticPropertycallsReferenceEvaluatorTest::testReadVariableGivesUpOnAVariableVariablecallsReferenceEvaluatorTest::testReadVariableNamesTheExternalInputItReadscallsReferenceEvaluatorTest::testReadVariablePreservesProvenanceAndDomainFlagsWhileNamingOpaqueValuescallsReferenceEvaluatorTest::testReadVariableResolvesThisToTheEnclosingClasscallsCallContextTest::testKeepsTheModelContractInputscallsQueryModelInterfaceTestcallsBuilderCallsTest::testCallbackReturnsNullWithoutARegisteredRunnercallsBuilderCallsTest::testConnectionCallAliasesTheTableAndKeepsUnknownTablesOpencallsBuilderCallsTest::testConnectionCallAllocatesIndependentQueriesAndExplicitRawExpressionscallsBuilderCallsTest::testConnectionCallPreservesRawSqlAndAnExplicitConnectionNamecallsBuilderCallsTest::testExecutionFindRetainsItsPredicateAndTheModelReturnTypecallsBuilderCallsTest::testExecutionPreservesFirstLimitAndReturnsACollectionForGetcallsBuilderCallsTest::testExecutionRetainsTheWindowOfSingleRowReadsAndTheirReturnTypescallsBuilderCallsTest::testExecutionReturnsTheFrameworkTypeWithoutInventingAnotherQuerycallsBuilderCallsTest::testMethodCallMutatesTheExistingIdentityAndLeavesOtherClassesAlonecallsBuilderCallsTest::testMutateNamesTheUnmodelledOperationInItsDiagnosticcallsBuilderCallsTest::testMutateOnlyChangesSoftDeleteModesForModelsUsingTheTraitcallsBuilderCallsTest::testMutateRetainsEarlierUnknownEffectscallsBuilderCallsTest::testMutateTreatsIdentityCallsAndEagerLoadsWithoutOpeningTheQuerycallsBuilderCallsTest::testStaticCallCreatesFacadeQueriesAndDoesNotModelUnrelatedStaticscallsBuilderCallsTest::testUnsupportedInvalidatesAliasesWithoutLosingTheirIdentitycallsBuilderQueriesTestcallsCallbackModelTest::testApplyRunsSourceDeclaredLocalScopescallsCallbackModelTest::testConditionalKeepsBothOutcomesOfWhenAndUnlesscallsCallbackModelTest::testNestedRestoresOuterClausesAndGroupsOnlyNewPredicatescallsCallModelTestcallsAnalyzerTestcallsJsonReporterTestcallsTextReporterTestcalls
Relations§
Instantiated in 15
- new SqlCatalog\Core\Analysis\CallEvaluator::evaluateStatic() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:282
- new SqlCatalog\Core\Analysis\CallEvaluator::evaluateFunction() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:322
- new SqlCatalog\Core\Analysis\ConstantReader::readConstant() packages/sql-catalog/src/Core/Analysis/ConstantReader.php:57
- new SqlCatalog\Core\Analysis\ConstantReader::readClassConstant() packages/sql-catalog/src/Core/Analysis/ConstantReader.php:119
- new SqlCatalog\Core\Analysis\Derivation\CalleeReturns::parameters() packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:170
- new SqlCatalog\Core\Analysis\Derivation\CalleeReturns::parameters() packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:176
- new SqlCatalog\Core\Analysis\Derivation\EntryBinder::affordable() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:94
- new SqlCatalog\Core\Analysis\Derivation\EntryBinder::evaluateConstant() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:177
- new SqlCatalog\Core\Analysis\Derivation\EntryBinder::parameterBindings() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:202
- new SqlCatalog\Core\Analysis\Derivation\EntryBinder::defaultOf() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:303
- new SqlCatalog\Core\Analysis\Derivation\EntryBinder::leaveOpen() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:358
- new SqlCatalog\Core\Analysis\Derivation\EntryBinder::fileScope() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:377
- new SqlCatalog\Core\Analysis\ReferenceEvaluator::readProperty() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:208
- new SqlCatalog\Core\Analysis\ReferenceEvaluator::readEnumProperty() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:245
- new SqlCatalog\Extension\Laravel\CallbackModel::apply() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:57
Method calls 54
- method-call SqlCatalog\Core\Analysis\CallEvaluator::applyEffects() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:129
- method-call SqlCatalog\Core\Analysis\CallEvaluator::evaluateMethod() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:190
- method-call SqlCatalog\Core\Analysis\CallEvaluator::evaluateMethod() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:194
- method-call SqlCatalog\Core\Analysis\CallEvaluator::invalidateEscapes() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:355
- method-call SqlCatalog\Core\Analysis\CallEvaluator::invalidateEscapes() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:355
- method-call SqlCatalog\Core\Analysis\Derivation\CalleeReturns::returned() packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:143
- method-call SqlCatalog\Core\Analysis\Derivation\CalleeReturns::parameters() packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:178
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::parameterBindings() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:205
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::fromCallers() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:251
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::withParameters() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:343
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::leaveOpen() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:360
- method-call SqlCatalog\Core\Analysis\Derivation\EntryBinder::fileScope() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:380
- method-call SqlCatalog\Core\Analysis\Derivation\Objects\CallbackEffects::bind() packages/sql-catalog/src/Core/Analysis/Derivation/Objects/CallbackEffects.php:103
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::apply() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:227
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::apply() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:232
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::enterClosure() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:277
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::enterClosure() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:279
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::declare() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:292
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::declare() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:300
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::split() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:378
- method-call SqlCatalog\Core\Analysis\Derivation\SliceExecutor::split() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:381
- method-call SqlCatalog\Core\Analysis\Effect\WriteEffects::apply() packages/sql-catalog/src/Core/Analysis/Effect/WriteEffects.php:132
- method-call SqlCatalog\Core\Analysis\Effect\WriteEffects::apply() packages/sql-catalog/src/Core/Analysis/Effect/WriteEffects.php:135
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateClone() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:182
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateOptionalRight() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:196
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateOptionalRight() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:198
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateOptionalRight() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:198
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateTernary() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:318
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateTernary() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:319
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateTernary() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:322
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateIsset() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:332
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateIsset() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:335
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateIsset() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:335
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateMatch() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:349
- method-call SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateMatch() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:362
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::readVariable() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:103
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::readProperty() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:185
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::readProperty() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:186
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assign() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:299
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assign() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:307
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assignElement() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:380
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assignElement() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:380
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::assignElement() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:384
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::loseTrack() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:396
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::loseTrack() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:396
- method-call SqlCatalog\Core\Analysis\ReferenceEvaluator::loseTrack() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:398
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::methodCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:124
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::callback() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:151
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::connectionCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:196
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::mutate() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:237
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::execution() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:266
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::unsupported() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:305
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::unsupported() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:314
- method-call SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:112
Type declarations 58
- type SqlCatalog\Core\Analysis\CallEvaluator packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:77
- type SqlCatalog\Core\Analysis\CallEvaluator packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:112
- type SqlCatalog\Core\Analysis\CallEvaluator packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:161
- type SqlCatalog\Core\Analysis\CallEvaluator packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:181
- type SqlCatalog\Core\Analysis\CallEvaluator packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:266
- type SqlCatalog\Core\Analysis\CallEvaluator packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:310
- type SqlCatalog\Core\Analysis\CallEvaluator packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:351
- type SqlCatalog\Core\Analysis\Derivation\Binding packages/sql-catalog/src/Core/Analysis/Derivation/Binding.php:23
- type SqlCatalog\Core\Analysis\Derivation\CalleeReturns packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:136
- type SqlCatalog\Core\Analysis\Derivation\CalleeReturns packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:168
- type SqlCatalog\Core\Analysis\Derivation\EntryBinder packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:239
- type SqlCatalog\Core\Analysis\Derivation\EntryBinder packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:341
- type SqlCatalog\Core\Analysis\Derivation\EntryBinder packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:356
- type SqlCatalog\Core\Analysis\Derivation\EntryBinder packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:375
- type SqlCatalog\Core\Analysis\Derivation\Objects\CallbackEffects packages/sql-catalog/src/Core/Analysis/Derivation/Objects/CallbackEffects.php:36
- type SqlCatalog\Core\Analysis\Derivation\Objects\CallbackEffects packages/sql-catalog/src/Core/Analysis/Derivation/Objects/CallbackEffects.php:101
- type SqlCatalog\Core\Analysis\Derivation\SliceExecutor packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:99
- type SqlCatalog\Core\Analysis\Derivation\SliceExecutor packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:217
- type SqlCatalog\Core\Analysis\Derivation\SliceExecutor packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:267
- type SqlCatalog\Core\Analysis\Derivation\SliceExecutor packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:287
- type SqlCatalog\Core\Analysis\Derivation\SliceExecutor packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:316
- type SqlCatalog\Core\Analysis\Derivation\SliceExecutor packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:345
- type SqlCatalog\Core\Analysis\Derivation\SliceExecutor packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:371
- type SqlCatalog\Core\Analysis\Effect\WriteEffects packages/sql-catalog/src/Core/Analysis/Effect/WriteEffects.php:65
- type SqlCatalog\Core\Analysis\Effect\WriteEffects packages/sql-catalog/src/Core/Analysis/Effect/WriteEffects.php:129
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:61
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:100
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:132
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:174
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:193
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:212
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:254
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:297
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:315
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:330
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:344
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:370
- type SqlCatalog\Core\Analysis\ExpressionEvaluator packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:381
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:53
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:89
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:111
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:141
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:180
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:291
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:329
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:362
- type SqlCatalog\Core\Analysis\ReferenceEvaluator packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:390
- type SqlCatalog\Core\Extension\Model\CallContext packages/sql-catalog/src/Core/Extension/Model/CallContext.php:33
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:80
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:103
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:147
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:185
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:217
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:247
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:299
- type SqlCatalog\Extension\Laravel\CallbackModel packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:35
- type SqlCatalog\Extension\Laravel\CallbackModel packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:67
- type SqlCatalog\Extension\Laravel\CallbackModel packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:108