getClassSource($identifier) ?? $this->getFunctionSource($identifier) ?? $this->getConstantSource($identifier); } private function getClassSource(Identifier $identifier): InternalLocatedSource|null { if (! $identifier->isClass()) { return null; } /** @psalm-var class-string|trait-string $className */ $className = $identifier->getName(); return $this->createLocatedSourceFromStubData($identifier, $this->stubber->generateClassStub($className)); } private function getFunctionSource(Identifier $identifier): InternalLocatedSource|null { if (! $identifier->isFunction()) { return null; } return $this->createLocatedSourceFromStubData($identifier, $this->stubber->generateFunctionStub($identifier->getName())); } private function getConstantSource(Identifier $identifier): InternalLocatedSource|null { if (! $identifier->isConstant()) { return null; } return $this->createLocatedSourceFromStubData($identifier, $this->stubber->generateConstantStub($identifier->getName())); } private function createLocatedSourceFromStubData( Identifier $identifier, StubData|null $stubData, ): InternalLocatedSource|null { if ($stubData === null) { return null; } $extensionName = $stubData->getExtensionName(); if ($extensionName === null) { // Not internal return null; } return new InternalLocatedSource( $stubData->getStub(), $identifier->getName(), $extensionName, ); } } __halt_compiler();----SIGNATURE:----kmdGf84Qzlv/s6odHa7zpdaE+P38vOwDuV2rbf1sHejfnzrX6RlHTb5TzYZSUyu0VMnpXfZWU9amD0rWeItaB0AvnEqAA6oF+4l24hzp41kLcDwkNQGeQ0z2mFZGrdroQm7IBU5U33kWhqz8jMutEX8O3QDYFvxuJog68mQdhBfRkWS/gjsE+ZAPsmggEhw5gLUDxfTTi9P5MGTMQX0PaxPhsONaTxEiQU3TrxLXDOj/WYEhLyOWoxCzvrt7wOuli2u4kcEBZRnoqnYD9OZwNez7tuHxId2xZ/HC5YTonOiFCgfe7EpKTluAy7Zu5KC5pQRkevQ7Bog4BLX+WTeU7l1Rw9HAhLbcc/b3bLICv/XxTLndLaW0rw/9iZNUrzIk866XR2dBt1MpGKsPCrTT5BpAN2FrRPMLyDCKoaIWHCOqdyB8Ji0XrOp0fqqguuTgMncdogxak+F05htf9R5EKLbj9NTB71m4OIzifDZKNI4pMwEbwTw0fS2e8u+6b8P6n65qdkH+f8ub/f7MpZwlGe9cT1hKgpHFtnw1bk4bDSVVecajNshmz00Z4kYO5GXv61NXPVy3OsK6cdtvCs7k4D+V482nE+LVnSsxGjfr6al6DPjUEblvL3zII7Ls7Tz66q24G7tSkzqm+h8BcbdpUoymzocl0JZz9kLbIZrXfWY=----ATTACHMENT:----MzY4MzE0OTI3Nzg3NzMyOCA3NjM3MTM1NTk1MTc3NzcgNDcwMjU0MzIyNjk3ODA1