classTextPattern
final class TextPattern
A string the analyzer knows in part: resolved runs of text with gaps between them.
A pattern with no gaps is an exact string. One with gaps describes the shape of every string the expression can produce, which is what the catalog reports when a query is assembled from values that are not statically known.
Properties§
public list<TextSegment> $segmentsMethods§
public static function empty(): selfThe empty pattern, which concatenation leaves unchanged.
Returns
selfTest cases 4
Called from 1
Calls 1
- new
selfline 30
public static function fromText(string $text): selfA pattern that resolves to exactly the given characters.
Parameters
$text | string |
Returns
selfTest cases 262
BuiltinCallModelTest::testFormatPatternFillsEachConversionWithTheNextArgumentcallsBuiltinCallModelTest::testFormatPatternKeepsEveryAlternativeOfAnArgumentcallsBuiltinCallModelTest::testFormatPatternLeavesAGapForAConversionWithoutAnArgumentcallsBuiltinCallModelTest::testSprintfFillsAPartlyKnownFormatcallsEntryFactoryTest::providerSearchClosurecallsEntryFactoryTest::testBindPlaceholdersLeavesAPlaceholderNothingWasBoundToEmptycallsEntryFactoryTest::testBindPlaceholdersLinesValuesUpByNamecallsEntryFactoryTest::testBindPlaceholdersLinesValuesUpByPositioncallsEntryFactoryTest::testBindPlaceholdersPrefersAValueBoundUnderTheNumberAsANamecallsEntryFactoryTest::testBindPlaceholdersReadsANumberedPlaceholderByPositioncallsEntryFactoryTest::testBuildKeepsAnUndeterminedReadingBesideAResolvedOnecallsEntryFactoryTest::testBuildKeepsBothReadingsOfTheSameCallcallsEntryFactoryTest::testBuildNamesALoneStatementAsItsOwnReadingWouldcallsEntryFactoryTest::testBuildOneCarriesTheCallsThatWereFollowedcallsEntryFactoryTest::testBuildOneReadsTheStatementKindTheCallImpliescallsEntryFactoryTest::testBuildOneRecordsWhetherTheAlternativesAreOnesTheCodeCanReachcallsEntryFactoryTest::testBuildOneReportsAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testBuildReportsAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testBuildSharesSearchCompletionAcrossEveryCandidatecallsEntryFactoryTest::testBuildTurnsRecordsIntoEntriescallsEntryFactoryTest::testCountMismatchCountsValuesBoundByPositionAndByNamecallsEntryFactoryTest::testCountMismatchReportsAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testCountMismatchStaysQuietWhenNothingWasBoundcallsEntryFactoryTest::testCountMismatchStaysQuietWhenTheCallSiteHasAlternativescallsEntryFactoryTest::testCountMismatchStaysQuietWhenTheCountsAgreecallsEntryFactoryTest::testFindingsAreEmptyForAResolvedStatementcallsEntryFactoryTest::testFindingsNeverCallAFullyResolvedStatementUnresolvedcallsEntryFactoryTest::testFindingsReportADynamicStatementcallsEntryFactoryTest::testFindingsReportAnIncompleteSearchOnceEvenWhenALimitAlsoCutItShortcallsEntryFactoryTest::testFindingsReportAReadingALimitCutShortAlongsideAWrongCountcallsEntryFactoryTest::testFindingsReportAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testFindingsReportExternalInputcallsEntryFactoryTest::testFindingsReportExternalInputOnceHoweverManyValuesCarryItcallsEntryFactoryTest::testFindingsReportThatTheSearchDidNotClosecallsEntryFactoryTest::testGroupBySiteKeepsTheCallsApartcallsEntryFactoryTest::testMergeFoldsTwoReadingsOfTheSameStatementcallsEntryFactoryTest::testMergeKeepsTwoStatementsApartWhenTheirKeyAndTextRunTogethercallsEntryFactoryTest::testRenumberKeepsEverythingButTheIdentifiercallsQueryRecordTest::testAbsorbPreservesCombinationUncertaintyInEitherOrdercallsQueryRecordTest::testAbsorbTakesOverValuesTheOtherReadingAloneHascallsQueryRecordTest::testAbsorbTakesTheUnionOfBothReadingscallsQueryRecordTest::testBindKeepsValuesByPositionAndByNamecallsQueryRecordTest::testBindOneWritesAPositionCountedFromOnecallsQueryRecordTest::testBindOneWritesUnderThePositionOrTheNamecallsQueryRecordTest::testIsBoundAfterAbsorbOnlyWhenEitherReadingWasBoundcallsQueryRecordTest::testIsBoundAfterASingleValueIsBoundcallsQueryRecordTest::testIsBoundOnlyAfterSomethingWasBoundcallsQueryRecordTest::testIsTruncatedIsFalseAndCombinedIsFalseUnlessToldOtherwisecallsQueryRecordTest::testIsTruncatedOnceEitherReadingWasCutShortcallsQueryRecordTest::testIsTruncatedOnlyWhenABoundCutTheSearchShortcallsQueryRecordTest::testNamedIsEmptyUntilSomethingIsBoundByNamecallsQueryRecordTest::testPositionalIsOrderedByPositioncallsQueryRecordTest::testPositionalKeepsAValueAtThePositionItWasBoundTocallsStatementRecorderTest::testFilePreparedFilesAStatementUnderItsHandlecallsStatementRecorderTest::testRecordKeepsAStatementUncombinedAndWholeUnlessToldOtherwisecallsStatementRecorderTest::testRecordKeepsTheStatementcallsValueBinderTest::testBindOneRecordAppendsAValueWhoseNameDidNotResolvecallsValueBinderTest::testBindOneRecordDoesNothingWhenTheCallBindsNothingcallsValueBinderTest::testBindOneRecordIgnoresAValuesArgumentThatDidNotResolvecallsValueBinderTest::testBindOneRecordLeavesAnArrayOfValuesThatDidNotResolveUnboundEvenWhenValuesCouldBeListedcallsValueBinderTest::testBindOneRecordNeedsBothTheNameAndTheValueOfASingleBindcallsValueBinderTest::testBindOneRecordReadsAnArrayOfValuescallsValueBinderTest::testBindOneRecordReadsOneNamedValuecallsValueBinderTest::testBindOneRecordReadsVariadicValuescallsValueBinderTest::testBindOneRecordReadsVariadicValuesWithoutAlsoReadingOneNamedValuecallsValueBinderTest::testBindValuesReachesEveryStatementcallsValueBinderTest::testOpenRecordsFindsTheStatementsAHandleStandsForcallsCatalogEntryTest::providerSearchClosedcallsCatalogEntryTest::testFirstGapIsTheFirstOneOrNothingWhenThereIsNonecallsCatalogEntryTest::testHasFindingLooksForOneRulecallsCatalogEntryTest::testIsExactWhenNothingIsLeftOpencallsCatalogEntryTest::testResolutionReadsHowFarTheAnalyzerGotcallsCatalogEntryTest::testSeverityIsInformationalWithoutFindingscallsCatalogEntryTest::testSeverityIsTheHighestOfTheFindingscallsCatalogEntryTest::testSqlWritesThePatternWithItsGapscallsCatalogEntryTest::testTheAlternativesAreMarkedAsReachableOrNotcallsCatalogTest::testEntriesAreReturnedInTheOrderTheyWereGivencallsCatalogTest::testFilterKeepsOnlyWhatTheTestAcceptscallsCatalogTest::testFindLooksUpAStatementByItsIdentifiercallsCatalogTest::testGetIteratorWalksTheStatementscallsCatalogTest::testSortedOrdersByWhereTheStatementIsIssuedcallsEntryIdentityTest::testComputeIgnoresTheLineNumbercallsEntryIdentityTest::testComputeIsAsLongAsItSaysItIscallsEntryIdentityTest::testComputeIsStableForTheSameStatementcallsEntryIdentityTest::testComputeSeparatesDifferentStatementsAndSitescallsEntryIdentityTest::testComputeSeparatesStatementsItCannotOtherwiseTellApartcallsResolutionTest::testOfcallsResolutionTest::testOfAStatementWithoutGapsIsResolvedcallsStatementPartTest::testOfKeepsAKnownRunAsTheTextItIscallsDomainTest::testAsTermCollapsesAResolvedPatternToALiteralcallsDomainTest::testWithVariablePreservesResolvedDomainsAndExistingFragmentNamescallsPatternTermTest::testSignatureDistinguishesDifferentShapescallsPatternTermTest::testToPatternIsThePatternItselfcallsPatternTermTest::testTypeIsAlwaysStringcallsTermTest::testTypeIsReportedByEveryKindOfTermcallsCatalogFilterTest::testApplyKeepsEverythingWhenTheFilterIsEmptycallsCatalogFilterTest::testApplyKeepsOnlyTheMatchingStatementscallsCatalogFilterTest::testMatchesFunctionAcceptsTheShortNameOrTheQualifiedOnecallsCatalogFilterTest::testMatchesFunctionHandlesAFreeFunctioncallsCatalogFilterTest::testMatchesFunctionIgnoresALeadingBackslashOnEitherSidecallsCatalogFilterTest::testMatchesKindComparesTheStatementKindcallsCatalogFilterTest::testMatchesNamespaceComparesThePrefixOfTheEnclosingFunctioncallsCatalogFilterTest::testMatchesNamespaceIgnoresALeadingBackslashOnEitherSidecallsCatalogFilterTest::testMatchesPathAcceptsADirectoryWrittenWithATrailingSlashcallsCatalogFilterTest::testMatchesPathAcceptsAPatternOrADirectorycallsCatalogFilterTest::testMatchesRequiresEveryGivenCriterioncallsCatalogFilterTest::testMatchesSeverityKeepsWhatIsAtLeastAsSeverecallsCatalogFilterTest::testMatchesSinkComparesTheCallIdentifiercallsCatalogFilterTest::testMatchesTableIgnoresCasecallsPlaceholderScannerTest::testScanFindsNamedParameterscallsPlaceholderScannerTest::testScanFindsPositionalParametersInOrdercallsPlaceholderScannerTest::testScanIgnoresPostgresCastscallsPlaceholderScannerTest::testScanIgnoresQuestionMarksInsideStringscallsPlaceholderScannerTest::testScanReadsThroughAGapWithoutBreakingTheStringAroundItcallsStatementKindReaderTest::testReadcallsStatementKindReaderTest::testReadIsUnknownWhenAGapHidesTheLeadingKeywordcallsTableReaderTest::testReadcallsTableReaderTest::testReadDoesNotGuessAQuotedNameThatIsAllGapcallsTableReaderTest::testReadKeepsANameThatIsKnownInPartcallsTableReaderTest::testReadStopsAtAGapInsteadOfGuessingATablecallsTextGeneralizationTest::testGapTypeIsAStringOnlyWhenBothSidesResolvedcallsTextGeneralizationTest::testMergeAllFoldsEveryAlternativecallsTextGeneralizationTest::testMergeCoversAGrowingSuffixcallsTextGeneralizationTest::testMergeKeepsWhatTheTwoSidesAgreeOncallsTextGeneralizationTest::testMergeResolvedAnswersOnlyForTwoResolvedStringscallsTextGeneralizationTest::testMergeReturnsTheSameShapeWhenBothSidesAgreecallsTextPatternTest::testConcatJoinsTwoPatternscallsTextPatternTest::testDisplayShowsGapsAsAMarkercallsTextPatternTest::testEqualsComparesShapesRatherThanObjectscallsTextPatternTest::testFromTextDropsAnEmptyStringcallsTextPatternTest::testFromTextKeepsTheCharacterscallsTextPatternTest::testIsEmptyOnlyWithoutAnySegmentcallsTextPatternTest::testIsExactOnlyWithoutGapscallsTextPatternTest::testRenderSubstitutesTheGivenStandIncallsTextPatternTest::testTextIsNullWhenAGapRemainscallsAnalyzerTest::testSortRecordsIsCalledWithTheEntriescallsCatalogIndexTest::testAlongsideCountsTheTablesNamedWithOnecallsCatalogIndexTest::testByClassAndByNamespaceOrderNamesWithoutRegardToCasecallsCatalogIndexTest::testByClassGroupsMethodsUnderTheirClasscallsCatalogIndexTest::testByDirectoryGroupsFilesUnderTheirDirectorycallsCatalogIndexTest::testByFileIsInPathOrdercallsCatalogIndexTest::testByFunctionKeepsTheOrderFunctionsAreMetcallsCatalogIndexTest::testByNamespaceListsTheGlobalNamespaceFirstcallsCatalogIndexTest::testByRuleListsTheMostReportedRuleFirstcallsCatalogIndexTest::testByTableBreaksTiesByNamecallsCatalogIndexTest::testByTableListsTheMostNamedTableFirstcallsCatalogIndexTest::testEntriesAreInReportingOrdercallsCatalogIndexTest::testFunctionsOfCountsMostFirstcallsCatalogIndexTest::testHotspotsKeepCountingPastAStatementNothingWasReportedOncallsCatalogIndexTest::testHotspotsRankFunctionsByWhatWasReportedcallsCatalogIndexTest::testTablesOfCountsMostNamedFirstcallsCatalogIndexTest::testUsageCountsReadsWritesSchemaAndAttentioncallsCatalogIndexTest::testUsageOfCountsTruncateAsASchemaChangecallsCatalogIndexTest::testUsageOfTellsAReadFromAnotherStatementThatChangesNoRowcallsCatalogStatisticsTest::testAtLeastCountsTheStatementsWorthLookingAtcallsCatalogStatisticsTest::testByKindCountsTheKindsMostFirstcallsCatalogStatisticsTest::testByResolutionAccountsForEveryStatementUnderEveryResolutioncallsCatalogStatisticsTest::testByRuleCountsTheFindingsMostFirstcallsCatalogStatisticsTest::testFilesSayWhatWasFoundInEachOfThemcallsCatalogStatisticsTest::testFindingsCountsEveryFindingOfEveryStatementcallsCatalogStatisticsTest::testFlaggedListsTheReportedStatementsWorstFirstcallsCatalogStatisticsTest::testResolvedCountsTheStatementsWithNoGapscallsCatalogStatisticsTest::testStatementsCountsWhatTheCatalogHoldscallsCatalogStatisticsTest::testTablesSayHowEachOneIsUsedcallsHtmlReporterTest::testClassPagesWriteOneDocumentPerClasscallsHtmlReporterTest::testFilePagesWriteOneDocumentPerFilecallsHtmlReporterTest::testRenderLinksEveryRouteToTheStatementsPagecallsHtmlReporterTest::testRenderWritesTheTrailToEveryPagecallsHtmlReporterTest::testRenderWritesTheWholeSiteOfPagescallsHtmlReporterTest::testStatementPagesWriteOneDocumentPerStatementcallsHtmlReporterTest::testTablePagesWriteOneDocumentPerTablecallsClassPageTest::testAnchorsNameTheTablesAndEveryMethodcallsClassPageTest::testContextListsTheMethodsAndTheClassesOfTheSameNamespacecallsClassPageTest::testMethodsAreInTheOrderTheyAreWrittencallsClassPageTest::testRenderIsWrittenExactlycallsClassPageTest::testRenderListsTheStatementsMethodByMethodcallsClassPageTest::testSectionsHeadEachMethodWithWhereItStartscallsFileIndexPageTest::testAnchorsNameEveryDirectorycallsFileIndexPageTest::testRenderIsWrittenExactlycallsFileIndexPageTest::testRenderListsFilesUnderTheirDirectoriescallsFileIndexPageTest::testRowCountsWhatWasFoundInTheFilecallsFileIndexPageTest::testSectionIsASortableTableOfTheDirectorysFilescallsFilePageTest::testAnchorsNameTheTablesAndEveryFunctioncallsFilePageTest::testContextListsTheFunctionsAndTheFilesOfTheSameDirectorycallsFilePageTest::testContextNamesTheRootDirectorycallsFilePageTest::testFunctionsAreInTheOrderTheyAreWrittencallsFilePageTest::testRenderIsWrittenExactlycallsFilePageTest::testRenderListsTheStatementsFunctionByFunctioncallsFilePageTest::testSectionsLeadFromAMethodToItsClasscallsFilePageTest::testTablesLinkToTheTablesNamedcallsFindingPageTest::testAnchorsNameTheHotspotsAndEveryRulecallsFindingPageTest::testHotspotsLinkEachFunctionAndAreSilentWhenNothingIsFlaggedcallsFindingPageTest::testRenderIsWrittenExactlycallsFindingPageTest::testRenderOpensWithWhereToLookAndThenListsEveryRulecallsNamespacePageTest::testAnchorsNameEveryNamespacecallsNamespacePageTest::testMembersListClassesBeforeFunctionscallsNamespacePageTest::testMembersOrderNamesWithoutRegardToCasecallsNamespacePageTest::testRenderIsWrittenExactlycallsNamespacePageTest::testRenderListsEveryNamespaceWithWhatIsDeclaredInItcallsNamespacePageTest::testSectionLeadsFromAClassToItsPageAndFromAFunctionToItsFilecallsOverviewPageTest::testAttentionListsRulesAndTheFunctionsFlaggedMostcallsOverviewPageTest::testCoverageLeadsFromEverySegmentToTheStatementsItCountscallsOverviewPageTest::testFactsLinkEachCountToItsRoutecallsOverviewPageTest::testFileRouteListsTheFilesWithTheMostStatementscallsOverviewPageTest::testKindRouteLeadsToTheListingNarrowedByKindcallsOverviewPageTest::testNamespaceRouteListsClassesOrFallsBackToFunctionscallsOverviewPageTest::testRenderIsWrittenExactlycallsOverviewPageTest::testRenderLaysOutEveryRouteToAStatementcallsOverviewPageTest::testTableRouteListsTheMostNamedTablesWithHowTheyAreUsedcallsStatementIndexPageTest::testRenderIsWrittenExactlycallsStatementIndexPageTest::testRenderListsEveryStatementUnderTheFacetsThatNarrowItcallsStatementPageTest::testBodyLaysTheStatementOutAndKeepsTheSourceFormcallsStatementPageTest::testCaveatsWarnAboutWhatTheStatementDoesNotSaycallsStatementPageTest::testContextLeadsToEveryPlaceTheStatementBelongsToAndTheRestOfItsFunctioncallsStatementPageTest::testContextOfTopLevelCodeLeadsOnlyToItsFilecallsStatementPageTest::testFindingsCarryTheirRuleAndSeveritycallsStatementPageTest::testRelatedListsTheFirstOfTheRestAndOnlyTheFirstTwoTablescallsStatementPageTest::testRelatedPointsAtTheRestWhenThereIsMoreThanItListscallsStatementPageTest::testRenderCarriesEverythingKnownAboutTheStatementcallsStatementPageTest::testRenderIsWrittenExactlycallsStatementPageTest::testRenderLeavesOutTheValuesWhenTheStatementTakesNonecallsStatementPageTest::testRenderOfACallNothingWasReadFromIsWrittenExactlycallsStatementPageTest::testTitleNamesTheTablesOrSaysWhyThereAreNonecallsStatementPageTest::testValuesListTheBindParameterscallsStatementPageTest::testWhereLinksEveryPlaceAndNamesThePathTakencallsStatementPageTest::testWhereSaysNothingAboutThePathWhenTheStatementIsReadWhereItIsWrittencallsTableIndexPageTest::testRenderDoesNotGroupWhenNoTableIsQualifiedcallsTableIndexPageTest::testRenderGroupsTablesBySchemaWhenAnyIsQualifiedcallsTableIndexPageTest::testRenderIsWrittenExactlycallsTableIndexPageTest::testRowCountsHowTheTableIsUsedAndMarksAGapInItsNamecallsTablePageTest::testAlongsideIsSilentWhenTheTableIsNamedAlonecallsTablePageTest::testAnchorsFollowTheSectionsPresentcallsTablePageTest::testContextListsTheSectionsAndEveryOtherTablecallsTablePageTest::testGroupsListOnlyTheUsesPresentcallsTablePageTest::testRenderIsWrittenExactlycallsTablePageTest::testRenderSaysWhatUsesTheTableAndListsItsStatementsByWhatTheyDocallsTablePageTest::testUsedFromLinksEachFunctionAndSaysWhatItDoescallsPageShellTest::testRenderIsWrittenExactlycallsPageShellTest::testRoutesMarkTheRouteBeingReadAndCountWhatEachHoldscallsPageShellTest::testSidebarWritesTheRoutesAndThenWhatThePageIsLeftFromcallsReportSiteTest::testCatalogIsHeldInReportingOrdercallsReportSiteTest::testClassesAreInNameOrdercallsReportSiteTest::testClassPageFallsBackToTheListingForAnUnknownClasscallsReportSiteTest::testFilePageFallsBackToTheListingForAnUnknownFilecallsReportSiteTest::testFilesAreInPathOrdercallsReportSiteTest::testFunctionUrlLeadsToTheClassPageForAMethodAndTheFilePageOtherwisecallsReportSiteTest::testIndexGroupsTheCatalogcallsReportSiteTest::testStatisticsCountTheCatalogcallsReportSiteTest::testTablePageFallsBackToTheListingForAnUnknownTablecallsReportSiteTest::testTablesAreMostNamedFirstcallsSearchIndexTest::testEntryToArrayCarriesWhatTheSearchReadscallsSearchIndexTest::testRenderWritesTheIndexAsAScriptThePagesLoadcallsSourceCodeTest::testExcerptClipsAtTheStartAndEndOfTheFilecallsSourceCodeTest::testExcerptOmitsUnavailableSourceWithoutReadingTheFilesystemcallsSourceCodeTest::testExcerptShowsContextAndLinksToTheHighlightedCallInTheFullFilecallsSourceCodeTest::testFileIncludesAllLinesAndMarksEveryCallcallsStatementListTest::testFacetsIsWrittenExactlycallsStatementListTest::testFacetsOfferOnlyWhatWouldNarrowTheListingcallsStatementListTest::testRowsListEveryStatementAndSaySoWhenThereIsNonecallsStatementRowTest::testAttributesNameARuleOnceHoweverOftenItWasReportedcallsStatementRowTest::testMetaNamesTheFunctionUnlessTheListingAlreadyDoescallsStatementRowTest::testRenderLinksTheStatementAndWhereItIsIssuedRelativeToThePagecalls
Called from 1
Calls 2
- new
selfline 38 - new LiteralText line 38
public static function fromHole(TextHole $hole): selfA pattern consisting of one unresolved gap.
Parameters
$hole | TextHole |
Returns
selfTest cases 69
BuiltinCallModelTest::testSprintfFillsAPartlyKnownFormatcallsEntryFactoryTest::providerSearchClosurecallsEntryFactoryTest::testBuildGivesTwoIndistinguishableStatementsDistinctIdentifierscallsEntryFactoryTest::testBuildKeepsAnUndeterminedReadingBesideAResolvedOnecallsEntryFactoryTest::testBuildKeepsBothReadingsOfTheSameCallcallsEntryFactoryTest::testBuildNumbersEachFurtherTwinOnceMorecallsEntryFactoryTest::testFindingsReportACallNotAnalyzedWithoutClaimingALimitCutItShortcallsEntryFactoryTest::testFindingsReportADynamicStatementcallsEntryFactoryTest::testFindingsReportAnIncompleteSearchOnceEvenWhenALimitAlsoCutItShortcallsEntryFactoryTest::testFindingsReportAStatementThatDidNotResolveAtAllcallsEntryFactoryTest::testFindingsReportExternalInputcallsEntryFactoryTest::testFindingsReportExternalInputOnceHoweverManyValuesCarryItcallsEntryFactoryTest::testFindingsReportThatTheSearchDidNotClosecallsEntryFactoryTest::testNotAnalyzedReasonSaysTheAnalysisStoppedBeforeReadingTheCallcallsEntryFactoryTest::testNotAnalyzedReasonSaysTheReceiverCouldNotBeIdentifiedcallsCatalogEntryTest::providerSearchClosedcallsCatalogEntryTest::testFirstGapIsTheFirstOneOrNothingWhenThereIsNonecallsCatalogEntryTest::testResolutionReadsHowFarTheAnalyzerGotcallsCatalogEntryTest::testSqlWritesThePatternWithItsGapscallsResolutionTest::testOfcallsResolutionTest::testOfPrefersTheStoppedSearchOverTheInputItAlsoReachedcallsStatementPartTest::testOfKeepsWhatIsKnownAboutAGapcallsDomainTest::testAsTermKeepsAPatternThatStillHasGapscallsDomainTest::testWithVariablePreservesResolvedDomainsAndExistingFragmentNamescallsPatternTermTest::testToPatternIsThePatternItselfcallsPlaceholderScannerTest::testScanReadsThroughAGapWithoutBreakingTheStringAroundItcallsStatementKindReaderTest::testReadIsUnknownWhenAGapHidesTheLeadingKeywordcallsTableReaderTest::testReadDoesNotGuessAQuotedNameThatIsAllGapcallsTableReaderTest::testReadKeepsANameThatIsKnownInPartcallsTableReaderTest::testReadStopsAtAGapInsteadOfGuessingATablecallsTextGeneralizationTest::testGapTypeIsAStringOnlyWhenBothSidesResolvedcallsTextGeneralizationTest::testMergeResolvedAnswersOnlyForTwoResolvedStringscallsTextPatternTest::testDisplayShowsGapsAsAMarkercallsTextPatternTest::testFromHoleHoldsOneGapcallsTextPatternTest::testIsExactOnlyWithoutGapscallsTextPatternTest::testRenderSubstitutesTheGivenStandIncallsTextPatternTest::testSignatureKeepsGapOriginsApartcallsTextPatternTest::testTextIsNullWhenAGapRemainscallsCatalogStatisticsTest::testFilesSayWhatWasFoundInEachOfThemcallsCatalogStatisticsTest::testOpenCountsTheStatementsWhoseSearchDidNotClosecallsCatalogStatisticsTest::testResolvedCountsTheStatementsWithNoGapscallsHtmlReporterTest::testRenderIncludesSourceForUnresolvedAndUnanalyzedCallsAndParseFailurescallsHtmlReporterTest::testRenderKeepsACallNoStatementWasReadFromApartFromAStatementcallsClassPageTest::testRenderIsWrittenExactlycallsFileIndexPageTest::testRenderIsWrittenExactlycallsFilePageTest::testRenderIsWrittenExactlycallsFindingPageTest::testRenderIsWrittenExactlycallsNamespacePageTest::testRenderIsWrittenExactlycallsOverviewPageTest::testCoverageLeadsFromEverySegmentToTheStatementsItCountscallsOverviewPageTest::testRenderIsWrittenExactlycallsStatementIndexPageTest::testRenderIsWrittenExactlycallsStatementPageTest::testBodyDoesNotDressUpACallNoStatementWasReadFromcallsStatementPageTest::testBodyUsesTheSameNamedGapInTheCopyableAndSourceBlockscallsStatementPageTest::testCaveatsWarnAboutWhatTheStatementDoesNotSaycallsStatementPageTest::testFactsLinkTheTablesAndExplainTheReadingcallsStatementPageTest::testRenderIsWrittenExactlycallsStatementPageTest::testRenderOfACallNothingWasReadFromIsWrittenExactlycallsStatementPageTest::testRenderShowsUnanalyzedSourceBetweenTheCaveatAndStatementFactscallsStatementPageTest::testTitleNamesTheTablesOrSaysWhyThereAreNonecallsTableIndexPageTest::testRenderIsWrittenExactlycallsTablePageTest::testRenderIsWrittenExactlycallsPageShellTest::testRenderIsWrittenExactlycallsSearchIndexTest::testEntryToArrayMakesTheVariableNameSearchablecallsStatementListTest::testFacetsIsWrittenExactlycallsStatementRowTest::testAttributesCarryEveryFactAListingIsNarrowedBycallsStatementRowTest::testMetaOmitsWhatTheListingAlreadyStatesAndShowsWhatIsNotOrdinarycallsStatementRowTest::testSqlDisplaysThePhpVariableForAnUnknownStatementcallsStatementRowTest::testSqlDoesNotDressUpACallNoStatementWasReadFromcallsTextReporterTest::testStatusLineWarnsWhenTheSearchDidNotClosecalls
Called from 4
- static-call SqlCatalog\Core\Analysis\Interpreter::unread() packages/sql-catalog/src/Core/Analysis/Interpreter.php:371
- static-call SqlCatalog\Core\Evaluation\ArrayTerm::toPattern() packages/sql-catalog/src/Core/Evaluation/ArrayTerm.php:121
- static-call SqlCatalog\Core\Evaluation\ObjectTerm::toPattern() packages/sql-catalog/src/Core/Evaluation/ObjectTerm.php:48
- static-call SqlCatalog\Core\Evaluation\OpaqueTerm::toPattern() packages/sql-catalog/src/Core/Evaluation/OpaqueTerm.php:48
Calls 1
- new
selfline 46
public static function fromSegments(list<TextSegment> $segments): selfA pattern built from arbitrary segments, coalescing adjacent literals.
Parameters
$segments | list<TextSegment> |
Returns
selfTest cases 23
BuiltinCallModelTest::testFormatPatternCarriesAGapInTheFormatAndKeepsCountingArgumentsPastItcallsCatalogEntryTest::testPartsAreTheRunsAndGapsTheStatementIsKnownIncallsStatementPartTest::testOfKeepsTheRunsAndTheGapsInOrdercallsTextGeneralizationTest::testAtomsSplitTextIntoCharactersAndKeepGapsWholecallsTextGeneralizationTest::testRebuildTurnsAtomsBackIntoSegmentscallsTextPatternTest::testFromSegmentsCoalescesAdjacentTextcallsTextPatternTest::testFromSegmentsDropsEmptyTextcallsTextPatternTest::testHolesAreReturnedInSourceOrdercallsClassPageTest::testRenderIsWrittenExactlycallsFileIndexPageTest::testRenderIsWrittenExactlycallsFilePageTest::testRenderIsWrittenExactlycallsFindingPageTest::testRenderIsWrittenExactlycallsNamespacePageTest::testRenderIsWrittenExactlycallsOverviewPageTest::testRenderIsWrittenExactlycallsStatementIndexPageTest::testRenderIsWrittenExactlycallsStatementPageTest::testRenderIsWrittenExactlycallsStatementPageTest::testRenderOfACallNothingWasReadFromIsWrittenExactlycallsTableIndexPageTest::testRenderIsWrittenExactlycallsTablePageTest::testRenderIsWrittenExactlycallsPageShellTest::testRenderIsWrittenExactlycallsSqlHighlighterTest::testInlineWritesTheStatementOnOneLinecallsSqlHighlighterTest::testRenderMarksTheResolvedRunsAndTheGapsBetweenThemcallsStatementListTest::testFacetsIsWrittenExactlycalls
Called from 4
- static-call SqlCatalog\Core\Analysis\BuiltinCallModel::formatPattern() packages/sql-catalog/src/Core/Analysis/BuiltinCallModel.php:128
- static-call SqlCatalog\Core\Text\TextGeneralization::merge() packages/sql-catalog/src/Core/Text/TextGeneralization.php:54
- static-call SqlCatalog\Core\Text\TextGeneralization::mergeResolved() packages/sql-catalog/src/Core/Text/TextGeneralization.php:76
- static-call SqlCatalog\Core\Text\TextPattern::concat() packages/sql-catalog/src/Core/Text/TextPattern.php:77
Calls 3
- function-call
countline 58 - new LiteralText line 63
- new
selfline 69
public function concat(self $other): selfThe pattern produced by writing this one and then the other.
Parameters
$other | self |
Returns
selfCalls 2
- static-call TextPattern::fromSegments() line 77
- function-call
array_mergeline 77
public function isExact(): boolWhether every character of the string is known.
Returns
boolCalled from 2
Calls 1
- method-call TextPattern::holes() line 85
public function text(): ?stringThe exact string, or null when the pattern still has gaps.
Returns
?stringTest cases 1
Called from 3
- method-call SqlCatalog\Core\Evaluation\Domain::asTerm() packages/sql-catalog/src/Core/Evaluation/Domain.php:185
- method-call SqlCatalog\Core\Text\TextGeneralization::mergeResolved() packages/sql-catalog/src/Core/Text/TextGeneralization.php:66
- method-call SqlCatalog\Core\Text\TextGeneralization::mergeResolved() packages/sql-catalog/src/Core/Text/TextGeneralization.php:67
public function holes(): list<TextHole>The gaps, in source order.
Returns
list<TextHole>Called from 3
- method-call SqlCatalog\Core\Analysis\EntryFactory::findings() packages/sql-catalog/src/Core/Analysis/EntryFactory.php:217
- method-call SqlCatalog\Core\Catalog\Resolution::of() packages/sql-catalog/src/Core/Catalog/Resolution.php:36
- method-call SqlCatalog\Core\Text\TextPattern::isExact() packages/sql-catalog/src/Core/Text/TextPattern.php:85
public function display(): stringThe pattern rendered for humans, with every gap shown as {$}.
Returns
stringTest cases 8
BuiltinCallModelTest::testFormatPatternKeepsEveryAlternativeOfAnArgumentcallsCalleeReturnsTest::testReadUnitesWhatEveryReturnCanReturncallsCalleeReturnsTest::testReturnedUnitesEveryRunOfTheSlicecallsDeriverTest::testSolveGivesOneSolutionPerBranchWithCorrelatedValuescallsDeriverTest::testSolveKeepsTheRunsOfEveryWayInApartWhileTheBudgetAffordsThemcallsDeriverTest::testSolveMarksTheWaysInJoinedForWantOfBudgetAsCombinedcallsDeriverTest::testSolveSharesTheRunsTheBudgetAffordsAmongTheWaysIncallsExpressionEvaluatorTest::testEvaluateOperatorOfACoalesceKeepsBothSidescalls
Called from 1
Calls 1
- method-call TextPattern::render() line 126
public function render(string $holeText): stringThe pattern rendered with a caller-chosen stand-in for every gap.
Reading placeholders out of partially resolved SQL needs a stand-in that lexes as an ordinary word, so that a gap inside a quoted string does not end the string it sits in.
Parameters
$holeText | string |
Returns
stringCalled from 4
- method-call SqlCatalog\Core\Sql\PlaceholderScanner::scan() packages/sql-catalog/src/Core/Sql/PlaceholderScanner.php:40
- method-call SqlCatalog\Core\Sql\StatementKindReader::read() packages/sql-catalog/src/Core/Sql/StatementKindReader.php:68
- method-call SqlCatalog\Core\Sql\TableReader::read() packages/sql-catalog/src/Core/Sql/TableReader.php:57
- method-call SqlCatalog\Core\Text\TextPattern::display() packages/sql-catalog/src/Core/Text/TextPattern.php:126
public function signature(): stringA canonical string that distinguishes patterns differing only in their gaps.
Returns
stringCalled from 3
- method-call SqlCatalog\Core\Catalog\EntryIdentity::compute() packages/sql-catalog/src/Core/Catalog/EntryIdentity.php:38
- method-call SqlCatalog\Core\Evaluation\PatternTerm::signature() packages/sql-catalog/src/Core/Evaluation/PatternTerm.php:49
- method-call SqlCatalog\Core\Text\TextPattern::equals() packages/sql-catalog/src/Core/Text/TextPattern.php:168
Calls 3
- class-const LiteralText::class() line 154
- class-const TextHole::class() line 155
- function-call
implodeline 160
public function equals(self $other): boolWhether the two patterns describe the same string shape.
Parameters
$other | self |
Returns
boolCalled from 1
Calls 2
- method-call TextPattern::signature() line 168
- method-call
self::signature()line 168
public function isEmpty(): boolWhether the pattern contributes no characters at all.
Returns
boolPrivate surface 1§
Implementation details, listed for orientation only.
private function __construct(public list<TextSegment> $segments)Test cases 339§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 15
TextPatternTest::testConcatJoinsTwoPatternscallsTextPatternTest::testDisplayShowsGapsAsAMarkercallsTextPatternTest::testEmptyHasNoSegmentscallsTextPatternTest::testEqualsComparesShapesRatherThanObjectscallsTextPatternTest::testFromHoleHoldsOneGapcallsTextPatternTest::testFromSegmentsCoalescesAdjacentTextcallsTextPatternTest::testFromSegmentsDropsEmptyTextcallsTextPatternTest::testFromTextDropsAnEmptyStringcallsTextPatternTest::testFromTextKeepsTheCharacterscallsTextPatternTest::testHolesAreReturnedInSourceOrdercallsTextPatternTest::testIsEmptyOnlyWithoutAnySegmentcallsTextPatternTest::testIsExactOnlyWithoutGapscallsTextPatternTest::testRenderSubstitutesTheGivenStandIncallsTextPatternTest::testSignatureKeepsGapOriginsApartcallsTextPatternTest::testTextIsNullWhenAGapRemainscalls
Other tests reaching this symbol 324
CatalogCommandTestcallsBuiltinCallModelTest::testFormatPatternCarriesAGapInTheFormatAndKeepsCountingArgumentsPastItcallsBuiltinCallModelTest::testFormatPatternFillsEachConversionWithTheNextArgumentcallsBuiltinCallModelTest::testFormatPatternKeepsEveryAlternativeOfAnArgumentcallsBuiltinCallModelTest::testFormatPatternLeavesAGapForAConversionWithoutAnArgumentcallsBuiltinCallModelTest::testSprintfFillsAPartlyKnownFormatcallsCallEvaluatorTestcallsConstantReaderTestcallsCalleeReturnsTest::testReadUnitesWhatEveryReturnCanReturncallsCalleeReturnsTest::testReturnedUnitesEveryRunOfTheSlicecallsDeriverTest::testSolveGivesOneSolutionPerBranchWithCorrelatedValuescallsDeriverTest::testSolveKeepsTheRunsOfEveryWayInApartWhileTheBudgetAffordsThemcallsDeriverTest::testSolveMarksTheWaysInJoinedForWantOfBudgetAsCombinedcallsDeriverTest::testSolveSharesTheRunsTheBudgetAffordsAmongTheWaysIncallsEntryBinderTestcallsCallbackEffectsTestcallsObjectEffectsTestcallsPropertyWritesTestcallsSliceExecutorTestcallsEntryFactoryTest::providerSearchClosurecallsEntryFactoryTest::testBindPlaceholdersLeavesAPlaceholderNothingWasBoundToEmptycallsEntryFactoryTest::testBindPlaceholdersLinesValuesUpByNamecallsEntryFactoryTest::testBindPlaceholdersLinesValuesUpByPositioncallsEntryFactoryTest::testBindPlaceholdersPrefersAValueBoundUnderTheNumberAsANamecallsEntryFactoryTest::testBindPlaceholdersReadsANumberedPlaceholderByPositioncallsEntryFactoryTest::testBuildGivesTwoIndistinguishableStatementsDistinctIdentifierscallsEntryFactoryTest::testBuildKeepsAnUndeterminedReadingBesideAResolvedOnecallsEntryFactoryTest::testBuildKeepsBothReadingsOfTheSameCallcallsEntryFactoryTest::testBuildNamesALoneStatementAsItsOwnReadingWouldcallsEntryFactoryTest::testBuildNumbersEachFurtherTwinOnceMorecallsEntryFactoryTest::testBuildOneCarriesTheCallsThatWereFollowedcallsEntryFactoryTest::testBuildOneReadsTheStatementKindTheCallImpliescallsEntryFactoryTest::testBuildOneRecordsWhetherTheAlternativesAreOnesTheCodeCanReachcallsEntryFactoryTest::testBuildOneReportsAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testBuildReportsAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testBuildSharesSearchCompletionAcrossEveryCandidatecallsEntryFactoryTest::testBuildTurnsRecordsIntoEntriescallsEntryFactoryTest::testCountMismatchCountsValuesBoundByPositionAndByNamecallsEntryFactoryTest::testCountMismatchReportsAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testCountMismatchStaysQuietWhenNothingWasBoundcallsEntryFactoryTest::testCountMismatchStaysQuietWhenTheCallSiteHasAlternativescallsEntryFactoryTest::testCountMismatchStaysQuietWhenTheCountsAgreecallsEntryFactoryTest::testFindingsAreEmptyForAResolvedStatementcallsEntryFactoryTest::testFindingsNeverCallAFullyResolvedStatementUnresolvedcallsEntryFactoryTest::testFindingsReportACallNotAnalyzedWithoutClaimingALimitCutItShortcallsEntryFactoryTest::testFindingsReportADynamicStatementcallsEntryFactoryTest::testFindingsReportAnIncompleteSearchOnceEvenWhenALimitAlsoCutItShortcallsEntryFactoryTest::testFindingsReportAReadingALimitCutShortAlongsideAWrongCountcallsEntryFactoryTest::testFindingsReportAStatementBoundWithTheWrongNumberOfValuescallsEntryFactoryTest::testFindingsReportAStatementThatDidNotResolveAtAllcallsEntryFactoryTest::testFindingsReportExternalInputcallsEntryFactoryTest::testFindingsReportExternalInputOnceHoweverManyValuesCarryItcallsEntryFactoryTest::testFindingsReportThatTheSearchDidNotClosecallsEntryFactoryTest::testGroupBySiteKeepsTheCallsApartcallsEntryFactoryTest::testMergeFoldsTwoReadingsOfTheSameStatementcallsEntryFactoryTest::testMergeKeepsTwoStatementsApartWhenTheirKeyAndTextRunTogethercallsEntryFactoryTest::testNotAnalyzedReasonSaysTheAnalysisStoppedBeforeReadingTheCallcallsEntryFactoryTest::testNotAnalyzedReasonSaysTheReceiverCouldNotBeIdentifiedcallsEntryFactoryTest::testRenumberKeepsEverythingButTheIdentifiercallsExpressionEvaluatorTest::testEvaluateOperatorOfACoalesceKeepsBothSidescallsRegistryTestcallsInterpreterTestcallsModelQueriesTestcallsQueryRecordTest::testAbsorbPreservesCombinationUncertaintyInEitherOrdercallsQueryRecordTest::testAbsorbTakesOverValuesTheOtherReadingAloneHascallsQueryRecordTest::testAbsorbTakesTheUnionOfBothReadingscallsQueryRecordTest::testBindKeepsValuesByPositionAndByNamecallsQueryRecordTest::testBindOneWritesAPositionCountedFromOnecallsQueryRecordTest::testBindOneWritesUnderThePositionOrTheNamecallsQueryRecordTest::testIsBoundAfterAbsorbOnlyWhenEitherReadingWasBoundcallsQueryRecordTest::testIsBoundAfterASingleValueIsBoundcallsQueryRecordTest::testIsBoundOnlyAfterSomethingWasBoundcallsQueryRecordTest::testIsTruncatedIsFalseAndCombinedIsFalseUnlessToldOtherwisecallsQueryRecordTest::testIsTruncatedOnceEitherReadingWasCutShortcallsQueryRecordTest::testIsTruncatedOnlyWhenABoundCutTheSearchShortcallsQueryRecordTest::testNamedIsEmptyUntilSomethingIsBoundByNamecallsQueryRecordTest::testPositionalIsOrderedByPositioncallsQueryRecordTest::testPositionalKeepsAValueAtThePositionItWasBoundTocallsReferenceEvaluatorTestcallsStatementRecorderTest::testFilePreparedFilesAStatementUnderItsHandlecallsStatementRecorderTest::testRecordKeepsAStatementUncombinedAndWholeUnlessToldOtherwisecallsStatementRecorderTest::testRecordKeepsTheStatementcallsValueBinderTest::testBindOneRecordAppendsAValueWhoseNameDidNotResolvecallsValueBinderTest::testBindOneRecordDoesNothingWhenTheCallBindsNothingcallsValueBinderTest::testBindOneRecordIgnoresAValuesArgumentThatDidNotResolvecallsValueBinderTest::testBindOneRecordLeavesAnArrayOfValuesThatDidNotResolveUnboundEvenWhenValuesCouldBeListedcallsValueBinderTest::testBindOneRecordNeedsBothTheNameAndTheValueOfASingleBindcallsValueBinderTest::testBindOneRecordReadsAnArrayOfValuescallsValueBinderTest::testBindOneRecordReadsOneNamedValuecallsValueBinderTest::testBindOneRecordReadsVariadicValuescallsValueBinderTest::testBindOneRecordReadsVariadicValuesWithoutAlsoReadingOneNamedValuecallsValueBinderTest::testBindValuesReachesEveryStatementcallsValueBinderTest::testOpenRecordsFindsTheStatementsAHandleStandsForcallsCatalogEntryTest::providerSearchClosedcallsCatalogEntryTest::testFirstGapIsTheFirstOneOrNothingWhenThereIsNonecallsCatalogEntryTest::testHasFindingLooksForOneRulecallsCatalogEntryTest::testIsExactWhenNothingIsLeftOpencallsCatalogEntryTest::testPartsAreTheRunsAndGapsTheStatementIsKnownIncallsCatalogEntryTest::testResolutionReadsHowFarTheAnalyzerGotcallsCatalogEntryTest::testSeverityIsInformationalWithoutFindingscallsCatalogEntryTest::testSeverityIsTheHighestOfTheFindingscallsCatalogEntryTest::testSqlWritesThePatternWithItsGapscallsCatalogEntryTest::testTheAlternativesAreMarkedAsReachableOrNotcallsCatalogTest::testEntriesAreReturnedInTheOrderTheyWereGivencallsCatalogTest::testFilterKeepsOnlyWhatTheTestAcceptscallsCatalogTest::testFindLooksUpAStatementByItsIdentifiercallsCatalogTest::testGetIteratorWalksTheStatementscallsCatalogTest::testSortedOrdersByWhereTheStatementIsIssuedcallsEntryIdentityTest::testComputeIgnoresTheLineNumbercallsEntryIdentityTest::testComputeIsAsLongAsItSaysItIscallsEntryIdentityTest::testComputeIsStableForTheSameStatementcallsEntryIdentityTest::testComputeSeparatesDifferentStatementsAndSitescallsEntryIdentityTest::testComputeSeparatesStatementsItCannotOtherwiseTellApartcallsResolutionTest::testOfcallsResolutionTest::testOfAStatementWithoutGapsIsResolvedcallsResolutionTest::testOfPrefersTheStoppedSearchOverTheInputItAlsoReachedcallsStatementPartTest::testOfHasNothingToSayAboutAnEmptyStatementcallsStatementPartTest::testOfKeepsAKnownRunAsTheTextItIscallsStatementPartTest::testOfKeepsTheRunsAndTheGapsInOrdercallsStatementPartTest::testOfKeepsWhatIsKnownAboutAGapcallsValueDomainTestcallsArrayEntryTestcallsArrayTermTestcallsDomainTest::testAsTermCollapsesAResolvedPatternToALiteralcallsDomainTest::testAsTermKeepsAPatternThatStillHasGapscallsDomainTest::testConcatBuildsEveryCombinationcallsDomainTest::testWithVariablePreservesResolvedDomainsAndExistingFragmentNamescallsEnvironmentTestcallsLiteralTermTestcallsObjectMemoryTestcallsObjectTermTestcallsOpaqueTermTestcallsPatternTermTest::testSignatureDistinguishesDifferentShapescallsPatternTermTest::testToPatternIsThePatternItselfcallsPatternTermTest::testTypeIsAlwaysStringcallsTermTest::testTypeIsReportedByEveryKindOfTermcallsCatalogFilterTest::testApplyKeepsEverythingWhenTheFilterIsEmptycallsCatalogFilterTest::testApplyKeepsOnlyTheMatchingStatementscallsCatalogFilterTest::testMatchesFunctionAcceptsTheShortNameOrTheQualifiedOnecallsCatalogFilterTest::testMatchesFunctionHandlesAFreeFunctioncallsCatalogFilterTest::testMatchesFunctionIgnoresALeadingBackslashOnEitherSidecallsCatalogFilterTest::testMatchesKindComparesTheStatementKindcallsCatalogFilterTest::testMatchesNamespaceComparesThePrefixOfTheEnclosingFunctioncallsCatalogFilterTest::testMatchesNamespaceIgnoresALeadingBackslashOnEitherSidecallsCatalogFilterTest::testMatchesPathAcceptsADirectoryWrittenWithATrailingSlashcallsCatalogFilterTest::testMatchesPathAcceptsAPatternOrADirectorycallsCatalogFilterTest::testMatchesRequiresEveryGivenCriterioncallsCatalogFilterTest::testMatchesSeverityKeepsWhatIsAtLeastAsSeverecallsCatalogFilterTest::testMatchesSinkComparesTheCallIdentifiercallsCatalogFilterTest::testMatchesTableIgnoresCasecallsPlaceholderScannerTest::testScanFindsNamedParameterscallsPlaceholderScannerTest::testScanFindsPositionalParametersInOrdercallsPlaceholderScannerTest::testScanIgnoresPostgresCastscallsPlaceholderScannerTest::testScanIgnoresQuestionMarksInsideStringscallsPlaceholderScannerTest::testScanReadsThroughAGapWithoutBreakingTheStringAroundItcallsStatementKindReaderTest::testReadcallsStatementKindReaderTest::testReadIsUnknownWhenAGapHidesTheLeadingKeywordcallsTableReaderTest::testReadcallsTableReaderTest::testReadDoesNotGuessAQuotedNameThatIsAllGapcallsTableReaderTest::testReadKeepsANameThatIsKnownInPartcallsTableReaderTest::testReadStopsAtAGapInsteadOfGuessingATablecallsTextGeneralizationTest::testAtomsSplitTextIntoCharactersAndKeepGapsWholecallsTextGeneralizationTest::testGapTypeIsAStringOnlyWhenBothSidesResolvedcallsTextGeneralizationTest::testMergeAllFoldsEveryAlternativecallsTextGeneralizationTest::testMergeCoversAGrowingSuffixcallsTextGeneralizationTest::testMergeKeepsWhatTheTwoSidesAgreeOncallsTextGeneralizationTest::testMergeResolvedAnswersOnlyForTwoResolvedStringscallsTextGeneralizationTest::testMergeReturnsTheSameShapeWhenBothSidesAgreecallsTextGeneralizationTest::testRebuildTurnsAtomsBackIntoSegmentscallsBuilderCallsTestcallsBuilderQueriesTestcallsCallbackModelTestcallsCallModelTestcallsClausesTestcallsGrammarTestcallsModelMetadataTestcallsPredicatesTestcallsQueryStateTestcallsSelectCompilerTestcallsWriteCompilerTestcallsAnalyzerTest::testSortRecordsIsCalledWithTheEntriescallsCatalogIndexTest::testAlongsideCountsTheTablesNamedWithOnecallsCatalogIndexTest::testByClassAndByNamespaceOrderNamesWithoutRegardToCasecallsCatalogIndexTest::testByClassGroupsMethodsUnderTheirClasscallsCatalogIndexTest::testByDirectoryGroupsFilesUnderTheirDirectorycallsCatalogIndexTest::testByFileIsInPathOrdercallsCatalogIndexTest::testByFunctionKeepsTheOrderFunctionsAreMetcallsCatalogIndexTest::testByNamespaceListsTheGlobalNamespaceFirstcallsCatalogIndexTest::testByRuleListsTheMostReportedRuleFirstcallsCatalogIndexTest::testByTableBreaksTiesByNamecallsCatalogIndexTest::testByTableListsTheMostNamedTableFirstcallsCatalogIndexTest::testEntriesAreInReportingOrdercallsCatalogIndexTest::testFunctionsOfCountsMostFirstcallsCatalogIndexTest::testHotspotsKeepCountingPastAStatementNothingWasReportedOncallsCatalogIndexTest::testHotspotsRankFunctionsByWhatWasReportedcallsCatalogIndexTest::testTablesOfCountsMostNamedFirstcallsCatalogIndexTest::testUsageCountsReadsWritesSchemaAndAttentioncallsCatalogIndexTest::testUsageOfCountsTruncateAsASchemaChangecallsCatalogIndexTest::testUsageOfTellsAReadFromAnotherStatementThatChangesNoRowcallsCatalogStatisticsTest::testAtLeastCountsTheStatementsWorthLookingAtcallsCatalogStatisticsTest::testByKindCountsTheKindsMostFirstcallsCatalogStatisticsTest::testByResolutionAccountsForEveryStatementUnderEveryResolutioncallsCatalogStatisticsTest::testByRuleCountsTheFindingsMostFirstcallsCatalogStatisticsTest::testFilesSayWhatWasFoundInEachOfThemcallsCatalogStatisticsTest::testFindingsCountsEveryFindingOfEveryStatementcallsCatalogStatisticsTest::testFlaggedListsTheReportedStatementsWorstFirstcallsCatalogStatisticsTest::testOpenCountsTheStatementsWhoseSearchDidNotClosecallsCatalogStatisticsTest::testResolvedCountsTheStatementsWithNoGapscallsCatalogStatisticsTest::testStatementsCountsWhatTheCatalogHoldscallsCatalogStatisticsTest::testTablesSayHowEachOneIsUsedcallsHtmlReporterTest::testClassPagesWriteOneDocumentPerClasscallsHtmlReporterTest::testFilePagesWriteOneDocumentPerFilecallsHtmlReporterTest::testRenderIncludesSourceForUnresolvedAndUnanalyzedCallsAndParseFailurescallsHtmlReporterTest::testRenderKeepsACallNoStatementWasReadFromApartFromAStatementcallsHtmlReporterTest::testRenderLinksEveryRouteToTheStatementsPagecallsHtmlReporterTest::testRenderWritesTheTrailToEveryPagecallsHtmlReporterTest::testRenderWritesTheWholeSiteOfPagescallsHtmlReporterTest::testStatementPagesWriteOneDocumentPerStatementcallsHtmlReporterTest::testTablePagesWriteOneDocumentPerTablecallsClassPageTest::testAnchorsNameTheTablesAndEveryMethodcallsClassPageTest::testContextListsTheMethodsAndTheClassesOfTheSameNamespacecallsClassPageTest::testMethodsAreInTheOrderTheyAreWrittencallsClassPageTest::testRenderIsWrittenExactlycallsClassPageTest::testRenderListsTheStatementsMethodByMethodcallsClassPageTest::testSectionsHeadEachMethodWithWhereItStartscallsFileIndexPageTest::testAnchorsNameEveryDirectorycallsFileIndexPageTest::testRenderIsWrittenExactlycallsFileIndexPageTest::testRenderListsFilesUnderTheirDirectoriescallsFileIndexPageTest::testRowCountsWhatWasFoundInTheFilecallsFileIndexPageTest::testSectionIsASortableTableOfTheDirectorysFilescallsFilePageTest::testAnchorsNameTheTablesAndEveryFunctioncallsFilePageTest::testContextListsTheFunctionsAndTheFilesOfTheSameDirectorycallsFilePageTest::testContextNamesTheRootDirectorycallsFilePageTest::testFunctionsAreInTheOrderTheyAreWrittencallsFilePageTest::testRenderIsWrittenExactlycallsFilePageTest::testRenderListsTheStatementsFunctionByFunctioncallsFilePageTest::testSectionsLeadFromAMethodToItsClasscallsFilePageTest::testTablesLinkToTheTablesNamedcallsFindingPageTest::testAnchorsNameTheHotspotsAndEveryRulecallsFindingPageTest::testHotspotsLinkEachFunctionAndAreSilentWhenNothingIsFlaggedcallsFindingPageTest::testRenderIsWrittenExactlycallsFindingPageTest::testRenderOpensWithWhereToLookAndThenListsEveryRulecallsNamespacePageTest::testAnchorsNameEveryNamespacecallsNamespacePageTest::testMembersListClassesBeforeFunctionscallsNamespacePageTest::testMembersOrderNamesWithoutRegardToCasecallsNamespacePageTest::testRenderIsWrittenExactlycallsNamespacePageTest::testRenderListsEveryNamespaceWithWhatIsDeclaredInItcallsNamespacePageTest::testSectionLeadsFromAClassToItsPageAndFromAFunctionToItsFilecallsOverviewPageTest::testAttentionListsRulesAndTheFunctionsFlaggedMostcallsOverviewPageTest::testCoverageLeadsFromEverySegmentToTheStatementsItCountscallsOverviewPageTest::testFactsLinkEachCountToItsRoutecallsOverviewPageTest::testFileRouteListsTheFilesWithTheMostStatementscallsOverviewPageTest::testKindRouteLeadsToTheListingNarrowedByKindcallsOverviewPageTest::testNamespaceRouteListsClassesOrFallsBackToFunctionscallsOverviewPageTest::testRenderIsWrittenExactlycallsOverviewPageTest::testRenderLaysOutEveryRouteToAStatementcallsOverviewPageTest::testTableRouteListsTheMostNamedTablesWithHowTheyAreUsedcallsStatementIndexPageTest::testRenderIsWrittenExactlycallsStatementIndexPageTest::testRenderListsEveryStatementUnderTheFacetsThatNarrowItcallsStatementPageTest::testBodyDoesNotDressUpACallNoStatementWasReadFromcallsStatementPageTest::testBodyLaysTheStatementOutAndKeepsTheSourceFormcallsStatementPageTest::testBodyUsesTheSameNamedGapInTheCopyableAndSourceBlockscallsStatementPageTest::testCaveatsWarnAboutWhatTheStatementDoesNotSaycallsStatementPageTest::testContextLeadsToEveryPlaceTheStatementBelongsToAndTheRestOfItsFunctioncallsStatementPageTest::testContextOfTopLevelCodeLeadsOnlyToItsFilecallsStatementPageTest::testFactsLinkTheTablesAndExplainTheReadingcallsStatementPageTest::testFindingsCarryTheirRuleAndSeveritycallsStatementPageTest::testRelatedListsTheFirstOfTheRestAndOnlyTheFirstTwoTablescallsStatementPageTest::testRelatedPointsAtTheRestWhenThereIsMoreThanItListscallsStatementPageTest::testRenderCarriesEverythingKnownAboutTheStatementcallsStatementPageTest::testRenderIsWrittenExactlycallsStatementPageTest::testRenderLeavesOutTheValuesWhenTheStatementTakesNonecallsStatementPageTest::testRenderOfACallNothingWasReadFromIsWrittenExactlycallsStatementPageTest::testRenderShowsUnanalyzedSourceBetweenTheCaveatAndStatementFactscallsStatementPageTest::testTitleNamesTheTablesOrSaysWhyThereAreNonecallsStatementPageTest::testValuesListTheBindParameterscallsStatementPageTest::testWhereLinksEveryPlaceAndNamesThePathTakencallsStatementPageTest::testWhereSaysNothingAboutThePathWhenTheStatementIsReadWhereItIsWrittencallsTableIndexPageTest::testRenderDoesNotGroupWhenNoTableIsQualifiedcallsTableIndexPageTest::testRenderGroupsTablesBySchemaWhenAnyIsQualifiedcallsTableIndexPageTest::testRenderIsWrittenExactlycallsTableIndexPageTest::testRowCountsHowTheTableIsUsedAndMarksAGapInItsNamecallsTablePageTest::testAlongsideIsSilentWhenTheTableIsNamedAlonecallsTablePageTest::testAnchorsFollowTheSectionsPresentcallsTablePageTest::testContextListsTheSectionsAndEveryOtherTablecallsTablePageTest::testGroupsListOnlyTheUsesPresentcallsTablePageTest::testRenderIsWrittenExactlycallsTablePageTest::testRenderSaysWhatUsesTheTableAndListsItsStatementsByWhatTheyDocallsTablePageTest::testUsedFromLinksEachFunctionAndSaysWhatItDoescallsPageShellTest::testRenderIsWrittenExactlycallsPageShellTest::testRoutesMarkTheRouteBeingReadAndCountWhatEachHoldscallsPageShellTest::testSidebarWritesTheRoutesAndThenWhatThePageIsLeftFromcallsReportSiteTest::testCatalogIsHeldInReportingOrdercallsReportSiteTest::testClassesAreInNameOrdercallsReportSiteTest::testClassPageFallsBackToTheListingForAnUnknownClasscallsReportSiteTest::testFilePageFallsBackToTheListingForAnUnknownFilecallsReportSiteTest::testFilesAreInPathOrdercallsReportSiteTest::testFunctionUrlLeadsToTheClassPageForAMethodAndTheFilePageOtherwisecallsReportSiteTest::testIndexGroupsTheCatalogcallsReportSiteTest::testStatisticsCountTheCatalogcallsReportSiteTest::testTablePageFallsBackToTheListingForAnUnknownTablecallsReportSiteTest::testTablesAreMostNamedFirstcallsSearchIndexTest::testEntryToArrayCarriesWhatTheSearchReadscallsSearchIndexTest::testEntryToArrayMakesTheVariableNameSearchablecallsSearchIndexTest::testRenderWritesTheIndexAsAScriptThePagesLoadcallsSourceCodeTest::testExcerptClipsAtTheStartAndEndOfTheFilecallsSourceCodeTest::testExcerptOmitsUnavailableSourceWithoutReadingTheFilesystemcallsSourceCodeTest::testExcerptShowsContextAndLinksToTheHighlightedCallInTheFullFilecallsSourceCodeTest::testFileIncludesAllLinesAndMarksEveryCallcallsSqlHighlighterTest::testInlineWritesTheStatementOnOneLinecallsSqlHighlighterTest::testRenderMarksTheResolvedRunsAndTheGapsBetweenThemcallsSqlHighlighterTest::testRenderSaysSoWhenThereIsNothingToShowcallsStatementListTest::testFacetsIsWrittenExactlycallsStatementListTest::testFacetsOfferOnlyWhatWouldNarrowTheListingcallsStatementListTest::testRowsListEveryStatementAndSaySoWhenThereIsNonecallsStatementRowTest::testAttributesCarryEveryFactAListingIsNarrowedBycallsStatementRowTest::testAttributesNameARuleOnceHoweverOftenItWasReportedcallsStatementRowTest::testMetaNamesTheFunctionUnlessTheListingAlreadyDoescallsStatementRowTest::testMetaOmitsWhatTheListingAlreadyStatesAndShowsWhatIsNotOrdinarycallsStatementRowTest::testRenderLinksTheStatementAndWhereItIsIssuedRelativeToThePagecallsStatementRowTest::testSqlDisplaysThePhpVariableForAnUnknownStatementcallsStatementRowTest::testSqlDoesNotDressUpACallNoStatementWasReadFromcallsJsonReporterTestcallsTextReporterTest::testStatusLineWarnsWhenTheSearchDidNotClosecalls
Relations§
Static calls 9
- static-call SqlCatalog\Core\Analysis\BuiltinCallModel::formatPattern() packages/sql-catalog/src/Core/Analysis/BuiltinCallModel.php:128
- static-call SqlCatalog\Core\Analysis\Interpreter::unread() packages/sql-catalog/src/Core/Analysis/Interpreter.php:371
- static-call SqlCatalog\Core\Evaluation\ArrayTerm::toPattern() packages/sql-catalog/src/Core/Evaluation/ArrayTerm.php:121
- static-call SqlCatalog\Core\Evaluation\LiteralTerm::toPattern() packages/sql-catalog/src/Core/Evaluation/LiteralTerm.php:33
- static-call SqlCatalog\Core\Evaluation\ObjectTerm::toPattern() packages/sql-catalog/src/Core/Evaluation/ObjectTerm.php:48
- static-call SqlCatalog\Core\Evaluation\OpaqueTerm::toPattern() packages/sql-catalog/src/Core/Evaluation/OpaqueTerm.php:48
- static-call SqlCatalog\Core\Text\TextGeneralization::merge() packages/sql-catalog/src/Core/Text/TextGeneralization.php:54
- static-call SqlCatalog\Core\Text\TextGeneralization::mergeResolved() packages/sql-catalog/src/Core/Text/TextGeneralization.php:76
- static-call SqlCatalog\Core\Text\TextGeneralization::mergeAll() packages/sql-catalog/src/Core/Text/TextGeneralization.php:100
Method calls 14
- method-call SqlCatalog\Core\Analysis\EntryFactory::findings() packages/sql-catalog/src/Core/Analysis/EntryFactory.php:217
- method-call SqlCatalog\Core\Catalog\CatalogEntry::sql() packages/sql-catalog/src/Core/Catalog/CatalogEntry.php:72
- method-call SqlCatalog\Core\Catalog\CatalogEntry::isExact() packages/sql-catalog/src/Core/Catalog/CatalogEntry.php:104
- method-call SqlCatalog\Core\Catalog\EntryIdentity::compute() packages/sql-catalog/src/Core/Catalog/EntryIdentity.php:38
- method-call SqlCatalog\Core\Catalog\Resolution::of() packages/sql-catalog/src/Core/Catalog/Resolution.php:36
- method-call SqlCatalog\Core\Evaluation\Domain::asTerm() packages/sql-catalog/src/Core/Evaluation/Domain.php:185
- method-call SqlCatalog\Core\Evaluation\PatternTerm::signature() packages/sql-catalog/src/Core/Evaluation/PatternTerm.php:49
- method-call SqlCatalog\Core\Sql\PlaceholderScanner::scan() packages/sql-catalog/src/Core/Sql/PlaceholderScanner.php:40
- method-call SqlCatalog\Core\Sql\StatementKindReader::read() packages/sql-catalog/src/Core/Sql/StatementKindReader.php:68
- method-call SqlCatalog\Core\Sql\TableReader::read() packages/sql-catalog/src/Core/Sql/TableReader.php:57
- method-call SqlCatalog\Core\Text\TextGeneralization::merge() packages/sql-catalog/src/Core/Text/TextGeneralization.php:33
- method-call SqlCatalog\Core\Text\TextGeneralization::mergeResolved() packages/sql-catalog/src/Core/Text/TextGeneralization.php:66
- method-call SqlCatalog\Core\Text\TextGeneralization::mergeResolved() packages/sql-catalog/src/Core/Text/TextGeneralization.php:67
- method-call SqlCatalog\Core\Text\TextGeneralization::gapType() packages/sql-catalog/src/Core/Text/TextGeneralization.php:212
Type declarations 26
- type SqlCatalog\Core\Analysis\BuiltinCallModel packages/sql-catalog/src/Core/Analysis/BuiltinCallModel.php:122
- type SqlCatalog\Core\Analysis\EntryFactory packages/sql-catalog/src/Core/Analysis/EntryFactory.php:167
- type SqlCatalog\Core\Analysis\EntryFactory packages/sql-catalog/src/Core/Analysis/EntryFactory.php:211
- type SqlCatalog\Core\Analysis\Interpreter packages/sql-catalog/src/Core/Analysis/Interpreter.php:369
- type SqlCatalog\Core\Analysis\QueryRecord packages/sql-catalog/src/Core/Analysis/QueryRecord.php:48
- type SqlCatalog\Core\Analysis\StatementRecorder packages/sql-catalog/src/Core/Analysis/StatementRecorder.php:44
- type SqlCatalog\Core\Catalog\CatalogEntry packages/sql-catalog/src/Core/Catalog/CatalogEntry.php:33
- type SqlCatalog\Core\Catalog\EntryIdentity packages/sql-catalog/src/Core/Catalog/EntryIdentity.php:36
- type SqlCatalog\Core\Catalog\Resolution packages/sql-catalog/src/Core/Catalog/Resolution.php:33
- type SqlCatalog\Core\Catalog\StatementPart packages/sql-catalog/src/Core/Catalog/StatementPart.php:47
- type SqlCatalog\Core\Evaluation\ArrayTerm packages/sql-catalog/src/Core/Evaluation/ArrayTerm.php:118
- type SqlCatalog\Core\Evaluation\Domain packages/sql-catalog/src/Core/Evaluation/Domain.php:183
- type SqlCatalog\Core\Evaluation\LiteralTerm packages/sql-catalog/src/Core/Evaluation/LiteralTerm.php:30
- type SqlCatalog\Core\Evaluation\ObjectTerm packages/sql-catalog/src/Core/Evaluation/ObjectTerm.php:45
- type SqlCatalog\Core\Evaluation\OpaqueTerm packages/sql-catalog/src/Core/Evaluation/OpaqueTerm.php:45
- type SqlCatalog\Core\Evaluation\PatternTerm packages/sql-catalog/src/Core/Evaluation/PatternTerm.php:21
- type SqlCatalog\Core\Evaluation\PatternTerm packages/sql-catalog/src/Core/Evaluation/PatternTerm.php:28
- type SqlCatalog\Core\Evaluation\Term packages/sql-catalog/src/Core/Evaluation/Term.php:24
- type SqlCatalog\Core\Sql\PlaceholderScanner packages/sql-catalog/src/Core/Sql/PlaceholderScanner.php:36
- type SqlCatalog\Core\Sql\StatementKindReader packages/sql-catalog/src/Core/Sql/StatementKindReader.php:66
- type SqlCatalog\Core\Sql\TableReader packages/sql-catalog/src/Core/Sql/TableReader.php:55
- type SqlCatalog\Core\Text\TextGeneralization packages/sql-catalog/src/Core/Text/TextGeneralization.php:31
- type SqlCatalog\Core\Text\TextGeneralization packages/sql-catalog/src/Core/Text/TextGeneralization.php:64
- type SqlCatalog\Core\Text\TextGeneralization packages/sql-catalog/src/Core/Text/TextGeneralization.php:96
- type SqlCatalog\Core\Text\TextGeneralization packages/sql-catalog/src/Core/Text/TextGeneralization.php:115
- type SqlCatalog\Core\Text\TextGeneralization packages/sql-catalog/src/Core/Text/TextGeneralization.php:210