﻿# PVS\-Studio 7\.29: проверка Java\-кода в VS Code, умные указатели Boost, плагин для Qt Creator на macOS

Вышел новый релиз PVS\-Studio — 7\.29\. Теперь можно запускать анализ Java\-проектов через плагин для VS Code, проверять умные указатели Boost, использовать плагин PVS\-Studio для Qt Creator 12 на macOS, и это ещё не всё\! Больше подробностей в этой заметке\.

![1102_7_29_ru/image1.png](https://import.viva64.com/docx/blog/1102_7_29_ru/image1.png)


> Загрузить актуальную версию PVS\\\-Studio можно \[здесь\]\(https://pvs\-studio\.ru/ru/pvs\-studio/try\-free/\)\\\.



**Поддержка Java проектов в плагине для Visual Studio Code**

В плагине PVS\-Studio для Visual Studio Code появилась возможность анализа Java\-проектов\. Функционал включает в себя:

* запуск анализа и просмотр отчёта;
* подавление предупреждений с помощью suppress\-файлов;
* инкрементальный анализ;
* и другие функции, описанные в соответствующем разделе [документации](https://pvs-studio.ru/ru/docs/manual/6646/)\. 

![1102_7_29_ru/image2.png](https://import.viva64.com/docx/blog/1102_7_29_ru/image2.png)

**Поддержка умных указателей Boost**

Анализатор C\+\+ получил поддержку умных указателей из библиотеки Boost: _boost::unique\_ptr_ и _boost::shared\_ptr_\.

Теперь анализатор PVS\-Studio определяет ошибки наподобие разыменовывания нулевого указателя при использовании данных классов\.

**Учёт хэша строки для разметки ложноположительных срабатываний**

В новой версии PVS\-Studio появился режим учёта хэша строки исходного кода, вызвавшей срабатывание при разметке ложноположительных срабатываний\. 

В PVS\-Studio и до этого считался хэш, но он применялся для навигации и более эффективной работы suppress\-файлов\. Теперь появился новый способ применения хэша: его можно указать в строке при разметке ложноположительных срабатываний\. Это позволяет понять, менялась ли строка кода с момента отметки срабатывания как ложного\. В случае наличия изменений в коде, отметка ложноположительного срабатывания перестанет подавлять предупреждение анализатора\.

Пример строки, в которой указывается отметка ложноположительного срабатывания и хэш для отслеживания изменений:

```cpp
std::string(4, std::string().at(0)); //-V530 //-VH"920700501"
```

Поддержка этой функциональности появилась в плагинах PVS\-Studio для Microsoft Visual Studio\. Подробнее про новый режим можно узнать в [документации](https://pvs-studio.ru/ru/docs/manual/6630/)\.


> \*\*Примечание\\\.\*\* Если вам интересно поподробнее узнать о способах и технологиях подавления ложноположительных срабатываний, то можете ознакомиться с \[этой статьёй\]\(https://habr\.com/ru/articles/508094/\)\\\.



**Поддержка плагина для Qt Creator 12 на macOS**

Появилась поддержка плагина PVS\-Studio для Qt Creator 12 на операционных системах семейства macOS\.

Подробнее про использование плагина PVS\-Studio в Qt Creator можно узнать в [документации](https://pvs-studio.ru/ru/docs/manual/6648/)\.

**Новые диагностики**

C, С\+\+

* [V839](https://pvs-studio.ru/ru/docs/warnings/v839/)\. Decreased performance\. Function returns a constant value\. This may interfere with the move semantics\.
* [V1104](https://pvs-studio.ru/ru/docs/warnings/v1104/)\. Priority of the 'M' operator is higher than that of the 'N' operator\. Possible missing parentheses\.
* [V2625](https://pvs-studio.ru/ru/docs/warnings/v2625/)\. MISRA\. Identifier with external linkage should be unique\.

C\#

* [V3194](https://pvs-studio.ru/ru/docs/warnings/v3194/)\. Calling 'OfType' for collection will return an empty collection\. It is not possible to cast collection elements to the type parameter\.
* [V3195](https://pvs-studio.ru/ru/docs/warnings/v3195/)\. Collection initializer implicitly calls 'Add' method\. Using it on member with default value of null will result in null dereference exception\.

Java

* [V6108](https://pvs-studio.ru/ru/docs/warnings/v6108/)\. Do not use real\-type variables in 'for' loop counters\.
* [V6109](https://pvs-studio.ru/ru/docs/warnings/v6109/)\. Potentially predictable seed is used in pseudo\-random number generator\.

**С\+\+ квиз от PVS\-Studio и Сергея Кушниренко**

![1102_7_29_ru/image3.png](https://import.viva64.com/docx/blog/1102_7_29_ru/image3.png)

В этом релизе команда PVS\-Studio вместе с Сергеем Кушниренко подготовила С\+\+ квиз на основе ошибок, описанных в его статьях\. 

Попробуйте найти ошибки в коде и проверить свою внимательность и знание языка\! Квиз доступен по [ссылке](https://pvs-studio.ru/ru/blog/quest/kushnirenko_quiz/)\.

**Статьи**

Для тех, кто пишет на C\+\+

* [Предновогоднее шоу: Топ 10 ошибок в C и С\+\+ проектах в 2023 году](https://pvs-studio.ru/ru/blog/posts/cpp/1092/)
* [Следует ли проверять указатель на NULL перед вызовом функции free?](https://pvs-studio.ru/ru/blog/posts/cpp/1100/)
* [Qt Creator\* ищет ошибки в Qt Creator](https://pvs-studio.ru/ru/blog/posts/cpp/1099/)
* [От винта\! Смотрим движок War Thunder и говорим с его создателями](https://pvs-studio.ru/ru/blog/posts/cpp/1098/)
* [Квиз со звёздочкой для С\+\+ программистов от Сергея Кушниренко](https://pvs-studio.ru/ru/blog/posts/cpp/1093/)
* [Разбор С\+\+ квиза от Сергея Кушниренко](https://pvs-studio.ru/ru/blog/posts/cpp/1091/)

Для тех, кто пишет на C\#

* [Топ\-10 ошибок, найденных в C\#\-проектах за 2023 год](https://pvs-studio.ru/ru/blog/posts/csharp/1094/)
* [Ошибки и подозрительные места в исходниках \.NET 8](https://pvs-studio.ru/ru/blog/posts/csharp/1095/)

Для тех, кто пишет на Java

* [Расширение PVS\-Studio для Visual Studio Code: поиск ошибок в Java\-коде](https://pvs-studio.ru/ru/blog/posts/java/1101/)

Статьи общей тематики

* [PVS\-Studio в 2023](https://pvs-studio.ru/ru/blog/posts/1096/)
* [Внедрение SAST в процесс разработки](https://pvs-studio.ru/ru/blog/posts/1097/)


> Хотите проверить свой проект с помощью PVS\\\-Studio? Начните с \[этой страницы\]\(https://pvs\-studio\.ru/ru/pvs\-studio/try\-free/\)\\\.



Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS\-Studio по [ссылке](https://pvs-studio.ru/ru/subscribe/)\.