2323use PHPStan \PhpDocParser \Parser \TokenIterator ;
2424use PHPStan \PhpDocParser \Parser \TypeParser ;
2525use SlevomatCodingStandard \Helpers \Annotation \Annotation ;
26+ use SlevomatCodingStandard \Helpers \Annotation \AssertAnnotation ;
2627use SlevomatCodingStandard \Helpers \Annotation \ExtendsAnnotation ;
2728use SlevomatCodingStandard \Helpers \Annotation \GenericAnnotation ;
2829use SlevomatCodingStandard \Helpers \Annotation \ImplementsAnnotation ;
@@ -64,7 +65,7 @@ class AnnotationHelper
6465
6566 /**
6667 * @internal
67- * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|TypeAliasAnnotation|TypeImportAnnotation $annotation
68+ * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|TypeAliasAnnotation|TypeImportAnnotation|AssertAnnotation $annotation
6869 * @return TypeNode[]
6970 */
7071 public static function getAnnotationTypes (Annotation $ annotation ): array
@@ -97,7 +98,7 @@ public static function getAnnotationTypes(Annotation $annotation): array
9798
9899 /**
99100 * @internal
100- * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation $annotation
101+ * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|AssertAnnotation $annotation
101102 * @return ConstExprNode[]
102103 */
103104 public static function getAnnotationConstantExpressions (Annotation $ annotation ): array
@@ -125,7 +126,7 @@ public static function getAnnotationConstantExpressions(Annotation $annotation):
125126
126127 /**
127128 * @internal
128- * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation $annotation
129+ * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|AssertAnnotation $annotation
129130 */
130131 public static function fixAnnotationType (File $ phpcsFile , Annotation $ annotation , TypeNode $ typeNode , TypeNode $ fixedTypeNode ): string
131132 {
@@ -136,7 +137,7 @@ public static function fixAnnotationType(File $phpcsFile, Annotation $annotation
136137
137138 /**
138139 * @internal
139- * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation $annotation
140+ * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|AssertAnnotation $annotation
140141 */
141142 public static function fixAnnotationConstantFetchNode (
142143 File $ phpcsFile ,
@@ -192,7 +193,7 @@ public static function fixAnnotationConstantFetchNode(
192193 }
193194
194195 /**
195- * @return (VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|GenericAnnotation)[]
196+ * @return (VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|AssertAnnotation| GenericAnnotation)[]
196197 */
197198 public static function getAnnotationsByName (File $ phpcsFile , int $ pointer , string $ annotationName ): array
198199 {
@@ -202,7 +203,7 @@ public static function getAnnotationsByName(File $phpcsFile, int $pointer, strin
202203 }
203204
204205 /**
205- * @return (VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|GenericAnnotation)[][]
206+ * @return (VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|AssertAnnotation| GenericAnnotation)[][]
206207 */
207208 public static function getAnnotations (File $ phpcsFile , int $ pointer ): array
208209 {
@@ -334,6 +335,12 @@ static function () use ($phpcsFile, $pointer): array {
334335 '@psalm-import-type ' => TypeImportAnnotation::class,
335336 '@phpstan-import-type ' => TypeImportAnnotation::class,
336337 '@mixin ' => MixinAnnotation::class,
338+ '@phpstan-assert ' => AssertAnnotation::class,
339+ '@phpstan-assert-if-true ' => AssertAnnotation::class,
340+ '@phpstan-assert-if-false ' => AssertAnnotation::class,
341+ '@psalm-assert ' => AssertAnnotation::class,
342+ '@psalm-assert-if-true ' => AssertAnnotation::class,
343+ '@psalm-assert-if-false ' => AssertAnnotation::class,
337344 ];
338345
339346 if (array_key_exists ($ annotationName , $ mapping )) {
@@ -468,7 +475,7 @@ public static function isAnnotationUseless(
468475 }
469476
470477 /**
471- * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|TypeAliasAnnotation|TypeImportAnnotation $annotation
478+ * @param VariableAnnotation|ParameterAnnotation|ReturnAnnotation|ThrowsAnnotation|PropertyAnnotation|MethodAnnotation|TemplateAnnotation|ExtendsAnnotation|ImplementsAnnotation|UseAnnotation|MixinAnnotation|TypeAliasAnnotation|TypeImportAnnotation|AssertAnnotation $annotation
472479 */
473480 private static function fixAnnotation (Annotation $ annotation , TypeNode $ typeNode , TypeNode $ fixedTypeNode ): Annotation
474481 {
0 commit comments