1C-Company / v8-code-style

Расширение для 1C:EDT, которое помогает разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".
Eclipse Public License 2.0
175 stars 53 forks source link

Ложное срабатывание проверки: invocation-parameter-type-intersect для пропущенного необязательного параметра #1357

Open adminimusRU opened 1 year ago

adminimusRU commented 1 year ago

Название/код проверки

Код проверки: invocation-parameter-type-intersect

Версия плагина: 0.5.0.128

Пример кода/метаданных содержащих ошибку

// @strict-types

// Параметры:
//  Парам1 - Строка
//  Парам2 - Число
//  Парам3 - Булево
//  Парам4 - Число
Процедура ТестоваяПроцедура(Парам1, Парам2, Парам3 = Ложь, Парам4 = Неопределено)

КонецПроцедуры

Процедура Процедура1()

    Парам1 = "123";
    Парам2 = 456;
    Парам3 = Истина;
    Парам4 = 789;

    ТестоваяПроцедура(Парам1, Парам2);
    ТестоваяПроцедура(Парам1, Парам2, Парам3);
    ТестоваяПроцедура(Парам1, Парам2,, Парам4);
    ТестоваяПроцедура(Парам1, Парам2, Парам3, Парам4);

КонецПроцедуры

image

Почему это НЕ ошибка

Пропущенный необязательный параметр будет инициализирован с типом выражения, указанного в определении метода - в данном случае булево, что совпадает типом параметра в документирующем комментарии. А проверка видимо считает, что там Неопределено.

marmyshev commented 1 year ago

Да, надо доработать проверку.