Skip to content

Commit 2a04ff6

Browse files
committed
Add new flag tag tests
1 parent b79a4ef commit 2a04ff6

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

libs/phpdoc/tests/DocBlock/Tag/FlagTagTest.php

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,48 @@
99
use TypeLang\PhpDoc\DocBlock\Combinator\DescriptionCombinator;
1010
use TypeLang\PhpDoc\DocBlock\Tag\AbstractTag\AbstractTag;
1111
use TypeLang\PhpDoc\DocBlock\Tag\AbstractTag\AbstractTagDefinition;
12+
use TypeLang\PhpDoc\DocBlock\Tag\AllowPrivateMutationTag\AllowPrivateMutationTag;
13+
use TypeLang\PhpDoc\DocBlock\Tag\CodingStandardsIgnoreEndTag\CodingStandardsIgnoreEndTag;
14+
use TypeLang\PhpDoc\DocBlock\Tag\CodingStandardsIgnoreFileTag\CodingStandardsIgnoreFileTag;
15+
use TypeLang\PhpDoc\DocBlock\Tag\CodingStandardsIgnoreLineTag\CodingStandardsIgnoreLineTag;
16+
use TypeLang\PhpDoc\DocBlock\Tag\CodingStandardsIgnoreStartTag\CodingStandardsIgnoreStartTag;
17+
use TypeLang\PhpDoc\DocBlock\Tag\ConsistentConstructorTag\ConsistentConstructorTag;
1218
use TypeLang\PhpDoc\DocBlock\Tag\FlagTagInterface;
19+
use TypeLang\PhpDoc\DocBlock\Tag\FormatterOffTag\FormatterOffTag;
20+
use TypeLang\PhpDoc\DocBlock\Tag\FormatterOnTag\FormatterOnTag;
1321
use TypeLang\PhpDoc\DocBlock\Tag\ImmutableTag\ImmutableTag;
1422
use TypeLang\PhpDoc\DocBlock\Tag\ImmutableTag\ImmutableTagDefinition;
1523
use TypeLang\PhpDoc\DocBlock\Tag\InternalTag\InternalTag;
1624
use TypeLang\PhpDoc\DocBlock\Tag\InternalTag\InternalTagDefinition;
1725
use TypeLang\PhpDoc\DocBlock\Tag\NotDeprecatedTag\NotDeprecatedTag;
1826
use TypeLang\PhpDoc\DocBlock\Tag\NotDeprecatedTag\NotDeprecatedTagDefinition;
27+
use TypeLang\PhpDoc\DocBlock\Tag\PhanConstructorUsedForSideEffectsTag\PhanConstructorUsedForSideEffectsTag;
28+
use TypeLang\PhpDoc\DocBlock\Tag\PhanForbidUndeclaredMagicMethodsTag\PhanForbidUndeclaredMagicMethodsTag;
29+
use TypeLang\PhpDoc\DocBlock\Tag\PhanForbidUndeclaredMagicPropertiesTag\PhanForbidUndeclaredMagicPropertiesTag;
30+
use TypeLang\PhpDoc\DocBlock\Tag\PhanOutputReferenceTag\PhanOutputReferenceTag;
31+
use TypeLang\PhpDoc\DocBlock\Tag\PhanSideEffectFreeTag\PhanSideEffectFreeTag;
32+
use TypeLang\PhpDoc\DocBlock\Tag\PhanTransientTag\PhanTransientTag;
33+
use TypeLang\PhpDoc\DocBlock\Tag\PhanWriteOnlyTag\PhanWriteOnlyTag;
34+
use TypeLang\PhpDoc\DocBlock\Tag\PhpStanIgnoreLineTag\PhpStanIgnoreLineTag;
35+
use TypeLang\PhpDoc\DocBlock\Tag\PhpStanIgnoreNextLineTag\PhpStanIgnoreNextLineTag;
36+
use TypeLang\PhpDoc\DocBlock\Tag\PhpStanImpureTag\PhpStanImpureTag;
37+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmConsistentTemplatesTag\PsalmConsistentTemplatesTag;
38+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmExternalMutationFreeTag\PsalmExternalMutationFreeTag;
39+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmIgnoreFalsableReturnTag\PsalmIgnoreFalsableReturnTag;
40+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmIgnoreNullableReturnTag\PsalmIgnoreNullableReturnTag;
41+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmIgnoreVariableMethodTag\PsalmIgnoreVariableMethodTag;
42+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmIgnoreVariablePropertyTag\PsalmIgnoreVariablePropertyTag;
43+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmIgnoreVarTag\PsalmIgnoreVarTag;
44+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmMutationFreeTag\PsalmMutationFreeTag;
45+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmNoSealMethodsTag\PsalmNoSealMethodsTag;
46+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmNoSealPropertiesTag\PsalmNoSealPropertiesTag;
47+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmOverrideMethodVisibilityTag\PsalmOverrideMethodVisibilityTag;
48+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmOverridePropertyVisibilityTag\PsalmOverridePropertyVisibilityTag;
49+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmStubOverrideTag\PsalmStubOverrideTag;
50+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmTaintSpecializeTag\PsalmTaintSpecializeTag;
51+
use TypeLang\PhpDoc\DocBlock\Tag\PsalmVariadicTag\PsalmVariadicTag;
52+
use TypeLang\PhpDoc\DocBlock\Tag\PureTag\PureTag;
53+
use TypeLang\PhpDoc\DocBlock\Tag\ReadonlyAllowPrivateMutationTag\ReadonlyAllowPrivateMutationTag;
1954
use TypeLang\PhpDoc\DocBlock\Tag\TodoTag\TodoTag;
2055
use TypeLang\PhpDoc\DocBlock\Tag\TodoTag\TodoTagDefinition;
2156
use TypeLang\PhpDoc\DocBlock\TagDefinition\TagPlacement;
@@ -64,6 +99,54 @@ public static function tagProvider(): iterable
6499
yield '@todo' => ['todo', TodoTag::class];
65100
yield '@immutable' => ['immutable', ImmutableTag::class];
66101
yield '@not-deprecated' => ['not-deprecated', NotDeprecatedTag::class];
102+
103+
// Shared tags contributed by several tool platforms under their own
104+
// vendor-prefixed names, each producing the same underlying tag.
105+
yield '@psalm-pure' => ['psalm-pure', PureTag::class];
106+
yield '@phpstan-pure' => ['phpstan-pure', PureTag::class];
107+
yield '@phan-pure' => ['phan-pure', PureTag::class];
108+
yield '@psalm-allow-private-mutation' => ['psalm-allow-private-mutation', AllowPrivateMutationTag::class];
109+
yield '@phpstan-allow-private-mutation' => ['phpstan-allow-private-mutation', AllowPrivateMutationTag::class];
110+
yield '@psalm-consistent-constructor' => ['psalm-consistent-constructor', ConsistentConstructorTag::class];
111+
yield '@phpstan-consistent-constructor' => ['phpstan-consistent-constructor', ConsistentConstructorTag::class];
112+
yield '@psalm-readonly-allow-private-mutation' => ['psalm-readonly-allow-private-mutation', ReadonlyAllowPrivateMutationTag::class];
113+
yield '@phpstan-readonly-allow-private-mutation' => ['phpstan-readonly-allow-private-mutation', ReadonlyAllowPrivateMutationTag::class];
114+
115+
yield '@psalm-consistent-templates' => ['psalm-consistent-templates', PsalmConsistentTemplatesTag::class];
116+
yield '@psalm-external-mutation-free' => ['psalm-external-mutation-free', PsalmExternalMutationFreeTag::class];
117+
yield '@psalm-mutation-free' => ['psalm-mutation-free', PsalmMutationFreeTag::class];
118+
yield '@psalm-ignore-falsable-return' => ['psalm-ignore-falsable-return', PsalmIgnoreFalsableReturnTag::class];
119+
yield '@psalm-ignore-nullable-return' => ['psalm-ignore-nullable-return', PsalmIgnoreNullableReturnTag::class];
120+
yield '@psalm-ignore-var' => ['psalm-ignore-var', PsalmIgnoreVarTag::class];
121+
yield '@psalm-ignore-variable-method' => ['psalm-ignore-variable-method', PsalmIgnoreVariableMethodTag::class];
122+
yield '@psalm-ignore-variable-property' => ['psalm-ignore-variable-property', PsalmIgnoreVariablePropertyTag::class];
123+
yield '@psalm-no-seal-methods' => ['psalm-no-seal-methods', PsalmNoSealMethodsTag::class];
124+
yield '@psalm-no-seal-properties' => ['psalm-no-seal-properties', PsalmNoSealPropertiesTag::class];
125+
yield '@psalm-override-method-visibility' => ['psalm-override-method-visibility', PsalmOverrideMethodVisibilityTag::class];
126+
yield '@psalm-override-property-visibility' => ['psalm-override-property-visibility', PsalmOverridePropertyVisibilityTag::class];
127+
yield '@psalm-stub-override' => ['psalm-stub-override', PsalmStubOverrideTag::class];
128+
yield '@psalm-taint-specialize' => ['psalm-taint-specialize', PsalmTaintSpecializeTag::class];
129+
yield '@psalm-variadic' => ['psalm-variadic', PsalmVariadicTag::class];
130+
131+
yield '@phpstan-impure' => ['phpstan-impure', PhpStanImpureTag::class];
132+
yield '@phpstan-ignore-line' => ['phpstan-ignore-line', PhpStanIgnoreLineTag::class];
133+
yield '@phpstan-ignore-next-line' => ['phpstan-ignore-next-line', PhpStanIgnoreNextLineTag::class];
134+
135+
yield '@phan-constructor-used-for-side-effects' => ['phan-constructor-used-for-side-effects', PhanConstructorUsedForSideEffectsTag::class];
136+
yield '@phan-forbid-undeclared-magic-methods' => ['phan-forbid-undeclared-magic-methods', PhanForbidUndeclaredMagicMethodsTag::class];
137+
yield '@phan-forbid-undeclared-magic-properties' => ['phan-forbid-undeclared-magic-properties', PhanForbidUndeclaredMagicPropertiesTag::class];
138+
yield '@phan-side-effect-free' => ['phan-side-effect-free', PhanSideEffectFreeTag::class];
139+
yield '@phan-transient' => ['phan-transient', PhanTransientTag::class];
140+
yield '@phan-write-only' => ['phan-write-only', PhanWriteOnlyTag::class];
141+
yield '@phan-output-reference' => ['phan-output-reference', PhanOutputReferenceTag::class];
142+
143+
yield '@formatter:off' => ['formatter:off', FormatterOffTag::class];
144+
yield '@formatter:on' => ['formatter:on', FormatterOnTag::class];
145+
146+
yield '@codingStandardsIgnoreStart' => ['codingStandardsIgnoreStart', CodingStandardsIgnoreStartTag::class];
147+
yield '@codingStandardsIgnoreEnd' => ['codingStandardsIgnoreEnd', CodingStandardsIgnoreEndTag::class];
148+
yield '@codingStandardsIgnoreLine' => ['codingStandardsIgnoreLine', CodingStandardsIgnoreLineTag::class];
149+
yield '@codingStandardsIgnoreFile' => ['codingStandardsIgnoreFile', CodingStandardsIgnoreFileTag::class];
67150
}
68151

69152
/**

0 commit comments

Comments
 (0)