strict-types: Рассчитанный тип возвращаемого значения отличается от декларированного в документирующем комментарии (Новая проверка)
Описание проблемы

На текущий момент система не контролирует что тип фактически возвращаемого значения не соответствует типу возвращаемого значения из документирующего комментария
Описание решения проблемы
Хотелось бы чтобы система проверяла рассчитываемый тип возвращаемого значения и сверяла его с тем что обозначен в типе возвращаемого значения в документирующем комментарии
Дополнительная информация
// Данные.
//
// Возвращаемое значение:
// Массив из Строка, Число - Данные
Функция Данные() Экспорт
Результат = Новый Массив(); // Массив Из Строка, Число - Тест
Результат.Добавить(1);
Результат.Добавить("Один");
Результат.Добавить('00010101');
Результат.Добавить(ПредопределенноеЗначение("Справочник.Справочник.ПустаяСсылка"));
Возврат Результат;
КонецФункции
Проверка на возвращаемое значение уже есть, но отключена пока (из-за технических проблем)
https://github.com/1C-Company/v8-code-style/blob/master/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/FunctionCtorReturnSectionCheck.java
Нужно дорабатывать тут при добавлении в массив #952 :
// Возвращаемое значение:
// Массив из Строка, Число - Данные
Функция Данные() Экспорт
Результат = Новый Массив(); // Массив Из Строка, Число - Тест
// Тут надо валидировать метод Добавить() что пытаемся передать в массив не тот тип
Результат.Добавить(ПредопределенноеЗначение("Справочник.Справочник.ПустаяСсылка"));
Возврат Результат;
КонецФункции
Теперь после #952 контроль осуществляется при добавлении в коллекцию.
Так же включена проверка - контроллирующая декларативные свойства типа с тем что по факту - но проверяется ограниченный список типов.
Закрываем? т.к. всё реализовано, если что-то упустил - предлагаю выделить и тут явно написать.
@marmyshev а это уже в добавлено в ЕДТ? Я сейчас перепроверил но немного не понял что конкретно изменилось. Суть этого тикета в том что бы проверить тип возвращаемого значения метода и тип описанного возвращаемого значения метода

В данном случае мы возвращаем массив в котором лежит Число, Строка, Дата, хотя согласно док комментарию должны вернуть массив в котором лежит Число, Строка

@sfaqer Ну вот теперь ты написал новый пример, по смыслу отличающийся от первого :)
Что есть сейчас:
- Проверяются наличие свойств для Структуры, Таблиц и Деревьев значений (это то что было раньше отключено, к релизу 2021.3 включено) если описаны в возвращаемом значение - проверяется каждый возврат что свойства с указанными типами есть.
- Сделана проверка добавления в типизированную коллекцию в #952
Чего нет, согласно новому примеру:
- нет контроля типов элементов коллекций - нужно делать, но нужно придумать что делать с Соответствием, СпискомЗначений и другими коллекциями, которые невозможно записать в строку при инициализации переменной в строке.
- Нет контроля любых произвольных совпадений типов возвращаемых значений - тут возможно, следует сделать отдельную проверку - т.к. ситуаций перехода от нетипизированного кода (или слабо-типизированного) к типизированному через описание более обширных док.комментов - будет много в конфигурации, что не хочется заставлять людей писать
@skip-checkпостоянно. Тут есть идеи как сократить лишнюю работу?