3 /* Due to class context forwarding behavior of lsb keyword self
4 * it is inconsistent to have self::foo<>() and (self::foo<>)()
5 * behaving differently. Because this behavior is inconsistent
6 * when used in non-final classes, allow it in final classes but
11 public static function foo(): void
{}
14 final class Foo
extends BaseClass
{
15 public static function bar(): void
{