Psalm
Get started
Documentation
Paid support
Plugins
Blog
GitHub
<?php /** * @template TValue * @psalm-require-extends BackedEnum */ trait ValuesFromEnumTrait { /** * @return list<TValue> */ public static function values(): array { return array_map( static fn (BackedEnum $enum) => $enum->value, self::cases() ); } } enum Bar: string { /** * @use ValuesFromEnumTrait<value-of<self>> */ use ValuesFromEnumTrait; case BAZ = 'baz'; } $values = Bar::values(); /** @psalm-trace $values */
Snippet created on January 19 2023 at 15:27 UTC
Settings
Get link