File tree Expand file tree Collapse file tree 4 files changed +57
-5
lines changed
Expand file tree Collapse file tree 4 files changed +57
-5
lines changed Original file line number Diff line number Diff line change 11Описание.Имя("lambdas")
2- .Версия("0.2.3 ")
2+ .Версия("0.3.0 ")
33 .Автор("Кирилл Черненко")
44 .АдресАвтора("https://github.com/sfaqer")
55 .Описание("API для реализации функциональных интерфейсов для OneScript")
99 .ВключитьФайл("LICENSE.md")
1010 .ВключитьФайл("package-loader.os")
1111 .ЗависитОт("reflector", "0.7.1")
12- .ЗависитОт("decorator", "1.7.1 ")
12+ .ЗависитОт("decorator", "2.0.0 ")
1313 .РазработкаЗависитОт("1testrunner")
1414 .РазработкаЗависитОт("coverage")
1515 .РазработкаЗависитОт("asserts")
Original file line number Diff line number Diff line change 66 Если ЭтоЛямбдаВыражение = Неопределено Тогда
77
88 ЭтоЛямбдаВыражение = Новый РегулярноеВыражение(
9- "(.*)->\s*\{?([^\}]+)\}? "
9+ "(.*)->\s*([\s\S]*) "
1010 );
1111
1212 КонецЕсли ;
Original file line number Diff line number Diff line change 190190
191191 Построитель = Новый ПостроительДекоратора(мОбъект)
192192 .Отладка(Отладка)
193- .Метод(Метод);
193+ .Поле(Новый Поле("Выражение" ).ЗначениеПоУмолчанию(мВыражение))
194+ .Метод(Метод)
195+ .Метод(
196+ Новый Метод("ОбработкаПолученияПредставления" )
197+ .ЭтоПроцедура()
198+ .Параметр(Новый ПараметрМетода("Представление" ))
199+ .Параметр(Новый ПараметрМетода("СтандартнаяОбработка" ))
200+ .ТелоМетода("СтандартнаяОбработка = Ложь; Представление = Выражение;" )
201+ );
194202
195203 Для каждого ПеременнаяИЗначение Из мКонтекст Цикл
196204
224232 РазобранноеВыражение.Параметры = РезультатРазбора.Параметры;
225233 РазобранноеВыражение.Аннотации = РезультатРазбора.Аннотации;
226234
227- РазобранноеВыражение.Тело = Совпадения[0 ].Группы[2 ].Значение;
235+ Тело = Совпадения[0 ].Группы[2 ].Значение;
236+
237+ Если СтрНачинаетсяС (Тело, "{" ) Тогда
238+ Тело = Прав (Тело, СтрДлина (Тело) - 1 );
239+ КонецЕсли ;
240+
241+ Если СтрЗаканчиваетсяНа (Тело, "}" ) Тогда
242+ Тело = Лев (Тело, СтрДлина (Тело) - 1 );
243+ КонецЕсли ;
244+
245+ РазобранноеВыражение.Тело = Тело;
228246
229247КонецПроцедуры
230248
Original file line number Diff line number Diff line change 537537
538538КонецПроцедуры
539539
540+ &Тест
541+ Процедура ФигурнаяСкобкаВнутриВыраженияНеЛомаетЛямбду () Экспорт
542+
543+ // Дано
544+
545+ ЛямбдаВыражение = Новый ЛямбдаВыражение("х -> Возврат "" {"" + х + "" }"" }" );
546+
547+ // Когда
548+
549+ Результат = ЛямбдаВыражение.ВОбъект().Применить("1" );
550+
551+ // Тогда
552+
553+ Ожидаем.Что(Результат).Равно("{1}" );
554+
555+ КонецПроцедуры
556+
557+ &Тест
558+ Процедура ПредставлениеПереопределяется () Экспорт
559+
560+ // Дано
561+
562+ ЛямбдаВыражение = Новый ЛямбдаВыражение("х -> х = х + 1" );
563+
564+ // Когда
565+
566+ Результат = Строка (ЛямбдаВыражение.ВОбъект());
567+
568+ // Тогда
569+
570+ Ожидаем.Что(Результат).Равно("х -> х = х + 1" );
571+
572+ КонецПроцедуры
573+
540574Функция ЗахватываемыйОбъект ()
541575
542576 Возврат Новый ПостроительДекоратора()
You can’t perform that action at this time.
0 commit comments