@@ -42,10 +42,32 @@ public function getTypes(): iterable
4242 // Adds support for the "string" type
4343 yield $ string = new Builder \SimpleTypeBuilder ('string ' , Type \StringType::class);
4444 yield new Builder \TypeAliasBuilder (\Stringable::class, $ string );
45+ yield new Builder \TypeAliasBuilder ('non-empty-string ' , $ string , Reason::Temporary);
46+ yield new Builder \TypeAliasBuilder ('lowercase-string ' , $ string , Reason::Temporary);
47+ yield new Builder \TypeAliasBuilder ('non-empty-lowercase-string ' , $ string , Reason::Temporary);
48+ yield new Builder \TypeAliasBuilder ('uppercase-string ' , $ string , Reason::Temporary);
49+ yield new Builder \TypeAliasBuilder ('non-empty-uppercase-string ' , $ string , Reason::Temporary);
50+ yield new Builder \TypeAliasBuilder ('numeric-string ' , $ string , Reason::Temporary);
51+ yield new Builder \TypeAliasBuilder ('literal-string ' , $ string , Reason::Temporary);
52+ yield new Builder \TypeAliasBuilder ('non-empty-literal-string ' , $ string , Reason::Temporary);
53+ yield new Builder \TypeAliasBuilder ('class-string ' , $ string , Reason::Temporary);
54+ yield new Builder \TypeAliasBuilder ('interface-string ' , $ string , Reason::Temporary);
55+ yield new Builder \TypeAliasBuilder ('trait-string ' , $ string , Reason::Temporary);
56+ yield new Builder \TypeAliasBuilder ('enum-string ' , $ string , Reason::Temporary);
57+ yield new Builder \TypeAliasBuilder ('callable-string ' , $ string , Reason::Temporary);
58+ yield new Builder \TypeAliasBuilder ('truthy-string ' , $ string , Reason::Temporary);
59+ yield new Builder \TypeAliasBuilder ('non-falsy-string ' , $ string , Reason::Temporary);
4560
4661 // Adds support for the "int" type
4762 yield $ int = new Builder \IntRangeTypeBuilder ('int ' );
4863 yield new Builder \TypeAliasBuilder ('integer ' , $ int , Reason::NonCanonical);
64+ yield new Builder \TypeAliasBuilder ('positive-int ' , $ int , Reason::Temporary);
65+ yield new Builder \TypeAliasBuilder ('non-positive-int ' , $ int , Reason::Temporary);
66+ yield new Builder \TypeAliasBuilder ('negative-int ' , $ int , Reason::Temporary);
67+ yield new Builder \TypeAliasBuilder ('non-negative-int ' , $ int , Reason::Temporary);
68+ yield new Builder \TypeAliasBuilder ('non-zero-int ' , $ int , Reason::Temporary);
69+ yield new Builder \TypeAliasBuilder ('number ' , $ int , Reason::Temporary);
70+ yield new Builder \TypeAliasBuilder ('numeric ' , $ int , Reason::Temporary);
4971
5072 // Adds support for the "float" type
5173 yield $ float = new Builder \SimpleTypeBuilder ('float ' , Type \FloatType::class);
@@ -70,19 +92,11 @@ public function getTypes(): iterable
7092 // Adds support for the "?T" statement
7193 yield new Builder \NullableTypeBuilder ();
7294
73- // Adds support for the "null" literal and/or named type statement
95+ // Adds support for the literal types
7496 yield new Builder \NullTypeBuilder ();
75-
76- // Adds support for the "true" and "false" literals
7797 yield new Builder \BoolLiteralTypeBuilder ();
78-
79- // Adds support for the integer literal types
8098 yield new Builder \IntLiteralTypeBuilder ();
81-
82- // Adds support for the float literal types
8399 yield new Builder \FloatLiteralTypeBuilder ();
84-
85- // Adds support for the string literal types
86100 yield new Builder \StringLiteralTypeBuilder ();
87101
88102 // Adds support for the "T[]" statement
@@ -91,33 +105,12 @@ public function getTypes(): iterable
91105 // Adds support for the "T|U" union types
92106 yield new Builder \UnionTypeBuilder ();
93107
94- // Temporary aliases
95- yield new Builder \TypeAliasBuilder ('non-empty-string ' , $ string , Reason::Temporary);
96- yield new Builder \TypeAliasBuilder ('lowercase-string ' , $ string , Reason::Temporary);
97- yield new Builder \TypeAliasBuilder ('non-empty-lowercase-string ' , $ string , Reason::Temporary);
98- yield new Builder \TypeAliasBuilder ('uppercase-string ' , $ string , Reason::Temporary);
99- yield new Builder \TypeAliasBuilder ('non-empty-uppercase-string ' , $ string , Reason::Temporary);
100- yield new Builder \TypeAliasBuilder ('numeric-string ' , $ string , Reason::Temporary);
101- yield new Builder \TypeAliasBuilder ('literal-string ' , $ string , Reason::Temporary);
102- yield new Builder \TypeAliasBuilder ('non-empty-literal-string ' , $ string , Reason::Temporary);
103- yield new Builder \TypeAliasBuilder ('class-string ' , $ string , Reason::Temporary);
104- yield new Builder \TypeAliasBuilder ('interface-string ' , $ string , Reason::Temporary);
105- yield new Builder \TypeAliasBuilder ('trait-string ' , $ string , Reason::Temporary);
106- yield new Builder \TypeAliasBuilder ('enum-string ' , $ string , Reason::Temporary);
107- yield new Builder \TypeAliasBuilder ('callable-string ' , $ string , Reason::Temporary);
108- yield new Builder \TypeAliasBuilder ('truthy-string ' , $ string , Reason::Temporary);
109- yield new Builder \TypeAliasBuilder ('non-falsy-string ' , $ string , Reason::Temporary);
110-
111- yield new Builder \TypeAliasBuilder ('positive-int ' , $ int , Reason::Temporary);
112- yield new Builder \TypeAliasBuilder ('non-positive-int ' , $ int , Reason::Temporary);
113- yield new Builder \TypeAliasBuilder ('negative-int ' , $ int , Reason::Temporary);
114- yield new Builder \TypeAliasBuilder ('non-negative-int ' , $ int , Reason::Temporary);
115- yield new Builder \TypeAliasBuilder ('non-zero-int ' , $ int , Reason::Temporary);
116-
117- yield new Builder \TypeAliasBuilder ('number ' , $ int , Reason::Temporary);
118- yield new Builder \TypeAliasBuilder ('numeric ' , $ int , Reason::Temporary);
108+ // Adds support for constants (and masks)
109+ yield new Builder \ConstMaskTypeBuilder ();
110+ yield new Builder \ClassConstTypeBuilder ();
111+ yield new Builder \ClassConstMaskTypeBuilder ();
119112
120- // Other
113+ // Other (asymmetric)
121114 yield $ object = new Builder \ObjectTypeBuilder ('object ' );
122115 yield new Builder \TypeAliasBuilder (\stdClass::class, $ object );
123116 yield new Builder \UnitEnumTypeBuilder ();
0 commit comments