Menu

← Back to enum.*

Error Identifier: enum.deprecatedAttribute

Every error reported by PHPStan has an error identifier. Here’s a list of all error identifiers. In PHPStan Pro you can see the error identifier next to each error and filter errors by their identifiers.

Code example #

<?php declare(strict_types = 1);

#[\Deprecated]
enum Status
{
    case Active;
    case Inactive;
}

Why is it reported? #

The PHP #[\Deprecated] attribute (introduced in PHP 8.4) cannot be used on enums. This attribute is designed for functions, methods, and class constants, but PHP does not support marking entire enums as deprecated using this native attribute. Attempting to use it on an enum is invalid.

How to fix it #

Remove the #[\Deprecated] attribute from the enum. To mark an enum as deprecated, use the @deprecated PHPDoc tag instead:

 <?php declare(strict_types = 1);
 
-#[\Deprecated]
+/** @deprecated Use NewStatus instead */
 enum Status
 {
     case Active;
     case Inactive;
 }

Non-ignorable error #

This error cannot be ignored using @phpstan-ignore or the ignoreErrors configuration. Non-ignorable errors indicate code that would cause a crash or a fatal error at runtime, or a fundamental problem in the analysed code that must be addressed.

Rules that report this error #

  • PHPStan\Rules\Classes\ClassAttributesRule [1]

Edit this page on GitHub

Theme
A
© 2026 PHPStan s.r.o.