1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-16 19:36:59 +01:00
psalm/stubs/Reflection.phpstub

218 lines
4.5 KiB
PHP
Raw Normal View History

2021-03-06 22:05:14 +01:00
<?php
/**
* @template-covariant T as object
*
* @property-read class-string<T> $name
*/
class ReflectionClass implements Reflector {
/**
* @var class-string<T>
*/
public $name;
/**
2022-01-16 09:47:05 +01:00
* @param T|class-string<T>|interface-string<T>|trait-string|enum-string<T> $argument
2021-03-06 22:05:14 +01:00
*/
public function __construct($argument) {}
/**
* @return class-string<T>
*/
public function getName(): string {}
2021-03-06 22:05:14 +01:00
/**
* @param mixed ...$args
*
* @return T
*/
public function newInstance(...$args): object {}
/**
* @param array<int, mixed> $args
*
* @return T
*/
public function newInstanceArgs(array $args): object {}
/**
* @return T
*/
public function newInstanceWithoutConstructor(): object {}
2021-03-06 22:05:14 +01:00
/**
* @return ?array<string>
* @psalm-ignore-nullable-return
*/
public function getTraitNames(): array {}
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
2021-12-20 09:57:06 +01:00
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
2021-03-06 22:05:14 +01:00
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
class ReflectionFunction implements Reflector
{
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
2021-12-20 10:19:01 +01:00
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
2021-03-06 22:05:14 +01:00
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
class ReflectionProperty implements Reflector
{
/**
* @var string
* @readonly
*/
public $name;
/**
* @var class-string
* @readonly
*/
public $class;
2021-03-06 22:05:14 +01:00
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
2021-12-20 10:19:01 +01:00
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
2021-03-06 22:05:14 +01:00
*/
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 {}
2022-10-17 01:33:26 +02:00
/**
* @since 8.0
*/
public function hasDefaultValue(): bool {}
/**
* @since 8.0
*/
public function isPromoted(): bool {}
/**
* @since 8.1
*/
public function isReadOnly(): bool {}
2021-03-06 22:05:14 +01:00
}
class ReflectionMethod implements Reflector
{
/**
* @var string
* @readonly
*/
public $name;
/**
* @var class-string
* @readonly
*/
public $class;
2021-03-06 22:05:14 +01:00
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
2021-12-20 10:19:01 +01:00
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
2021-03-06 22:05:14 +01:00
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
public function isStatic(): bool {}
2021-03-06 22:05:14 +01:00
}
class ReflectionClassConstant implements Reflector
2021-03-06 22:05:14 +01:00
{
/**
* @var string
* @readonly
*/
public $name;
/**
* @var class-string
* @readonly
*/
public $class;
/**
* @var bool
* @since 8.1
* @readonly
*/
public $isFinal;
2021-03-06 22:05:14 +01:00
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
2021-12-20 10:19:01 +01:00
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
2021-03-06 22:05:14 +01:00
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
/**
* @psalm-immutable
*/
class ReflectionParameter implements Reflector {
/**
* @var string
* @readonly
*/
public $name;
/**
* @psalm-assert-if-true ReflectionType $this->getType()
*/
public function hasType() : bool {}
public function getType() : ?ReflectionType {}
2022-02-24 01:50:05 +01:00
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
2022-10-17 01:33:26 +02:00
/**
* @since 8.0
*/
public function isPromoted(): bool {}
}
2021-10-14 00:09:52 +02:00
/**
* @psalm-immutable
*/
class ReflectionNamedType extends ReflectionType
{
public function getName(): string {}
2021-10-14 00:35:54 +02:00
/**
* @psalm-assert-if-false class-string|'self'|'static' $this->getName()
2021-10-14 00:35:54 +02:00
*/
2021-10-14 00:09:52 +02:00
public function isBuiltin(): bool {}
}