Невозможно реорганизовать/удалить метод

Надеюсь, это будет простой вопрос. :)

Я использую Pharo/Seaside. Я использовал возможность рефакторинга в IDE, чтобы переименовать и удалить несколько моих методов и классов. Все идет нормально.

Однако у меня возникают трудности с удалением метода, который переопределяет родительский класс. Например, у меня есть класс «MyClass», который является подклассом «WAComponent». Я создал метод «стиль», который переопределяет метод в родительском классе.

Я решил, что мне действительно не нужно переопределять «стиль», и я хочу использовать метод рефакторинга> Удалить «стиль». В этот момент я получаю следующую подсказку: «Возможный вызов стиля в WAPresenter. Просмотреть ссылки?»

Как мне поступить? Мне просто нужен метод "стиля" супера, а не мое собственное переопределение.

Большое спасибо!


person Justin    schedule 07.12.2011    source источник
comment
Вы пробовали удалить свой метод?   -  person Marcin    schedule 07.12.2011
comment
если refactor › remove совпадает с удалением, то да, я пробовал, как я описал в своем вопросе   -  person Justin    schedule 07.12.2011


Ответы (1)


Когда вы пытаетесь удалить метод; либо с браузером рефакторинга, OmniBrowser, либо со стандартным браузером; система предупредит вас, если на изображении есть отправители этого сообщения. Это дает вам возможность увидеть возможные последствия удаления. Это не идеально, потому что а) в динамической системе нельзя быть уверенным, что получатель является экземпляром вашего класса, и б) он не перехватывает отправителей с помощью #perform:

В вашем случае сообщение кажется немного запутанным. Так же в Pharo 1.3 похоже не удаляется метод независимо от того, что вы выбираете! Но нет ничего плохого в том, чтобы просто удалить его прямо через ваш браузер (Cmd-x в OmniBrowser на Mac или через меню), потому что любые вызовы этого метода будут отправлены в суперкласс.

person Sean DeNigris    schedule 07.12.2011