Running phan (0.12.5) on some extensions I see often:
<error line="" severity="info" message="Call with 2 arg(s) to \IContextSource::msg() which only takes 1 arg(s) defined at ../languages\MessageLocalizer.php:41" source="PhanParamTooMany"/>
I have never seen this for wfMessage and both are defined the same for the second param (@param mixed $params,...). Maybe phan sees the func_get_args and is happy, but that does not possible on interface declaration.
https://gerrit.wikimedia.org/g/mediawiki/core/+/master/languages/MessageLocalizer.php#28
https://gerrit.wikimedia.org/g/mediawiki/core/+/master/includes/GlobalFunctions.php#1412
I have no idea how to fix this for phan. Maybe this is a upstrem issue?.
Doing things only for a static analyzer is not nice, but the tool is helpful to find other mistakes.
Maybe it needs an own Plugin to declare the varargs on runtime inside phan