Remove redundant docblock tags

I was very excited about the feature to remove redundant docblock tags in 2023.2, but it isn't as smart as I had anticipated.

/**
* This is just some example I made up for the forum post.
*
* @param int $start
* @param int $count
* @return \DateTime[]
*/
function foo($start, int $count): array
{
return array_fill($start, $count, new \DateTime());
}

... becomes:

/**
* This is just some example I made up for the forum post.
*
* @param int $start
*/
function foo($start, int $count): array
{
return array_fill($start, $count, new \DateTime());
}

Is this a known limitation or something is broken in my setup?

 

0
5 comments

According to this comment, the Generate PHPDoc and Update PHPDoc actions are not yet affected by this change.
Please vote for WI-72892.

P.S. I do share the opinion that without WI-72892, the fix is not complete, to say the least.

0

I actually referred to the Remove all redundant PHPDoc tags quick fix mentioned in the first comment. It seems to be a simple check like "param has type, tag is not needed", it doesn't verify if the tag actually provides more information than the raw type.

In any case, I also tested it in home PC, running a different OS, and this is the way it is.

0

Oh. Sorry, I got it completely wrong.

I still don't understand the issue, though. $start doesn't have a type specified in the function signature, so int being specified only in the PHPDoc is the only place the type is stored - hence, we don't delete the tag.

What am I missing again?

0

@return \DateTime[] tells you the response array contains specific objects. If you remove it, it's just array. This is just a test snippet and PhpStorm can auto-detect the right type here anyway, but in my actual codebase it's an issue if you remove array types.

0

Okay, thank you for your patience. It took me much longer than it should have.
Extracted it as WI-73843.

0

Please sign in to leave a comment.