*/ public $params = []; /** * @var array */ public $param_types = []; /** * @var array */ public $param_out_types = []; /** * @var Type\Union|null */ public $return_type; /** * @var CodeLocation|null */ public $return_type_location; /** * @var Type\Union|null */ public $signature_return_type; /** * @var CodeLocation|null */ public $signature_return_type_location; /** * @var string */ public $cased_name; /** * @var array */ public $suppressed_issues = []; /** * @var bool */ public $deprecated; /** * @var bool */ public $internal; /** * @var null|string */ public $psalm_internal; /** * @var bool */ public $variadic; /** * @var bool */ public $returns_by_ref = false; /** * @var int */ public $required_param_count; /** * @var array */ public $defined_constants = []; /** * @var array */ public $global_variables = []; /** * @var array */ public $global_types = []; /** * @var array>|null */ public $template_types; /** * @var array|null */ public $template_covariants; /** * @var bool */ public $has_template_return_type; /** * @var array */ public $assertions = []; /** * @var array */ public $if_true_assertions = []; /** * @var array */ public $if_false_assertions = []; /** * @var bool */ public $has_visitor_issues = false; /** * @var bool */ public $has_docblock_issues = false; /** * @var array */ public $throws = []; /** * @var bool */ public $has_yield = false; /** * @var string|null */ public $return_type_description; /** * @var array|null */ public $unused_docblock_params; public function __toString() { $symbol_text = 'function ' . $this->cased_name . '(' . (!empty($this->params) ? PHP_EOL : '') . implode( ',' . PHP_EOL, array_map( function (FunctionLikeParameter $param) : string { return ' ' . ($param->type ?: 'mixed') . ' $' . $param->name; }, $this->params ) ) . (!empty($this->params) ? PHP_EOL : '') . ') : ' . ($this->return_type ?: 'mixed'); if (!$this instanceof MethodStorage) { return $symbol_text; } switch ($this->visibility) { case ClassLikeAnalyzer::VISIBILITY_PRIVATE: $visibility_text = 'private'; break; case ClassLikeAnalyzer::VISIBILITY_PROTECTED: $visibility_text = 'protected'; break; default: $visibility_text = 'public'; } return $visibility_text . ' ' . $symbol_text; } }