php-src/ext/reflection/tests/ReflectionEnumUnitCase_getEnum.phpt
Nikita Popov caefc6a507 Don't use custom object handlers for enum properties
Instead mark name/value as readonly and the class as
NO_DYNAMIC_PROPERTIES. This gives us the desired limitations
using native features.

In fact, this also fixes a bug where opcache cache slot merging
might result in a write to the name/value properties being
allowed. The readonly implementation handles this case correctly.
2021-08-13 16:44:39 +02:00

40 lines
637 B
PHP

--TEST--
ReflectionEnumUnitCase::getEnum()
--FILE--
<?php
enum Foo {
case Bar;
}
echo (new ReflectionEnumUnitCase(Foo::class, 'Bar'))->getEnum();
?>
--EXPECTF--
Class [ <user> final class Foo implements UnitEnum ] {
@@ %sReflectionEnumUnitCase_getEnum.php 3-5
- Constants [1] {
Constant [ public Foo Bar ] { Object }
}
- Static properties [0] {
}
- Static methods [1] {
Method [ <internal, prototype UnitEnum> static public method cases ] {
- Parameters [0] {
}
- Return [ array ]
}
}
- Properties [1] {
Property [ public readonly string $name ]
}
- Methods [0] {
}
}