X7ROOT File Manager
Current Path:
/home/prisjneg/public_html/vendor/sebastian/type/src/type
home
/
prisjneg
/
public_html
/
vendor
/
sebastian
/
type
/
src
/
type
/
📁
..
📄
CallableType.php
(4.2 KB)
📄
FalseType.php
(880 B)
📄
GenericObjectType.php
(1.02 KB)
📄
IntersectionType.php
(2.73 KB)
📄
IterableType.php
(1.47 KB)
📄
MixedType.php
(794 B)
📄
NeverType.php
(714 B)
📄
NullType.php
(791 B)
📄
ObjectType.php
(1.53 KB)
📄
SimpleType.php
(1.8 KB)
📄
StaticType.php
(1.43 KB)
📄
TrueType.php
(875 B)
📄
Type.php
(4.17 KB)
📄
UnionType.php
(2.89 KB)
📄
UnknownType.php
(779 B)
📄
VoidType.php
(710 B)
Editing: UnionType.php
<?php declare(strict_types=1); /* * This file is part of sebastian/type. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\Type; use function count; use function implode; use function sort; final class UnionType extends Type { /** * @psalm-var non-empty-list<Type> */ private array $types; /** * @throws RuntimeException */ public function __construct(Type ...$types) { $this->ensureMinimumOfTwoTypes(...$types); $this->ensureOnlyValidTypes(...$types); $this->types = $types; } public function isAssignable(Type $other): bool { foreach ($this->types as $type) { if ($type->isAssignable($other)) { return true; } } return false; } public function asString(): string { return $this->name(); } public function name(): string { $types = []; foreach ($this->types as $type) { if ($type->isIntersection()) { $types[] = '(' . $type->name() . ')'; continue; } $types[] = $type->name(); } sort($types); return implode('|', $types); } public function allowsNull(): bool { foreach ($this->types as $type) { if ($type instanceof NullType) { return true; } } return false; } /** * @psalm-assert-if-true UnionType $this */ public function isUnion(): bool { return true; } public function containsIntersectionTypes(): bool { foreach ($this->types as $type) { if ($type->isIntersection()) { return true; } } return false; } /** * @psalm-return non-empty-list<Type> */ public function types(): array { return $this->types; } /** * @throws RuntimeException */ private function ensureMinimumOfTwoTypes(Type ...$types): void { if (count($types) < 2) { throw new RuntimeException( 'A union type must be composed of at least two types' ); } } /** * @throws RuntimeException */ private function ensureOnlyValidTypes(Type ...$types): void { foreach ($types as $type) { if ($type instanceof UnknownType) { throw new RuntimeException( 'A union type must not be composed of an unknown type' ); } if ($type instanceof VoidType) { throw new RuntimeException( 'A union type must not be composed of a void type' ); } } } }
Upload File
Create Folder