|
9 | 9 | use TypeLang\PhpDoc\DocBlock\Combinator\DescriptionCombinator; |
10 | 10 | use TypeLang\PhpDoc\DocBlock\Tag\AbstractTag\AbstractTag; |
11 | 11 | 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; |
12 | 18 | use TypeLang\PhpDoc\DocBlock\Tag\FlagTagInterface; |
| 19 | +use TypeLang\PhpDoc\DocBlock\Tag\FormatterOffTag\FormatterOffTag; |
| 20 | +use TypeLang\PhpDoc\DocBlock\Tag\FormatterOnTag\FormatterOnTag; |
13 | 21 | use TypeLang\PhpDoc\DocBlock\Tag\ImmutableTag\ImmutableTag; |
14 | 22 | use TypeLang\PhpDoc\DocBlock\Tag\ImmutableTag\ImmutableTagDefinition; |
15 | 23 | use TypeLang\PhpDoc\DocBlock\Tag\InternalTag\InternalTag; |
16 | 24 | use TypeLang\PhpDoc\DocBlock\Tag\InternalTag\InternalTagDefinition; |
17 | 25 | use TypeLang\PhpDoc\DocBlock\Tag\NotDeprecatedTag\NotDeprecatedTag; |
18 | 26 | 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; |
19 | 54 | use TypeLang\PhpDoc\DocBlock\Tag\TodoTag\TodoTag; |
20 | 55 | use TypeLang\PhpDoc\DocBlock\Tag\TodoTag\TodoTagDefinition; |
21 | 56 | use TypeLang\PhpDoc\DocBlock\TagDefinition\TagPlacement; |
@@ -64,6 +99,54 @@ public static function tagProvider(): iterable |
64 | 99 | yield '@todo' => ['todo', TodoTag::class]; |
65 | 100 | yield '@immutable' => ['immutable', ImmutableTag::class]; |
66 | 101 | 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]; |
67 | 150 | } |
68 | 151 |
|
69 | 152 | /** |
|
0 commit comments