File tree Expand file tree Collapse file tree 5 files changed +73
-1
lines changed
Expand file tree Collapse file tree 5 files changed +73
-1
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ /**
6+ * This file is part of phpDocumentor.
7+ *
8+ * For the full copyright and license information, please view the LICENSE
9+ * file that was distributed with this source code.
10+ *
11+ * @link http://phpdoc.org
12+ */
13+
14+ namespace phpDocumentor \Reflection \PseudoTypes ;
15+
16+ use phpDocumentor \Reflection \PseudoType ;
17+ use phpDocumentor \Reflection \Type ;
18+ use phpDocumentor \Reflection \Types \Resource_ ;
19+
20+ /**
21+ * Value Object representing the type 'open-resource'.
22+ *
23+ * @psalm-immutable
24+ */
25+ final class OpenResource extends Resource_ implements PseudoType
26+ {
27+ public function underlyingType (): Type
28+ {
29+ return new Resource_ ();
30+ }
31+
32+ public function __toString (): string
33+ {
34+ return 'open-resource ' ;
35+ }
36+ }
Original file line number Diff line number Diff line change 5656use phpDocumentor \Reflection \PseudoTypes \ObjectShape ;
5757use phpDocumentor \Reflection \PseudoTypes \ObjectShapeItem ;
5858use phpDocumentor \Reflection \PseudoTypes \OffsetAccess ;
59+ use phpDocumentor \Reflection \PseudoTypes \OpenResource ;
5960use phpDocumentor \Reflection \PseudoTypes \PositiveInteger ;
6061use phpDocumentor \Reflection \PseudoTypes \PrivatePropertiesOf ;
6162use phpDocumentor \Reflection \PseudoTypes \PropertiesOf ;
@@ -170,6 +171,7 @@ final class TypeResolver
170171 'array-key ' => ArrayKey::class,
171172 'non-empty-array ' => NonEmptyArray::class,
172173 'resource ' => Resource_::class,
174+ 'open-resource ' => OpenResource::class,
173175 'void ' => Void_::class,
174176 'null ' => Null_::class,
175177 'scalar ' => Scalar::class,
Original file line number Diff line number Diff line change 2020 *
2121 * @psalm-immutable
2222 */
23- final class Resource_ implements Type
23+ class Resource_ implements Type
2424{
2525 /**
2626 * Returns a rendered output of the Type as it would be used in a DocBlock.
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ /**
6+ * This file is part of phpDocumentor.
7+ *
8+ * For the full copyright and license information, please view the LICENSE
9+ * file that was distributed with this source code.
10+ *
11+ * @link http://phpdoc.org
12+ */
13+
14+ namespace phpDocumentor \Reflection \PseudoTypes ;
15+
16+ use phpDocumentor \Reflection \Types \Resource_ ;
17+ use PHPUnit \Framework \TestCase ;
18+
19+ final class OpenResourceTest extends TestCase
20+ {
21+ public function testCreate (): void
22+ {
23+ $ type = new OpenResource ();
24+
25+ $ this ->assertEquals (new Resource_ (), $ type ->underlyingType ());
26+ }
27+
28+ public function testToString (): void
29+ {
30+ $ this ->assertSame ('open-resource ' , (string ) (new OpenResource ()));
31+ }
32+ }
Original file line number Diff line number Diff line change 5656use phpDocumentor \Reflection \PseudoTypes \ObjectShape ;
5757use phpDocumentor \Reflection \PseudoTypes \ObjectShapeItem ;
5858use phpDocumentor \Reflection \PseudoTypes \OffsetAccess ;
59+ use phpDocumentor \Reflection \PseudoTypes \OpenResource ;
5960use phpDocumentor \Reflection \PseudoTypes \PositiveInteger ;
6061use phpDocumentor \Reflection \PseudoTypes \PrivatePropertiesOf ;
6162use phpDocumentor \Reflection \PseudoTypes \PropertiesOf ;
@@ -663,6 +664,7 @@ public function provideKeywords(): array
663664 ['false ' , Boolean::class],
664665 ['false ' , False_::class],
665666 ['resource ' , Resource_::class],
667+ ['open-resource ' , OpenResource::class],
666668 ['null ' , Null_::class],
667669 ['callable ' , Callable_::class],
668670 ['callable-string ' , CallableString::class],
You can’t perform that action at this time.
0 commit comments