mirror of
https://github.com/danog/psalm.git
synced 2025-01-22 05:41:20 +01:00
Remove redundant code from toNamespacedString
This commit is contained in:
parent
8968488fe4
commit
01f4e39719
@ -1006,6 +1006,38 @@ abstract class Type
|
|||||||
return ($namespace ? $namespace . '\\' : '') . $class;
|
return ($namespace ? $namespace . '\\' : '') . $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string, string> $aliased_classes
|
||||||
|
*/
|
||||||
|
public static function getStringFromFQCLN(
|
||||||
|
string $value,
|
||||||
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class
|
||||||
|
) : string {
|
||||||
|
if ($value === $this_class) {
|
||||||
|
return 'self';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($namespace && stripos($value, $namespace . '\\') === 0) {
|
||||||
|
return preg_replace(
|
||||||
|
'/^' . preg_quote($namespace . '\\') . '/i',
|
||||||
|
'',
|
||||||
|
$value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$namespace && stripos($value, '\\') === false) {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($aliased_classes[strtolower($value)])) {
|
||||||
|
return $aliased_classes[strtolower($value)];
|
||||||
|
}
|
||||||
|
|
||||||
|
return '\\' . $value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param bool $from_calculation
|
* @param bool $from_calculation
|
||||||
* @param int|null $value
|
* @param int|null $value
|
||||||
|
@ -742,21 +742,22 @@ abstract class Atomic
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param array<string, string> $aliased_classes
|
||||||
* @param array<string> $aliased_classes
|
|
||||||
* @param string|null $this_class
|
|
||||||
* @param bool $use_phpdoc_format
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return $this->getKey();
|
return $this->getKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param int $php_major_version
|
* @param int $php_major_version
|
||||||
* @param int $php_minor_version
|
* @param int $php_minor_version
|
||||||
|
@ -45,15 +45,16 @@ trait CallableTrait
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param array<string, string> $aliased_classes
|
||||||
* @param array<string> $aliased_classes
|
|
||||||
* @param string|null $this_class
|
|
||||||
* @param bool $use_phpdoc_format
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($use_phpdoc_format) {
|
if ($use_phpdoc_format) {
|
||||||
if ($this instanceof TNamedObject) {
|
if ($this instanceof TNamedObject) {
|
||||||
return parent::toNamespacedString($namespace, $aliased_classes, $this_class, true);
|
return parent::toNamespacedString($namespace, $aliased_classes, $this_class, true);
|
||||||
@ -112,7 +113,7 @@ trait CallableTrait
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param int $php_major_version
|
* @param int $php_major_version
|
||||||
* @param int $php_minor_version
|
* @param int $php_minor_version
|
||||||
|
@ -49,15 +49,16 @@ trait GenericTrait
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param array<string, string> $aliased_classes
|
||||||
* @param array<string> $aliased_classes
|
|
||||||
* @param string|null $this_class
|
|
||||||
* @param bool $use_phpdoc_format
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
$base_value = $this instanceof TNamedObject
|
$base_value = $this instanceof TNamedObject
|
||||||
? parent::toNamespacedString($namespace, $aliased_classes, $this_class, $use_phpdoc_format)
|
? parent::toNamespacedString($namespace, $aliased_classes, $this_class, $use_phpdoc_format)
|
||||||
: $this->value;
|
: $this->value;
|
||||||
|
@ -13,15 +13,16 @@ trait HasIntersectionTrait
|
|||||||
public $extra_types;
|
public $extra_types;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param array<string, string> $aliased_classes
|
||||||
* @param array<string> $aliased_classes
|
|
||||||
* @param string|null $this_class
|
|
||||||
* @param bool $use_phpdoc_format
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function getNamespacedIntersectionTypes($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
private function getNamespacedIntersectionTypes(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if (!$this->extra_types) {
|
if (!$this->extra_types) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
@ -95,15 +95,16 @@ class ObjectLike extends \Psalm\Type\Atomic
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param array<string, string> $aliased_classes
|
||||||
* @param array<string> $aliased_classes
|
|
||||||
* @param string|null $this_class
|
|
||||||
* @param bool $use_phpdoc_format
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($use_phpdoc_format) {
|
if ($use_phpdoc_format) {
|
||||||
return $this->getGenericArrayType()->toNamespacedString(
|
return $this->getGenericArrayType()->toNamespacedString(
|
||||||
$namespace,
|
$namespace,
|
||||||
|
@ -67,8 +67,12 @@ class TClassString extends TString implements HasClassString
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($this->as === 'object') {
|
if ($this->as === 'object') {
|
||||||
return 'class-string';
|
return 'class-string';
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ class TGenericObject extends TNamedObject
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param int $php_major_version
|
* @param int $php_major_version
|
||||||
* @param int $php_minor_version
|
* @param int $php_minor_version
|
||||||
|
@ -75,8 +75,12 @@ class TKeyOfClassConstant extends Scalar
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($this->fq_classlike_name === 'static') {
|
if ($this->fq_classlike_name === 'static') {
|
||||||
return 'key-of<static::' . $this->const_name . '>';
|
return 'key-of<static::' . $this->const_name . '>';
|
||||||
}
|
}
|
||||||
|
@ -75,8 +75,12 @@ class TLiteralClassString extends TLiteralString
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($this->value === 'static') {
|
if ($this->value === 'static') {
|
||||||
return 'static::class';
|
return 'static::class';
|
||||||
}
|
}
|
||||||
|
@ -57,8 +57,12 @@ class TLiteralFloat extends TFloat
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return 'float';
|
return 'float';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,8 +57,12 @@ class TLiteralInt extends TInt
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return 'int';
|
return 'int';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,8 +69,12 @@ class TLiteralString extends TString
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return 'string';
|
return 'string';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,14 +51,22 @@ class TNamedObject extends Atomic
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param bool $use_phpdoc_format
|
* @param bool $use_phpdoc_format
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
|
if ($this->value === 'static') {
|
||||||
|
return 'static';
|
||||||
|
}
|
||||||
|
|
||||||
$intersection_types = $this->getNamespacedIntersectionTypes(
|
$intersection_types = $this->getNamespacedIntersectionTypes(
|
||||||
$namespace,
|
$namespace,
|
||||||
$aliased_classes,
|
$aliased_classes,
|
||||||
@ -66,36 +74,12 @@ class TNamedObject extends Atomic
|
|||||||
$use_phpdoc_format
|
$use_phpdoc_format
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($this->value === 'static') {
|
return Type::getStringFromFQCLN($this->value, $namespace, $aliased_classes, $this_class) . $intersection_types;
|
||||||
return 'static';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->value === $this_class) {
|
|
||||||
return 'self' . $intersection_types;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($namespace && stripos($this->value, $namespace . '\\') === 0) {
|
|
||||||
return preg_replace(
|
|
||||||
'/^' . preg_quote($namespace . '\\') . '/i',
|
|
||||||
'',
|
|
||||||
$this->value
|
|
||||||
) . $intersection_types;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$namespace && stripos($this->value, '\\') === false) {
|
|
||||||
return $this->value . $intersection_types;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($aliased_classes[strtolower($this->value)])) {
|
|
||||||
return $aliased_classes[strtolower($this->value)] . $intersection_types;
|
|
||||||
}
|
|
||||||
|
|
||||||
return '\\' . $this->value . $intersection_types;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param int $php_major_version
|
* @param int $php_major_version
|
||||||
* @param int $php_minor_version
|
* @param int $php_minor_version
|
||||||
|
@ -67,14 +67,18 @@ class TObjectWithProperties extends TObject
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param bool $use_phpdoc_format
|
* @param bool $use_phpdoc_format
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($use_phpdoc_format) {
|
if ($use_phpdoc_format) {
|
||||||
return 'object';
|
return 'object';
|
||||||
}
|
}
|
||||||
|
@ -69,39 +69,25 @@ class TScalarClassConstant extends Scalar
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param bool $use_phpdoc_format
|
* @param bool $use_phpdoc_format
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($this->fq_classlike_name === 'static') {
|
if ($this->fq_classlike_name === 'static') {
|
||||||
return 'static::' . $this->const_name;
|
return 'static::' . $this->const_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->fq_classlike_name === $this_class) {
|
return \Psalm\Type::getStringFromFQCLN($this->fq_classlike_name, $namespace, $aliased_classes, $this_class)
|
||||||
return 'self::' . $this->const_name;
|
. '::'
|
||||||
}
|
. $this->const_name;
|
||||||
|
|
||||||
if ($namespace && stripos($this->fq_classlike_name, $namespace . '\\') === 0) {
|
|
||||||
return preg_replace(
|
|
||||||
'/^' . preg_quote($namespace . '\\') . '/i',
|
|
||||||
'',
|
|
||||||
$this->fq_classlike_name
|
|
||||||
) . '::' . $this->const_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$namespace && stripos($this->fq_classlike_name, '\\') === false) {
|
|
||||||
return $this->fq_classlike_name . '::' . $this->const_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($aliased_classes[strtolower($this->fq_classlike_name)])) {
|
|
||||||
return $aliased_classes[strtolower($this->fq_classlike_name)] . '::' . $this->const_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
return '\\' . $this->fq_classlike_name . '::' . $this->const_name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,8 +84,12 @@ class TTemplateIndexedAccess extends \Psalm\Type\Atomic
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return $this->getKey();
|
return $this->getKey();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,8 +80,12 @@ class TTemplateKeyOf extends TArrayKey
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return 'key-of<' . $this->param_name . '>';
|
return 'key-of<' . $this->param_name . '>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,14 +90,18 @@ class TTemplateParam extends \Psalm\Type\Atomic
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param bool $use_phpdoc_format
|
* @param bool $use_phpdoc_format
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
$intersection_types = $this->getNamespacedIntersectionTypes(
|
$intersection_types = $this->getNamespacedIntersectionTypes(
|
||||||
$namespace,
|
$namespace,
|
||||||
$aliased_classes,
|
$aliased_classes,
|
||||||
|
@ -94,8 +94,12 @@ class TTemplateParamClass extends TClassString
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return $this->param_name . '::class';
|
return $this->param_name . '::class';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,8 +51,12 @@ class TTraitString extends TString
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
return 'trait-string';
|
return 'trait-string';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,43 +69,25 @@ class TValueOfClassConstant extends \Psalm\Type\Atomic
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param bool $use_phpdoc_format
|
* @param bool $use_phpdoc_format
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
if ($this->fq_classlike_name === 'static') {
|
if ($this->fq_classlike_name === 'static') {
|
||||||
return 'value-of<static::' . $this->const_name . '>';
|
return 'value-of<static::' . $this->const_name . '>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->fq_classlike_name === $this_class) {
|
return 'value-of<'
|
||||||
return 'value-of<self::' . $this->const_name . '>';
|
. \Psalm\Type::getStringFromFQCLN($this->fq_classlike_name, $namespace, $aliased_classes, $this_class)
|
||||||
}
|
. '>::' . $this->const_name . '>';
|
||||||
|
|
||||||
if ($namespace && stripos($this->fq_classlike_name, $namespace . '\\') === 0) {
|
|
||||||
return 'value-of<' . preg_replace(
|
|
||||||
'/^' . preg_quote($namespace . '\\') . '/i',
|
|
||||||
'',
|
|
||||||
$this->fq_classlike_name
|
|
||||||
) . '::' . $this->const_name . '>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$namespace && stripos($this->fq_classlike_name, '\\') === false) {
|
|
||||||
return 'value-of<' . $this->fq_classlike_name . '::' . $this->const_name . '>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($aliased_classes[strtolower($this->fq_classlike_name)])) {
|
|
||||||
return 'value-of<'
|
|
||||||
. $aliased_classes[strtolower($this->fq_classlike_name)]
|
|
||||||
. '::'
|
|
||||||
. $this->const_name
|
|
||||||
. '>';
|
|
||||||
}
|
|
||||||
|
|
||||||
return 'value-of<\\' . $this->fq_classlike_name . '::' . $this->const_name . '>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -347,15 +347,16 @@ class Union
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param array<string, string> $aliased_classes
|
||||||
* @param array<string> $aliased_classes
|
|
||||||
* @param string|null $this_class
|
|
||||||
* @param bool $use_phpdoc_format
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function toNamespacedString($namespace, array $aliased_classes, $this_class, $use_phpdoc_format)
|
public function toNamespacedString(
|
||||||
{
|
?string $namespace,
|
||||||
|
array $aliased_classes,
|
||||||
|
?string $this_class,
|
||||||
|
bool $use_phpdoc_format
|
||||||
|
) {
|
||||||
$printed_int = false;
|
$printed_int = false;
|
||||||
$printed_float = false;
|
$printed_float = false;
|
||||||
$printed_string = false;
|
$printed_string = false;
|
||||||
@ -391,7 +392,7 @@ class Union
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $namespace
|
* @param string|null $namespace
|
||||||
* @param array<string> $aliased_classes
|
* @param array<string, string> $aliased_classes
|
||||||
* @param string|null $this_class
|
* @param string|null $this_class
|
||||||
* @param int $php_major_version
|
* @param int $php_major_version
|
||||||
* @param int $php_minor_version
|
* @param int $php_minor_version
|
||||||
|
Loading…
x
Reference in New Issue
Block a user