classProgramIndexBuilder
final class ProgramIndexBuilder
Collects every declaration of a parsed source tree into one index.
Methods§
public function __construct(?TypeReader $types = null)Builds a collector that reads declarations with the given type reader.
Parameters
$types | ?TypeReader |
Calls 2
- new
NodeFinderline 37 - new TypeReader line 38
public function build(list<ParsedFile> $files): ProgramIndexThe index of every declaration in the given files.
Parameters
$files | list<ParsedFile> |
Returns
Test cases 178
CallEvaluatorTest::testApplyEffectsKeepsKnownByValueArgumentsAndOpensReferencescallsCallEvaluatorTest::testApplyPrepareHandsBackAHandleLaterCallsFindcallsCallEvaluatorTest::testApplySinkBindsWhatAQueryCallCarriescallsCallEvaluatorTest::testBindValuesAttachesVariadicArgumentscallsCallEvaluatorTest::testCallKeyOfTellsOneCallApartFromEveryOthercallsCallEvaluatorTest::testDispatchReadsTheImplementationsTheSourceDeclarescallsCallEvaluatorTest::testDispatchResolvesAcrossTheImplementationsTheSourceDeclarescallsCallEvaluatorTest::testEvaluateAppliesOnlyPossibleCallWritescallsCallEvaluatorTest::testEvaluateFollowsAFreeFunctionOfTheAnalyzedSourcecallsCallEvaluatorTest::testEvaluateFollowsAMethodOfTheAnalyzedSourcecallsCallEvaluatorTest::testEvaluateFollowsAStaticCallOfTheAnalyzedSourcecallsCallEvaluatorTest::testEvaluateFunctionGivesUpWhenTheNameIsNotWrittencallsCallEvaluatorTest::testEvaluateInstantiationGivesTheDriverItsTypecallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAClassNoExtensionModelscallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAModelledClassOnlyFromItsOwnBodycallsCallEvaluatorTest::testEvaluateMethodGivesUpWhenTheNameIsNotWrittencallsCallEvaluatorTest::testEvaluateReadsExternalInputThroughAFunctioncallsCallEvaluatorTest::testEvaluateRecordsAQueryCallcallsCallEvaluatorTest::testEvaluateRetainsReferenceWritesForAModeledNamespacedFunctioncallsCallEvaluatorTest::testEvaluateStaticGivesUpWhenTheClassIsNotWrittencallsCallEvaluatorTest::testEvaluateStaticResolvesTheSelfKeywordsToTheEnclosingClasscallsCallEvaluatorTest::testFollowReadsTheSameCallOnceForTheSameArgumentscallsCallEvaluatorTest::testFollowStopsAtRecursioncallsCallEvaluatorTest::testFollowStopsAtTheDepthLimitcallsCallEvaluatorTest::testIsOwnReceiverTellsACallOnItselfApartFromOneOnSomethingElsecallsCallEvaluatorTest::testRecordStatementsIgnoresACallWithoutItsStatementcallsCallEvaluatorTest::testSiteKeyOfTellsTwoCallsOnOneLineApartcallsCallEvaluatorTest::testSiteOfNamesWhereTheCallIsWrittencallsCallEvaluatorTest::testTheCallMethodsAreReachedDirectlycallsConstantReaderTest::testConstantNamePrefersTheOneTheNamespaceDeclarescallsConstantReaderTest::testConstantNameReadsTheNamespacedConstantOnlyWhenTheNamespaceDeclaresItcallsConstantReaderTest::testReadClassConstantReadsWhatTheClassDeclarescallsConstantReaderTest::testReadClassConstantTellsAnEnumCaseFromAConstantOfTheEnumcallsConstantReaderTest::testReadConstantResolvesTheKeywordsAndTheDeclarationscallsCalleeReturnsTest::testParametersFallsBackToTheDefaultOfAParameterNotPassedcallsCalleeReturnsTest::testReadDoesNotRememberWhatAnExhaustedBudgetCutShortcallsCalleeReturnsTest::testReadEntersTheCalleeSoACallBackIntoItIsNotFollowedAgaincallsCalleeReturnsTest::testReadReturnsNullFromABodyWithoutAReturncallsCalleeReturnsTest::testReadRunsAMethodInItsOwnClassAndAFunctionInTheCallersClasscallsCalleeReturnsTest::testReadUnitesWhatEveryReturnCanReturncallsCalleeReturnsTest::testValueOfAnswersACallWithTheSameArgumentsFromMemorycallsCalleeReturnsTest::testValueOfKeepsAbsenceDistinctFromUnresolvedReturnscallsCalleeReturnsTest::testValueOfLeavesAnAbstractMethodAsACallItDidNotFollowcallsCalleeReturnsTest::testValueOfReadsWhatTheCalleeReturnscallsCalleeReturnsTest::testValueOfStopsAtACallAlreadyBeingFollowedcallsCalleeReturnsTest::testValueOfStopsAtTheDepthLimitAndFollowsJustBelowItcallsCalleeReturnsTest::testValueOfStopsOnceTheBudgetIsExhaustedcallsCallersTest::testInheritorsOfListsTheSubclassesThatInheritTheConstructorcallsCallersTest::testInstantiationsIncludeSubclassesThatInheritTheConstructorcallsCallersTest::testInstantiationsMatchTheClassEachNewIsWrittenWithcallsCallersTest::testInstantiationsReadSelfAndStaticAsTheClassTheyAreWrittenIncallsCallersTest::testOfFindsNoCallersOfAClosurecallsCallersTest::testOfFindsNoCallersOfAMethodWrittenOutsideAnyClasscallsCallersTest::testOfFindsTheCallsWrittenWithAFunctionsNamecallsCallersTest::testOfFindsTheExplicitCallsOfAConstructorAsWellAsTheInstantiationscallsCallersTest::testOfFindsTheInstantiationsOfAClassForItsConstructorcallsCallersTest::testOfIsNotPartialWhenEveryCallIsAccountedForcallsCallersTest::testOfKeepsTheCallsThatCanReachTheMethodInTheOrderWrittencallsCallersTest::testOfListsEveryCallerWithoutStoppingAtTheCallerLimitcallsCallersTest::testOfMarksTheCallersPartialWhenACallMightReachTheMethodWithoutThatBeingCertaincallsCallersTest::testOfSkipsClassesAnExtensionModelscallsCallersTest::testReachesCannotTellOnceTheBudgetIsSpentcallsCallersTest::testReachesDecidesWhetherACallCanLandInTheMethodcallsCallersTest::testReachesWorksOutTheReceiverOneCallDeepercallsCallersTest::testRelatedHoldsBetweenAClassAndItsHierarchyInEitherDirectioncallsCallersTest::testRelatedStopsAtAnOverrideBetweenTheReceiverAndTheDeclaringClasscallsCallersTest::testStaticTargetIsTheClassTheLookupStartsFromcallsDeriverTest::testClassOfNamesTheNearestClassANodeIsWrittenIncallsDeriverTest::testNameOfNamesABodyTheWayItIsReportedcallsDeriverTest::testRunKeepsReadingPastTheSearchBudgetOnlyAtDepthZerocallsDeriverTest::testRunReadsTheGoalsAfterRunningEachArrivalForwardcallsDeriverTest::testScopeOfAClosureNamesTheEnclosingBodycallsDeriverTest::testScopeOfNamesTheFileTheBodyAndTheClassOfAPointcallsDeriverTest::testSolveAtExitsDoesNotHandBackWhatItFoundOnceTheBudgetRanOutcallsDeriverTest::testSolveAtExitsEvaluatesTheGoalsInTheScopeOfTheBodycallsDeriverTest::testSolveAtExitsIsRememberedApartFromSolvingAtTheBodycallsDeriverTest::testSolveAtExitsReadsGoalsAtEveryReturnAndAtTheEndcallsDeriverTest::testSolveAtExitsRemembersWhatItFoundForTheSameBodyGoalsAndDepthcallsDeriverTest::testSolveAtExitsTakesACallOfTheBodyItselfAsRecursioncallsDeriverTest::testSolveAtExitsTellsBodiesGoalsAndDepthsApartcallsDeriverTest::testSolveEvaluatesTheGoalsInTheScopeOfTheBodyThePointIsIncallsDeriverTest::testSolveForgetsWhatItFoundOnceTheBudgetRanOutcallsDeriverTest::testSolveGivesOneSolutionPerBranchWithCorrelatedValuescallsDeriverTest::testSolveKeepsTheRunsOfEveryWayInApartWhileTheBudgetAffordsThemcallsDeriverTest::testSolveLeavesAParameterNothingPassesOpenAsAParametercallsDeriverTest::testSolveLeavesAParameterOpenForTheBudgetOnceTheCallsAreTooDeepcallsDeriverTest::testSolveMarksEverySolutionTruncatedWhenCallsWereLeftOutcallsDeriverTest::testSolveMarksTheWaysInJoinedForWantOfBudgetAsCombinedcallsDeriverTest::testSolveReadsAParameterAtEveryCallOfItsBodycallsDeriverTest::testSolveReadsWhatTheGoalsNeedWithTheNamesItWasGivencallsDeriverTest::testSolveRemembersWhatItFoundForTheSamePointGoalsAndDepthcallsDeriverTest::testSolveSharesTheRunsTheBudgetAffordsAmongTheWaysIncallsDeriverTest::testSolveTakesACallOfTheBodyThePointIsInAsRecursioncallsDeriverTest::testSolveTellsPointsGoalsAndDepthsApartcallsDeriverTest::testSolveUnlessSpentGivesNothingOnceTheBudgetIsSpentcallsDeriverTest::testSolveUnlessSpentSolvesWhileTheBudgetLastscallsEntryBinderTest::testBindingsBindEachPropertyOfThisToEveryValueTheClassLeavesItcallsEntryBinderTest::testBindingsLeaveThePropertiesAloneWhereThereIsNoObjectcallsEntryBinderTest::testBindingsLeaveThePropertiesAloneWithoutAReaderOfPropertyWritescallsEntryBinderTest::testBindingsLeaveThePropertiesOpenOnAPathTheBudgetStoppedcallsEntryBinderTest::testDefaultOfIsWhatAParameterHoldsWhenACallLeavesItOutcallsEntryBinderTest::testEvaluateConstantReadsConstantsOfTheClassGivencallsEntryBinderTest::testFromCallersAsksNoMoreThanTheCallerLimitcallsEntryBinderTest::testFromCallersBindsEachArgumentAndFillsInWhatACallLeavesOutcallsEntryBinderTest::testFromCallersCarriesWhetherTheCallerPairedValuesWorkedOutApartcallsEntryBinderTest::testFromCallersCarriesWhetherTheCallerWasCutShortcallsEntryBinderTest::testFromCallersMarksEveryWayInCutShortWhenTheCallersArePartialcallsEntryBinderTest::testFromCallersMarksTheWaysInFoundBeforeTheBudgetRanOutAsCutShortcallsEntryBinderTest::testFromCallersStopsOnceTheBudgetIsSpentcallsEntryBinderTest::testParameterBindingsBindMethodParametersFromCallsOnInstancesOfTheClasscallsEntryBinderTest::testParameterBindingsBlameTheBudgetWhenLookingForCallersSpentItcallsEntryBinderTest::testParameterBindingsFollowEveryCallerOfTheBodycallsEntryBinderTest::testParameterBindingsLeaveAParameterNothingCallsOpencallsEntryBinderTest::testParameterBindingsLeaveAParameterOpenOnceTheBudgetIsSpentcallsEntryBinderTest::testParameterBindingsLeaveEverythingOpenOnAPathTheBudgetStoppedcallsEntryBinderTest::testParameterBindingsLeaveTheParameterOpenAndCutShortWhenNoCallCanBeConfirmedcallsEntryBinderTest::testParameterBindingsLeaveTheParameterOpenWithoutCuttingShortWhenNothingCallsItcallsEntryBinderTest::testParameterBindingsMarkUndefinedLocalsAbsentWithoutAskingCallerscallsEntryBinderTest::testParameterBindingsReadWhatTheTopOfAFileIsDeclaredToHoldcallsEntryBinderTest::testParameterBindingsStopAtTheDepthLimitcallsEntryBinderTest::testParameterValuesReadWhatEveryCallerPassescallsPropertyWritesTest::testDefaultOfIsTheNearestDeclaredDefaultcallsPropertyWritesTest::testPromotionsAreTheConstructorsPromotingAParameterOfThatNamecallsPropertyWritesTest::testValuesOfCollectsWhatEveryWriterLeavescallsPropertyWritesTest::testValuesOfReadsThePropertyAgainOnceTheFirstReadingIsDonecallsPropertyWritesTest::testValuesOfSkipsTheWritersOnceTheBudgetIsSpentcallsPropertyWritesTest::testWritersOfFindsTheMethodsOfTheClassAndItsAncestorsThatWriteThePropertycallsPropertyWritesTest::testWritesSeesOnlyAssignmentsToThePropertyOfThiscallsWriteEffectsTest::testArgumentsUsesReferenceDeclarationsAndNamedArgumentscallsInterpreterTest::testAnalyzeBindsWhatAnExecuteBindsToTheStatementItsHandleCameFromcallsInterpreterTest::testAnalyzeBindsWhatANullsafeExecuteBindscallsInterpreterTest::testAnalyzeBindsWhatAQueryCallCarriesAlongsideItsStatementcallsInterpreterTest::testAnalyzeGivesEveryCallTheWholeBudgetcallsInterpreterTest::testAnalyzeKeepsWhatEveryCallBindscallsInterpreterTest::testAnalyzeReadsEveryStatementFromTheCallThatIssuesItcallsInterpreterTest::testAnalyzeRecordsNothingAtACallThatOnlyComposesAStatementcallsInterpreterTest::testAnalyzeSpendsNoMoreThanTheBudgetItIsGivencallsInterpreterTest::testAnalyzeWithATinyBudgetStillReportsTheCallcallsInterpreterTest::testEvaluatorForWiresAnEvaluatorOverTheFilescallsInterpreterTest::testReceiverOfJoinsEveryWayTheReceiverCanBecallsInterpreterTest::testSinkOfReadsANullsafeCallAndAFunctionCallcallsInterpreterTest::testSinkOfResolvesAStaticCallOnTheEnclosingClasscallsInterpreterTest::testSinkOfTellsADatabaseCallFromAnotherCallOfTheSameNamecallsInterpreterTest::testVisitHandsBackWhatAnExecuteBindscallsInterpreterTest::testVisitRecordsAStatementAndHandsBackNothingToBindLatercallsInterpreterTest::testVisitRecordsNothingForACallWithoutItsStatementcallsInterpreterTest::testVisitRecordsNothingForADatabaseCallThatTakesNoStatementcallsReferenceEvaluatorTest::testEvaluatecallsReferenceEvaluatorTest::testReadElementUnderAKeyThatDidNotResolveReadsEveryElementcallsReferenceEvaluatorTest::testReadEnumPropertyNarrowsToOneCaseWhenTheCaseIsKnowncallsReferenceEvaluatorTest::testReadEnumPropertyOnlyAnswersForAnEnumcallsReferenceEvaluatorTest::testReadEnumPropertyReadsCaseNamescallsReferenceEvaluatorTest::testReadEnumPropertyReadsTheCaseTheValueIscallsReferenceEvaluatorTest::testReadInstanceResolvesStaticToTheEnclosingClasscallsReferenceEvaluatorTest::testReadPropertyFallsBackToTheDeclaredTypecallsReferenceEvaluatorTest::testReadPropertyFallsBackToTheDeclaredTypeOfAStaticPropertyTheClassAssignscallsReferenceEvaluatorTest::testReadPropertyIsCalledWithTheExpressionItselfcallsReferenceEvaluatorTest::testReadPropertyPrefersWhatTheBodyAssignedEarliercallsReferenceEvaluatorTest::testReadPropertyReadsTheSettledDefaultOfAStaticPropertycallsSinkMatcherTest::testClassMatchesFollowsInheritanceDeclaredInTheAnalyzedSourcecallsProgramIndexBuilderTest::testBuildIndexesClassesFunctionsAndConstantscallsProgramIndexTest::testFindClassConstantFollowsTheParentClasscallsProgramIndexTest::testFindMethodFollowsTheParentClasscallsProgramIndexTest::testFindPropertyTypeFollowsTheParentClasscallsProgramIndexTest::testImplementationsOfCollectsTheConcreteBodiescallsProgramIndexTest::testIsInstanceOfFollowsParentsAndInterfacescallsProgramIndexTest::testLineageVisitsEachDeclarationOncecallsBuilderQueriesTest::testStatementsCompilesReceiverAndBindingsDerivedFromTheSameBranchcallsCallbackModelTest::testApplyRunsSourceDeclaredLocalScopescallsModelMetadataTest::testConstantReadsOnlyLiteralDefaultscallsModelMetadataTest::testGuardDefaultsRejectsUnknownMetadataAndImplicitEagerLoadscallsModelMetadataTest::testGuardExplainsTheSpecificUnmodelledModelEffectcallsModelMetadataTest::testGuardLeavesHooksTraitsAndMutableMetadataOpencallsModelMetadataTest::testPropertyPrefersTheNearestDeclarationcallsModelMetadataTest::testRecognizesFrameworkAuthenticationModelsWithoutLoadingVendorCodecallsModelMetadataTest::testStateKeepsStandardEmptyDefaultsAndFactoryTraitsClosedcallsModelMetadataTest::testStateReadsInheritedTableKeyAndSoftDeletescallsModelMetadataTest::testStateRejectsCustomizingAttributesAndUnknownTableConventionscalls
Called from 1
Calls 8
- method-call
NodeFinder::findInstanceOf()line 53 - class-const
Node::class()line 53 - method-call ProgramIndexBuilder::readClass() line 55
- function-call
strtolowerline 57 - new FunctionShape line 63
- method-call ProgramIndexBuilder::readParameters() line 65
- method-call TypeReader::read() line 66
- new ProgramIndex line 80
public function readClass(ClassLike $node, string $file = ''): ?ClassShapeThe shape of one class-like declaration, or null when it has no resolvable name.
Parameters
$node | ClassLike | |
$file | string |
Returns
Test cases 3
Called from 1
Calls 8
- method-call
ClassLike::getMethods()line 95 - function-call
strtolowerline 96 - method-call ProgramIndexBuilder::readMethod() line 96
- method-call ProgramIndexBuilder::readPromotedProperties() line 97
- method-call ProgramIndexBuilder::readMembers() line 99
- new ClassShape line 101
- method-call ProgramIndexBuilder::readParentNames() line 104
- function-call
array_mergeline 109
public function readMembers(ClassLike $node): array{traits: list<string>, constants: array<string, Expr>, cases: array<string, Expr|null>, properties: array<string, TypeShape>, defaults: array<string, Expr>, assigned: array<string, true>}Everything a class body declares, read in one pass over it.
The body is walked once and its declarations are sorted afterwards, which matters on a source tree with thousands of classes in it.
Parameters
$node | ClassLike |
Returns
array{traits: list<string>, constants: array<string, Expr>, cases: array<string, Expr|null>, properties: array<string, TypeShape>, defaults: array<string, Expr>, assigned: array<string, true>}Test cases 1
Called from 1
Calls 4
- method-call
NodeFinder::findInstanceOf()line 135 - class-const
Node::class()line 135 - method-call TypeReader::read() line 151
- method-call ProgramIndexBuilder::assignmentTarget() line 157
public function readAssignedProperties(ClassLike $node): array<string, true>The properties the class body assigns to, other than by promotion.
Parameters
$node | ClassLike |
Returns
array<string, true>Calls 3
- method-call
NodeFinder::findInstanceOf()line 174 - class-const
Expr::class()line 174 - method-call ProgramIndexBuilder::assignmentTarget() line 175
public function assignmentTarget(Expr $expression): ?stringThe property name an expression assigns to, or null when it assigns to none.
Parameters
$expression | Expr |
Returns
?stringTest cases 1
public function readParentNames(ClassLike $node): list<string>The interfaces the declaration implements or extends.
Parameters
$node | ClassLike |
Returns
list<string>Test cases 2
public function readTraitNames(ClassLike $node): list<string>The traits the declaration uses.
Parameters
$node | ClassLike |
Returns
list<string>Test cases 1
public function readConstants(ClassLike $node): array<string, Expr>The class constant expressions declared on the class-like.
Parameters
$node | ClassLike |
Returns
array<string, Expr>Test cases 1
public function readEnumCases(ClassLike $node): array<string, Expr|null>The enum case backing expressions declared on the class-like.
Parameters
$node | ClassLike |
Returns
array<string, Expr|null>Test cases 1
public function readPromotedProperties(ClassMethod $method): array<string, TypeShape>The properties a constructor promotes.
Parameters
$method | ClassMethod |
Returns
array<string, TypeShape>Called from 1
Calls 3
- function-call
strtolowerline 284 - function-call
is_stringline 290 - method-call TypeReader::read() line 291
public function readMethod(
string $className,
ClassMethod $method,
string $file = '',
): MethodShapeThe shape of one method declaration.
Parameters
$className | string | |
$method | ClassMethod | |
$file | string |
Returns
Test cases 1
Called from 1
Calls 4
- new MethodShape line 303
- method-call ProgramIndexBuilder::readParameters() line 306
- method-call TypeReader::read() line 307
- method-call
ClassMethod::isStatic()line 308
public function readParameters(array<array-key, Param> $params): list<ParameterShape>The shapes of a declaration's parameters, in order.
Parameters
$params | array<array-key, Param> |
Returns
list<ParameterShape>Called from 2
Calls 3
- function-call
is_stringline 324 - new ParameterShape line 327
- method-call TypeReader::read() line 329
Private surface 2§
Implementation details, listed for orientation only.
private NodeFinder $finderprivate TypeReader $typesTest cases 199§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 15
ProgramIndexBuilderTest::testAssignmentTargetIsNullWhenNothingIsWrittenToAPropertycallsProgramIndexBuilderTest::testBuildIndexesClassesFunctionsAndConstantscallsProgramIndexBuilderTest::testReadAssignedPropertiesFindsWritesInTheClassBodycallsProgramIndexBuilderTest::testReadClassCollectsConstantsPropertiesAndMethodscallsProgramIndexBuilderTest::testReadClassIsNullForAnAnonymousClasscallsProgramIndexBuilderTest::testReadClassRecordsEnumCasescallsProgramIndexBuilderTest::testReadConstantsCollectsEveryDeclarationcallsProgramIndexBuilderTest::testReadEnumCasesKeepsACaseWithoutABackingValuecallsProgramIndexBuilderTest::testReadMembersReadsTheWholeClassBodyInOnePasscallsProgramIndexBuilderTest::testReadMethodRecordsTheSignaturecallsProgramIndexBuilderTest::testReadParametersSkipsParametersWithoutAPlainNamecallsProgramIndexBuilderTest::testReadParentNamesCollectsExtendedInterfacescallsProgramIndexBuilderTest::testReadParentNamesCollectsImplementedInterfacescallsProgramIndexBuilderTest::testReadPromotedPropertiesOnlyLooksAtTheConstructorcallsProgramIndexBuilderTest::testReadTraitNamesCollectsUsedTraitscalls
Other tests reaching this symbol 184
CatalogCommandTestcallsCallEvaluatorTest::testApplyEffectsKeepsKnownByValueArgumentsAndOpensReferencescallsCallEvaluatorTest::testApplyPrepareHandsBackAHandleLaterCallsFindcallsCallEvaluatorTest::testApplySinkBindsWhatAQueryCallCarriescallsCallEvaluatorTest::testBindValuesAttachesVariadicArgumentscallsCallEvaluatorTest::testCallKeyOfTellsOneCallApartFromEveryOthercallsCallEvaluatorTest::testDispatchReadsTheImplementationsTheSourceDeclarescallsCallEvaluatorTest::testDispatchResolvesAcrossTheImplementationsTheSourceDeclarescallsCallEvaluatorTest::testEvaluateAppliesOnlyPossibleCallWritescallsCallEvaluatorTest::testEvaluateFollowsAFreeFunctionOfTheAnalyzedSourcecallsCallEvaluatorTest::testEvaluateFollowsAMethodOfTheAnalyzedSourcecallsCallEvaluatorTest::testEvaluateFollowsAStaticCallOfTheAnalyzedSourcecallsCallEvaluatorTest::testEvaluateFunctionGivesUpWhenTheNameIsNotWrittencallsCallEvaluatorTest::testEvaluateInstantiationGivesTheDriverItsTypecallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAClassNoExtensionModelscallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAModelledClassOnlyFromItsOwnBodycallsCallEvaluatorTest::testEvaluateMethodGivesUpWhenTheNameIsNotWrittencallsCallEvaluatorTest::testEvaluateReadsExternalInputThroughAFunctioncallsCallEvaluatorTest::testEvaluateRecordsAQueryCallcallsCallEvaluatorTest::testEvaluateRetainsReferenceWritesForAModeledNamespacedFunctioncallsCallEvaluatorTest::testEvaluateStaticGivesUpWhenTheClassIsNotWrittencallsCallEvaluatorTest::testEvaluateStaticResolvesTheSelfKeywordsToTheEnclosingClasscallsCallEvaluatorTest::testFollowReadsTheSameCallOnceForTheSameArgumentscallsCallEvaluatorTest::testFollowStopsAtRecursioncallsCallEvaluatorTest::testFollowStopsAtTheDepthLimitcallsCallEvaluatorTest::testIsOwnReceiverTellsACallOnItselfApartFromOneOnSomethingElsecallsCallEvaluatorTest::testRecordStatementsIgnoresACallWithoutItsStatementcallsCallEvaluatorTest::testSiteKeyOfTellsTwoCallsOnOneLineApartcallsCallEvaluatorTest::testSiteOfNamesWhereTheCallIsWrittencallsCallEvaluatorTest::testTheCallMethodsAreReachedDirectlycallsConstantReaderTest::testConstantNamePrefersTheOneTheNamespaceDeclarescallsConstantReaderTest::testConstantNameReadsTheNamespacedConstantOnlyWhenTheNamespaceDeclaresItcallsConstantReaderTest::testReadClassConstantReadsWhatTheClassDeclarescallsConstantReaderTest::testReadClassConstantTellsAnEnumCaseFromAConstantOfTheEnumcallsConstantReaderTest::testReadConstantResolvesTheKeywordsAndTheDeclarationscallsCalleeReturnsTest::testParametersFallsBackToTheDefaultOfAParameterNotPassedcallsCalleeReturnsTest::testReadDoesNotRememberWhatAnExhaustedBudgetCutShortcallsCalleeReturnsTest::testReadEntersTheCalleeSoACallBackIntoItIsNotFollowedAgaincallsCalleeReturnsTest::testReadReturnsNullFromABodyWithoutAReturncallsCalleeReturnsTest::testReadRunsAMethodInItsOwnClassAndAFunctionInTheCallersClasscallsCalleeReturnsTest::testReadUnitesWhatEveryReturnCanReturncallsCalleeReturnsTest::testValueOfAnswersACallWithTheSameArgumentsFromMemorycallsCalleeReturnsTest::testValueOfKeepsAbsenceDistinctFromUnresolvedReturnscallsCalleeReturnsTest::testValueOfLeavesAnAbstractMethodAsACallItDidNotFollowcallsCalleeReturnsTest::testValueOfReadsWhatTheCalleeReturnscallsCalleeReturnsTest::testValueOfStopsAtACallAlreadyBeingFollowedcallsCalleeReturnsTest::testValueOfStopsAtTheDepthLimitAndFollowsJustBelowItcallsCalleeReturnsTest::testValueOfStopsOnceTheBudgetIsExhaustedcallsCallersTest::testInheritorsOfListsTheSubclassesThatInheritTheConstructorcallsCallersTest::testInstantiationsIncludeSubclassesThatInheritTheConstructorcallsCallersTest::testInstantiationsMatchTheClassEachNewIsWrittenWithcallsCallersTest::testInstantiationsReadSelfAndStaticAsTheClassTheyAreWrittenIncallsCallersTest::testOfFindsNoCallersOfAClosurecallsCallersTest::testOfFindsNoCallersOfAMethodWrittenOutsideAnyClasscallsCallersTest::testOfFindsTheCallsWrittenWithAFunctionsNamecallsCallersTest::testOfFindsTheExplicitCallsOfAConstructorAsWellAsTheInstantiationscallsCallersTest::testOfFindsTheInstantiationsOfAClassForItsConstructorcallsCallersTest::testOfIsNotPartialWhenEveryCallIsAccountedForcallsCallersTest::testOfKeepsTheCallsThatCanReachTheMethodInTheOrderWrittencallsCallersTest::testOfListsEveryCallerWithoutStoppingAtTheCallerLimitcallsCallersTest::testOfMarksTheCallersPartialWhenACallMightReachTheMethodWithoutThatBeingCertaincallsCallersTest::testOfSkipsClassesAnExtensionModelscallsCallersTest::testReachesCannotTellOnceTheBudgetIsSpentcallsCallersTest::testReachesDecidesWhetherACallCanLandInTheMethodcallsCallersTest::testReachesWorksOutTheReceiverOneCallDeepercallsCallersTest::testRelatedHoldsBetweenAClassAndItsHierarchyInEitherDirectioncallsCallersTest::testRelatedStopsAtAnOverrideBetweenTheReceiverAndTheDeclaringClasscallsCallersTest::testStaticTargetIsTheClassTheLookupStartsFromcallsDeriverTest::testClassOfNamesTheNearestClassANodeIsWrittenIncallsDeriverTest::testNameOfNamesABodyTheWayItIsReportedcallsDeriverTest::testRunKeepsReadingPastTheSearchBudgetOnlyAtDepthZerocallsDeriverTest::testRunReadsTheGoalsAfterRunningEachArrivalForwardcallsDeriverTest::testScopeOfAClosureNamesTheEnclosingBodycallsDeriverTest::testScopeOfNamesTheFileTheBodyAndTheClassOfAPointcallsDeriverTest::testSolveAtExitsDoesNotHandBackWhatItFoundOnceTheBudgetRanOutcallsDeriverTest::testSolveAtExitsEvaluatesTheGoalsInTheScopeOfTheBodycallsDeriverTest::testSolveAtExitsIsRememberedApartFromSolvingAtTheBodycallsDeriverTest::testSolveAtExitsReadsGoalsAtEveryReturnAndAtTheEndcallsDeriverTest::testSolveAtExitsRemembersWhatItFoundForTheSameBodyGoalsAndDepthcallsDeriverTest::testSolveAtExitsTakesACallOfTheBodyItselfAsRecursioncallsDeriverTest::testSolveAtExitsTellsBodiesGoalsAndDepthsApartcallsDeriverTest::testSolveEvaluatesTheGoalsInTheScopeOfTheBodyThePointIsIncallsDeriverTest::testSolveForgetsWhatItFoundOnceTheBudgetRanOutcallsDeriverTest::testSolveGivesOneSolutionPerBranchWithCorrelatedValuescallsDeriverTest::testSolveKeepsTheRunsOfEveryWayInApartWhileTheBudgetAffordsThemcallsDeriverTest::testSolveLeavesAParameterNothingPassesOpenAsAParametercallsDeriverTest::testSolveLeavesAParameterOpenForTheBudgetOnceTheCallsAreTooDeepcallsDeriverTest::testSolveMarksEverySolutionTruncatedWhenCallsWereLeftOutcallsDeriverTest::testSolveMarksTheWaysInJoinedForWantOfBudgetAsCombinedcallsDeriverTest::testSolveReadsAParameterAtEveryCallOfItsBodycallsDeriverTest::testSolveReadsWhatTheGoalsNeedWithTheNamesItWasGivencallsDeriverTest::testSolveRemembersWhatItFoundForTheSamePointGoalsAndDepthcallsDeriverTest::testSolveSharesTheRunsTheBudgetAffordsAmongTheWaysIncallsDeriverTest::testSolveTakesACallOfTheBodyThePointIsInAsRecursioncallsDeriverTest::testSolveTellsPointsGoalsAndDepthsApartcallsDeriverTest::testSolveUnlessSpentGivesNothingOnceTheBudgetIsSpentcallsDeriverTest::testSolveUnlessSpentSolvesWhileTheBudgetLastscallsEntryBinderTest::testBindingsBindEachPropertyOfThisToEveryValueTheClassLeavesItcallsEntryBinderTest::testBindingsLeaveThePropertiesAloneWhereThereIsNoObjectcallsEntryBinderTest::testBindingsLeaveThePropertiesAloneWithoutAReaderOfPropertyWritescallsEntryBinderTest::testBindingsLeaveThePropertiesOpenOnAPathTheBudgetStoppedcallsEntryBinderTest::testDefaultOfIsWhatAParameterHoldsWhenACallLeavesItOutcallsEntryBinderTest::testEvaluateConstantReadsConstantsOfTheClassGivencallsEntryBinderTest::testFromCallersAsksNoMoreThanTheCallerLimitcallsEntryBinderTest::testFromCallersBindsEachArgumentAndFillsInWhatACallLeavesOutcallsEntryBinderTest::testFromCallersCarriesWhetherTheCallerPairedValuesWorkedOutApartcallsEntryBinderTest::testFromCallersCarriesWhetherTheCallerWasCutShortcallsEntryBinderTest::testFromCallersMarksEveryWayInCutShortWhenTheCallersArePartialcallsEntryBinderTest::testFromCallersMarksTheWaysInFoundBeforeTheBudgetRanOutAsCutShortcallsEntryBinderTest::testFromCallersStopsOnceTheBudgetIsSpentcallsEntryBinderTest::testParameterBindingsBindMethodParametersFromCallsOnInstancesOfTheClasscallsEntryBinderTest::testParameterBindingsBlameTheBudgetWhenLookingForCallersSpentItcallsEntryBinderTest::testParameterBindingsFollowEveryCallerOfTheBodycallsEntryBinderTest::testParameterBindingsLeaveAParameterNothingCallsOpencallsEntryBinderTest::testParameterBindingsLeaveAParameterOpenOnceTheBudgetIsSpentcallsEntryBinderTest::testParameterBindingsLeaveEverythingOpenOnAPathTheBudgetStoppedcallsEntryBinderTest::testParameterBindingsLeaveTheParameterOpenAndCutShortWhenNoCallCanBeConfirmedcallsEntryBinderTest::testParameterBindingsLeaveTheParameterOpenWithoutCuttingShortWhenNothingCallsItcallsEntryBinderTest::testParameterBindingsMarkUndefinedLocalsAbsentWithoutAskingCallerscallsEntryBinderTest::testParameterBindingsReadWhatTheTopOfAFileIsDeclaredToHoldcallsEntryBinderTest::testParameterBindingsStopAtTheDepthLimitcallsEntryBinderTest::testParameterValuesReadWhatEveryCallerPassescallsCallbackEffectsTestcallsPropertyWritesTest::testDefaultOfIsTheNearestDeclaredDefaultcallsPropertyWritesTest::testPromotionsAreTheConstructorsPromotingAParameterOfThatNamecallsPropertyWritesTest::testValuesOfCollectsWhatEveryWriterLeavescallsPropertyWritesTest::testValuesOfReadsThePropertyAgainOnceTheFirstReadingIsDonecallsPropertyWritesTest::testValuesOfSkipsTheWritersOnceTheBudgetIsSpentcallsPropertyWritesTest::testWritersOfFindsTheMethodsOfTheClassAndItsAncestorsThatWriteThePropertycallsPropertyWritesTest::testWritesSeesOnlyAssignmentsToThePropertyOfThiscallsWriteEffectsTest::testArgumentsUsesReferenceDeclarationsAndNamedArgumentscallsExpressionEvaluatorTestcallsInterpreterTest::testAnalyzeBindsWhatAnExecuteBindsToTheStatementItsHandleCameFromcallsInterpreterTest::testAnalyzeBindsWhatANullsafeExecuteBindscallsInterpreterTest::testAnalyzeBindsWhatAQueryCallCarriesAlongsideItsStatementcallsInterpreterTest::testAnalyzeGivesEveryCallTheWholeBudgetcallsInterpreterTest::testAnalyzeKeepsWhatEveryCallBindscallsInterpreterTest::testAnalyzeReadsEveryStatementFromTheCallThatIssuesItcallsInterpreterTest::testAnalyzeRecordsNothingAtACallThatOnlyComposesAStatementcallsInterpreterTest::testAnalyzeSpendsNoMoreThanTheBudgetItIsGivencallsInterpreterTest::testAnalyzeWithATinyBudgetStillReportsTheCallcallsInterpreterTest::testEvaluatorForWiresAnEvaluatorOverTheFilescallsInterpreterTest::testReceiverOfJoinsEveryWayTheReceiverCanBecallsInterpreterTest::testSinkOfReadsANullsafeCallAndAFunctionCallcallsInterpreterTest::testSinkOfResolvesAStaticCallOnTheEnclosingClasscallsInterpreterTest::testSinkOfTellsADatabaseCallFromAnotherCallOfTheSameNamecallsInterpreterTest::testVisitHandsBackWhatAnExecuteBindscallsInterpreterTest::testVisitRecordsAStatementAndHandsBackNothingToBindLatercallsInterpreterTest::testVisitRecordsNothingForACallWithoutItsStatementcallsInterpreterTest::testVisitRecordsNothingForADatabaseCallThatTakesNoStatementcallsReferenceEvaluatorTest::testEvaluatecallsReferenceEvaluatorTest::testReadElementUnderAKeyThatDidNotResolveReadsEveryElementcallsReferenceEvaluatorTest::testReadEnumPropertyNarrowsToOneCaseWhenTheCaseIsKnowncallsReferenceEvaluatorTest::testReadEnumPropertyOnlyAnswersForAnEnumcallsReferenceEvaluatorTest::testReadEnumPropertyReadsCaseNamescallsReferenceEvaluatorTest::testReadEnumPropertyReadsTheCaseTheValueIscallsReferenceEvaluatorTest::testReadInstanceResolvesStaticToTheEnclosingClasscallsReferenceEvaluatorTest::testReadPropertyFallsBackToTheDeclaredTypecallsReferenceEvaluatorTest::testReadPropertyFallsBackToTheDeclaredTypeOfAStaticPropertyTheClassAssignscallsReferenceEvaluatorTest::testReadPropertyIsCalledWithTheExpressionItselfcallsReferenceEvaluatorTest::testReadPropertyPrefersWhatTheBodyAssignedEarliercallsReferenceEvaluatorTest::testReadPropertyReadsTheSettledDefaultOfAStaticPropertycallsSinkMatcherTest::testClassMatchesFollowsInheritanceDeclaredInTheAnalyzedSourcecallsProgramIndexTest::testFindClassConstantFollowsTheParentClasscallsProgramIndexTest::testFindMethodFollowsTheParentClasscallsProgramIndexTest::testFindPropertyTypeFollowsTheParentClasscallsProgramIndexTest::testImplementationsOfCollectsTheConcreteBodiescallsProgramIndexTest::testIsInstanceOfFollowsParentsAndInterfacescallsProgramIndexTest::testLineageVisitsEachDeclarationOncecallsBuilderQueriesTest::testStatementsCompilesReceiverAndBindingsDerivedFromTheSameBranchcallsCallbackModelTest::testApplyRunsSourceDeclaredLocalScopescallsCallModelTestcallsModelMetadataTest::testConstantReadsOnlyLiteralDefaultscallsModelMetadataTest::testGuardDefaultsRejectsUnknownMetadataAndImplicitEagerLoadscallsModelMetadataTest::testGuardExplainsTheSpecificUnmodelledModelEffectcallsModelMetadataTest::testGuardLeavesHooksTraitsAndMutableMetadataOpencallsModelMetadataTest::testPropertyPrefersTheNearestDeclarationcallsModelMetadataTest::testRecognizesFrameworkAuthenticationModelsWithoutLoadingVendorCodecallsModelMetadataTest::testStateKeepsStandardEmptyDefaultsAndFactoryTraitsClosedcallsModelMetadataTest::testStateReadsInheritedTableKeyAndSoftDeletescallsModelMetadataTest::testStateRejectsCustomizingAttributesAndUnknownTableConventionscallsAnalyzerTestcallsJsonReporterTestcallsTextReporterTestcalls