Команда PVS-Studio хочет поделиться новостью и заранее подогреть интерес. Мы приступили к разработке анализатора для C#. С точки зрения пользователя это будет всё тот же старый добрый PVS-Studio, но мы научим его находить ошибки в программах на языке C#.
На данный момент (сентябрь 2015) анализатор PVS-Studio официально поддерживает Visual Studio 2005-2015 и умеет анализировать программы, написанные на C, C++, C++/CLI, C++/CX (WinRT). Также утилита PVS-Studio Standalone позволяет проверять проекты, собираемые не только с помощью Visual C++, но и, например, с помощью MinGW. Есть эксперименты по запуску PVS-Studio на Linux. Однако Linux направление нам не интересно, так как в Linux мире трудно зарабатывать деньги на инструментах для разработчиков. Нашему сердцу ближе Windows, и мы решили порадовать C# разработчиков.
Мы не раз говорили, что код на языке C# менее подвержен ошибкам. В этом языке убраны или изменены многие конструкции, которые позволяют в С++ отстрелить себе ноги как банальными, так и экзотическими способами. Однако от опечаток, ляпов и невнимательности не застрахован никто.
Анализатор PVS-Studio славится своими диагностиками, позволяющими выявлять ошибки, связанные с опечатками, использованием Copy-Paste и так далее. Мы решили перенести свой опыт на C# и создать крайне полезный инструмент.
Сегодня мы услышали первый крик новорожденного. Мы адаптировали нашу любимую диагностику V501 для C#. На её счету много славных находок. И вот есть самый первый результат. Запустив PVS-Studio на проекте MSBuild, мы нашли в нём первую ошибку:
public int Compare(ITaskItem x, ITaskItem y)
{
if (x.ItemSpec != y.ItemSpec)
{
return -1;
}
if (x.CloneCustomMetadata().Count !=
x.CloneCustomMetadata().Count)
{
return -1;
}
....
}
if (x.CloneCustomMetadata().Count !=
y.CloneCustomMetadata().Count)
К сожалению, не доступен сервер mySQL