$name */ class ReflectionClass implements Reflector { /** * @var class-string */ public $name; /** * @param T|class-string|interface-string|trait-string $argument */ public function __construct($argument) {} /** * @return class-string */ public function getName(): string {} /** * @param mixed ...$args * * @return T */ public function newInstance(...$args): object {} /** * @param array $args * * @return T */ public function newInstanceArgs(array $args): object {} /** * @return T */ public function newInstanceWithoutConstructor(): object {} /** * @return ?array * @psalm-ignore-nullable-return */ public function getTraitNames(): array {} /** * @since 8.0 * @template TClass as object * @param class-string|null $name * @return ($name is null ? array> : array>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} } class ReflectionFunction implements Reflector { /** * @since 8.0 * @template TClass as object * @param class-string|null $name * @return ($name is null ? array> : array>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} } class ReflectionProperty implements Reflector { /** * @since 8.0 * @template TClass as object * @param class-string|null $name * @return ($name is null ? array> : array>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} /** * @since 7.4 * @psalm-assert-if-true ReflectionType $this->getType() */ public function hasType() : bool {} /** * @since 7.4 * @psalm-mutation-free */ public function getType() : ?ReflectionType {} } class ReflectionMethod implements Reflector { /** * @since 8.0 * @template TClass as object * @param class-string|null $name * @return ($name is null ? array> : array>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} public function isStatic(): bool {} } class ReflectionClassConstant { /** * @since 8.0 * @template TClass as object * @param class-string|null $name * @return ($name is null ? array> : array>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} } /** * @psalm-immutable */ class ReflectionParameter { /** * @psalm-assert-if-true ReflectionType $this->getType() */ public function hasType() : bool {} public function getType() : ?ReflectionType {} } /** * @psalm-immutable */ class ReflectionNamedType extends ReflectionType { public function getName(): string {} /** * @psalm-assert-if-false class-string $this->getName() */ public function isBuiltin(): bool {} }