Skip to content

Commit 985c65d

Browse files
authored
Merge pull request #1484 from Mr-Rm/v2/fix-1481
fix #1481: исправлено Вычислить() с именами параметров процедуры +тест
2 parents 71ccd4f + 2d19904 commit 985c65d

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/OneScript.Core/Contexts/Variable.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,11 @@ public static IVariable Create(IValue val, string symbol)
3232

3333
public static IVariable CreateReference(IVariable variable, string refName)
3434
{
35-
if (variable is VariableReference vref)
35+
if (variable is VariableReference vref && vref._reference is IndexedValueReference iv)
3636
{
37-
if (vref._reference is IndexedValueReference iv)
38-
{
39-
_ = iv.Value;
40-
}
41-
42-
return variable;
37+
_ = iv.Value; // проверить правильность индекса
4338
}
39+
4440
return new VariableReference(variable, refName);
4541
}
4642

tests/eval.os

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
ВсеТесты.Добавить("ТестДолжен_ПроверитьВложенныеВызовыВыполнить");
2626
ВсеТесты.Добавить("ТестДолжен_ПроверитьВызовыВыполнитьСПопытками");
2727
ВсеТесты.Добавить("ТестДолжен_ПроверитьРаботоспособностьВПодключенныхСценариях");
28+
ВсеТесты.Добавить("ТестДолжен_ПроверитьРаботоспособностьСПараметрамиПроцедуры");
2829

2930
Возврат ВсеТесты;
3031
КонецФункции
@@ -341,3 +342,16 @@
341342
А.Тест();
342343

343344
КонецПроцедуры
345+
346+
Процедура РаботаСПараметрамиПроцедуры(Элемент1, Элемент2)
347+
Рез = "";
348+
Для Сч = 1 По 2 Цикл
349+
Рез = Рез + Вычислить("Элемент" + Сч);
350+
КонецЦикла;
351+
юТест.ПроверитьРавенство("Поле1Поле2", Рез);
352+
КонецПроцедуры
353+
354+
Процедура ТестДолжен_ПроверитьРаботоспособностьСПараметрамиПроцедуры() Экспорт
355+
Структура=Новый Структура("Поле1,Поле2","Поле1","Поле2");
356+
РаботаСПараметрамиПроцедуры(Структура.Поле1, Структура.Поле2);
357+
КонецПроцедуры

0 commit comments

Comments
 (0)