bsl-language-server
bsl-language-server copied to clipboard
[FP] AllFunctionPathMustHaveReturn
Диагностика
Версия
0.19.0-rc1
Описание ложного срабатывания диагностики
Агрится на код, хотя директивы препроцессора покрывают все ветки выполнения
Пример кода
Функция Тест()
#Если Не ВебКлиент Тогда
Массив = Новый Массив;
Если Условие Тогда
Возврат Массив;
КонецЕсли;
Возврат ПустойМассив;
#Иначе
ВызватьИсключение "Упс";
#КонецЕсли
КонецФункции
Скриншоты
Дополнительная информация
Не воспроизводится. @EightM что пишет, когда агрится?
@EvilBeaver При запуске теста из bsl ls, где есть только одна функция выше
[Diagnostic [
range = Range [
start = Position [
line = 0
character = 8
]
end = Position [
line = 0
character = 12
]
]
severity = Warning
code = Either [
left = AllFunctionPathMustHaveReturn
right = null
]
codeDescription = DiagnosticCodeDescription [
href = "https://1c-syntax.github.io/bsl-language-server/diagnostics/AllFunctionPathMustHaveReturn"
]
source = "bsl-language-server"
message = "Не все пути выполнения функции возвращают значение"
tags = ArrayList ()
relatedInformation = ArrayList (
DiagnosticRelatedInformation [
location = Location [
uri = "file:///C:/fake-uri.bsl"
range = Range [
start = Position [
line = 0
character = 8
]
end = Position [
line = 0
character = 12
]
]
]
message = "Не все пути выполнения функции возвращают значение"
],
DiagnosticRelatedInformation [
location = Location [
uri = "file:///C:/fake-uri.bsl"
range = Range [
start = Position [
line = 2
character = 4
]
end = Position [
line = 2
character = 25
]
]
]
message = "Не все пути выполнения функции возвращают значение"
]
)
data = null
]]
Вот тест с этим кодом: https://github.com/EvilBeaver/bsl-language-server/commit/8ab5fe2bbc3ce8bf13ea5126e903fa9b2adbe2f0#diff-2a7f371587db01893f07f2f9bbd9ca8279642dcde008e7ea8c60f8ae13eb3f9cR105
Список диагностик пустой. Не очень понял, что значит "При запуске теста из bsl ls, где есть только одна функция выше"
@EvilBeaver
У тебя пропущена решетка в Если Не ВебКлиент Тогда\n
Воспроизвелось, спасибо!
@EightM можешь проверить на 0.19.0-rc.2?
@nixel2007 Проверил. Починилось
благодарю
Давайте переоткроем. Это добавлено в тесты, но де-факто же не исправлено, просто поддержка препроцессора отключена. Перенсем в другой майлстоун