Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 21.11.2015 09:54 / 21.11.2015 10:02
#!./parser3 @main[] $t[^test::create[]] ^print[value 2] ^t.print[value 1] ^t.greeting[] @print[str] main: $str @CLASS test @create[] @greeting[] $result[^print[Hello, world!]] @print[str] test: $strРезультат:
main: value 2 test: value 1 main: Hello, world!Ожидали:
main: value 2 test: value 1 test: Hello, world!Проверил на 3.4.3 и 3.4.4RC — результат одинаковый. Кажется, что такой приоритет вызова неправильный и приводит к очень неприятным ошибкам. Сначала надо искать метод в классе, а потом уже звать оператор, иначе все вызовы метод в классе надо переписывать через ^self.method[].