summaryrefslogtreecommitdiff
path: root/vendor/phpdocumentor/type-resolver/src/Types/Intersection.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phpdocumentor/type-resolver/src/Types/Intersection.php')
-rw-r--r--vendor/phpdocumentor/type-resolver/src/Types/Intersection.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Intersection.php b/vendor/phpdocumentor/type-resolver/src/Types/Intersection.php
new file mode 100644
index 000000000..ced37b626
--- /dev/null
+++ b/vendor/phpdocumentor/type-resolver/src/Types/Intersection.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * This file is part of phpDocumentor.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @link http://phpdoc.org
+ */
+
+declare(strict_types=1);
+
+namespace phpDocumentor\Reflection\Types;
+
+use phpDocumentor\Reflection\Type;
+
+/**
+ * Value Object representing a Compound Type.
+ *
+ * A Intersection Type is not so much a special keyword or object reference but is a series of Types that are separated
+ * using an AND operator (`&`). This combination of types signifies that whatever is associated with this Intersection
+ * type may contain a value with any of the given types.
+ *
+ * @psalm-immutable
+ */
+final class Intersection extends AggregatedType
+{
+ /**
+ * Initializes a intersection type (i.e. `\A&\B`) and tests if the provided types all implement the Type interface.
+ *
+ * @param array<Type> $types
+ */
+ public function __construct(array $types)
+ {
+ parent::__construct($types, '&');
+ }
+}