classObjectTerm
final class ObjectTerm
implements Term
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
An object the analyzer tracked by class.
An enum case carries the case name, which resolves ->value to a literal. A prepared statement carries the identifier of the catalog entry it came from, which is how a later execute() finds the query it binds values to. Modelled builders also carry an allocation identity and immutable state, so aliases observe mutations.
Properties§
public string $classNamepublic string|null $enumCase = nullpublic string|null $statementId = nullpublic string|null $identity = nullpublic ArrayTerm|null $state = nullMethods§
public function __construct(
public string $className,
public string|null $enumCase = null,
public string|null $statementId = null,
public string|null $identity = null,
public ArrayTerm|null $state = null,
)Parameters
$className | string | The fully qualified class name, without a leading backslash |
$enumCase | string|null | The case name when the object is an enum case |
$statementId | string|null | The catalog entry a prepared statement belongs to |
$identity | string|null | The allocation followed across aliases |
$state | ArrayTerm|null | The immutable properties of a modelled object |
public function toPattern(): TextPatternAn object never resolves to text, so it becomes a gap.
Returns
Test cases 2
Calls 4
- static-call TextPattern::fromHole() line 48
- new TextHole line 48
- class-const Origin::Unresolved() line 48
- method-call ObjectTerm::type() line 48
public function type(): TypeShapeThe class of the object.
Returns
Test cases 1
Called from 1
Calls 1
- static-call TypeShape::of() line 57
public function signature(): stringThe class, and the case or statement it stands for.
Returns
stringTest cases 66§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 5
Other tests reaching this symbol 61
CatalogCommandTestcallsCallEvaluatorTest::testEvaluateAppliesOnlyPossibleCallWritescallsCallEvaluatorTest::testEvaluateMethodFollowsAMethodDeclaredWithoutABodycallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAClassNoExtensionModelscallsCallEvaluatorTest::testEvaluateMethodFollowsIntoAModelledClassOnlyFromItsOwnBodycallsCallEvaluatorTest::testInvalidateEscapesOpensAliasedObjectStatecallsCallEvaluatorTest::testTheCallMethodsAreReachedDirectlycallsConstantReaderTestcallsCalleeReturnsTest::testCacheableRejectsAllocationsEvenInsideArrayscallsCallersTestcallsDeriverTestcallsEntryBinderTestcallsCallbackEffectsTestcallsObjectEffectsTestcallsPropertyWritesTestcallsSliceExecutorTest::testDeclareGlobalTakesTheClassTheNameIsKnownToHoldcallsExpressionEvaluatorTest::testEvaluateCloneCreatesAnIndependentTrackedAllocationcallsExpressionEvaluatorTest::testEvaluateInvalidatesAllAliasesOfAReferenceAssignedObjectcallsInterpreterTestcallsReferenceEvaluatorTest::testReadEnumPropertyReadsTheCaseTheValueIscallsReferenceEvaluatorTest::testReadPropertyIsCalledWithTheExpressionItselfcallsReferenceEvaluatorTest::testReadPropertyQuotesAPropertyItCannotNamecallsSinkMatcherTest::testMatchMethodFindsTheCallOnAKnownReceivercallsSinkMatcherTest::testModelsSaysWhetherAnExtensionAlreadyStandsForTheReceivercallsValueBinderTest::testOpenRecordsFindsTheStatementsAHandleStandsForcallsDomainTest::testSoleObjectOnlyAnswersForOneObjectcallsEnvironmentTest::testObjectsSharesSnapshotsAcrossAliasesButNotCopiescallsEnvironmentTest::testRefreshObservesLaterMutationsThroughAnAlreadyEvaluatedReferencecallsEnvironmentTest::testReplaceKeepsJoinedAlternativeObjectStatescallsObjectMemoryTest::testCopyIsIndependentOfLaterMutationscallsObjectMemoryTest::testImportDoesNotOverwriteAMutatedObjectWithAnOldAliascallsObjectMemoryTest::testInvalidateOpensAliasedObjectsInsideArraysAndKeepsUntrackedValuescallsObjectMemoryTest::testJoinPreservesBothBranchesWithoutMutatingEithercallsObjectMemoryTest::testReadRefreshesObjectsStoredInArrayscallsObjectMemoryTest::testRememberMakesAliasesReadTheLatestSnapshotcallsObjectMemoryTest::testRememberValueRetainsAlternativeSnapshotsAndBudgetFlagscallsObjectMemoryTest::testSignatureDoesNotDependOnInsertionOrdercallsTermTest::testSignatureSeparatesTermsOfDifferentKindscallsTermTest::testToPatternIsExactOnlyForResolvedTermscallsBuilderCallsTest::testBoundedMarksTooManyAlternativesAsOneOpenStateInsteadOfLosingEffectscallsBuilderCallsTest::testCallbackReturnsNullWithoutARegisteredRunnercallsBuilderCallsTest::testConnectionCallAliasesTheTableAndKeepsUnknownTablesOpencallsBuilderCallsTest::testMethodCallMutatesTheExistingIdentityAndLeavesOtherClassesAlonecallsBuilderQueriesTest::testCompileRequiresADialectEvenWhenEveryIdentifierIsRawcallsCallbackModelTest::testCheckedPreservesAVisibleGapWhenTheCallbackExceedsItsBudgetcallsCallbackModelTest::testClosedRejectsWidenedResultsAndForeignIdentitiescallsCallbackModelTest::testConditionalKeepsBothOutcomesOfWhenAndUnlesscallsCallModelTestcallsClausesTest::testFromSetsTheTableWithAnOptionalAliascallsGrammarTest::testBindingsExcludeExpressionsWithoutChangingValueOrdercallsGrammarTest::testParameterOnlySplicesExplicitExpressionscallsGrammarTest::testRawBindingsCountPlaceholdersWhenTheArrayIsUnknowncallsModelMetadataTestcallsPredicatesTestcallsQueryStateTest::testFromKeepsAnUninitializedBuilderOpencallsQueryStateTest::testObjectPreservesAllocationIdentitycallsSelectCompilerTestcallsWriteCompilerTestcallsAnalyzerTestcallsJsonReporterTestcallsTextReporterTestcalls
Relations§
Instantiated in 20
- new SqlCatalog\Core\Analysis\CallEvaluator::evaluate() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:82
- new SqlCatalog\Core\Analysis\CallEvaluator::evaluateInstantiation() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:151
- new SqlCatalog\Core\Analysis\CallEvaluator::applySink() packages/sql-catalog/src/Core/Analysis/CallEvaluator.php:387
- new SqlCatalog\Core\Analysis\ConstantReader::readClassConstant() packages/sql-catalog/src/Core/Analysis/ConstantReader.php:112
- new SqlCatalog\Core\Analysis\Derivation\Callers::of() packages/sql-catalog/src/Core/Analysis/Derivation/Callers.php:71
- new SqlCatalog\Core\Analysis\Derivation\EntryBinder::fileScope() packages/sql-catalog/src/Core/Analysis/Derivation/EntryBinder.php:381
- new SqlCatalog\Core\Analysis\Derivation\SliceExecutor::declare() packages/sql-catalog/src/Core/Analysis/Derivation/SliceExecutor.php:301
- new SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateClone() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:181
- new SqlCatalog\Core\Analysis\ReferenceEvaluator::evaluate() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:80
- new SqlCatalog\Core\Analysis\ReferenceEvaluator::readVariable() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:97
- new SqlCatalog\Core\Analysis\ReferenceEvaluator::readInstance() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:261
- new SqlCatalog\Core\Analysis\ReferenceEvaluator::assign() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:307
- new SqlCatalog\Core\Evaluation\ObjectMemory::invalidate() packages/sql-catalog/src/Core/Evaluation/ObjectMemory.php:133
- new SqlCatalog\Extension\Laravel\BuilderCalls::methodCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:118
- new SqlCatalog\Extension\Laravel\BuilderCalls::allocate() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:211
- new SqlCatalog\Extension\Laravel\CallModel::evaluate() packages/sql-catalog/src/Extension/Laravel/CallModel.php:39
- new SqlCatalog\Extension\Laravel\CallbackModel::apply() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:57
- new SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:119
- new SqlCatalog\Extension\Laravel\QueryState::object() packages/sql-catalog/src/Extension/Laravel/QueryState.php:114
- new SqlCatalog\Extension\Laravel\WriteCompiler::step() packages/sql-catalog/src/Extension/Laravel/WriteCompiler.php:95
Type checks 16
- instanceof SqlCatalog\Core\Analysis\Derivation\CalleeReturns::cacheable() packages/sql-catalog/src/Core/Analysis/Derivation/CalleeReturns.php:118
- instanceof SqlCatalog\Core\Analysis\ExpressionEvaluator::evaluateClone() packages/sql-catalog/src/Core/Analysis/ExpressionEvaluator.php:179
- instanceof SqlCatalog\Core\Analysis\ReferenceEvaluator::assign() packages/sql-catalog/src/Core/Analysis/ReferenceEvaluator.php:306
- instanceof SqlCatalog\Core\Evaluation\Domain::soleObject() packages/sql-catalog/src/Core/Evaluation/Domain.php:229
- instanceof SqlCatalog\Core\Evaluation\ObjectMemory::rememberValue() packages/sql-catalog/src/Core/Evaluation/ObjectMemory.php:38
- instanceof SqlCatalog\Core\Evaluation\ObjectMemory::import() packages/sql-catalog/src/Core/Evaluation/ObjectMemory.php:53
- instanceof SqlCatalog\Core\Evaluation\ObjectMemory::read() packages/sql-catalog/src/Core/Evaluation/ObjectMemory.php:76
- instanceof SqlCatalog\Core\Evaluation\ObjectMemory::invalidate() packages/sql-catalog/src/Core/Evaluation/ObjectMemory.php:132
- instanceof SqlCatalog\Extension\Laravel\BuilderCalls::methodCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:118
- instanceof SqlCatalog\Extension\Laravel\BuilderCalls::bounded() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:135
- instanceof SqlCatalog\Extension\Laravel\BuilderCalls::execution() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:251
- instanceof SqlCatalog\Extension\Laravel\BuilderCalls::unsupported() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:303
- instanceof SqlCatalog\Extension\Laravel\BuilderQueries::statements() packages/sql-catalog/src/Extension/Laravel/BuilderQueries.php:55
- instanceof SqlCatalog\Extension\Laravel\CallbackModel::closed() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:97
- instanceof SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:124
- instanceof SqlCatalog\Extension\Laravel\Grammar::wrap() packages/sql-catalog/src/Extension/Laravel/Grammar.php:40
Type declarations 12
- type SqlCatalog\Core\Evaluation\Domain packages/sql-catalog/src/Core/Evaluation/Domain.php:225
- type SqlCatalog\Core\Evaluation\ObjectMemory packages/sql-catalog/src/Core/Evaluation/ObjectMemory.php:24
- 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:207
- type SqlCatalog\Extension\Laravel\BuilderCalls packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:217
- 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:94
- type SqlCatalog\Extension\Laravel\CallbackModel packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:108
- type SqlCatalog\Extension\Laravel\CallbackModel packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:145
- type SqlCatalog\Extension\Laravel\QueryState packages/sql-catalog/src/Extension/Laravel/QueryState.php:89
- type SqlCatalog\Extension\Laravel\QueryState packages/sql-catalog/src/Extension/Laravel/QueryState.php:112