ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 3.15.12.22 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/upgHR/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ |
Upload File : |
<?php namespace Prophecy\Doubler\Generator\Node; use Prophecy\Exception\Doubler\DoubleException; abstract class TypeNodeAbstract { /** @var string[] */ protected $types = []; public function __construct(string ...$types) { foreach ($types as $type) { $type = $this->getRealType($type); $this->types[$type] = $type; } $this->guardIsValidType(); } public function canUseNullShorthand(): bool { return isset($this->types['null']) && count($this->types) <= 2; } public function getTypes(): array { return array_values($this->types); } public function getNonNullTypes(): array { $nonNullTypes = $this->types; unset($nonNullTypes['null']); return array_values($nonNullTypes); } protected function prefixWithNsSeparator(string $type): string { return '\\' . ltrim($type, '\\'); } protected function getRealType(string $type): string { switch ($type) { // type aliases case 'double': case 'real': return 'float'; case 'boolean': return 'bool'; case 'integer': return 'int'; // built in types case 'self': case 'array': case 'callable': case 'bool': case 'false': case 'float': case 'int': case 'string': case 'iterable': case 'object': case 'null': return $type; case 'mixed': return \PHP_VERSION_ID < 80000 ? $this->prefixWithNsSeparator($type) : $type; default: return $this->prefixWithNsSeparator($type); } } protected function guardIsValidType() { if ($this->types == ['null' => 'null']) { throw new DoubleException('Type cannot be standalone null'); } if ($this->types == ['false' => 'false']) { throw new DoubleException('Type cannot be standalone false'); } if ($this->types == ['false' => 'false', 'null' => 'null']) { throw new DoubleException('Type cannot be nullable false'); } if (\PHP_VERSION_ID >= 80000 && isset($this->types['mixed']) && count($this->types) !== 1) { throw new DoubleException('mixed cannot be part of a union'); } } }