#metaprogramming #pharo
#метапрограммирование #pharo
Вопрос:
Я борюсь с объектом message #subclass:переменные экземпляра:classVariableNames:poolDictionaries:category, чтобы манипулировать подклассами определенного класса. У меня есть редкий класс с методом класса #подкласс: coposes…и т.д. И хотите сделать:
RareClass
subclass: #RareSubclass
composes: #SomeMagic
instanceVariableNames: ''
classVariableNames: ''
в браузере.
должен ли этот метод возвращать класс (и я думаю, что это так), он вообще не работает, я получаю ошибки синтаксического анализа при попытке «сохранить»…
Ответ №1:
Я предполагаю, что вы используете OmniBrowser с загруженным механизмом рефакторинга?
Механизм рефакторинга применяет стандартные шаблоны классов, чтобы разрешить отмену любого действия, выполняемого в браузере. Очевидно, что это не может работать с определениями пользовательских классов.
В качестве обходного пути вы можете выполнить одно из следующих действий:
- Используйте традиционный браузер, который не имеет функции отмены (оценить
Browser open
), - Избавьтесь от функциональности рефакторинга в OmniBrowser, выгрузив пакет «OB-Reactory», или
- Обновите код в
RBAddClassChange
, чтобы поддерживать ваш вариант использования.