Правильный способ получить все установленные методы в Pharo
Иногда вы хотите проанализировать все методы в изображении. Один из способов сделать это - работать с CompiledMethod allInstances
, Но так опасно делать, так как
- Вы можете использовать старые методы, которые еще не были собраны.
- Могут быть скомпилированные методы анонимных классов или других экземпляров, которые существуют по техническим причинам.
3 ответа
Решение
Я придумал одну вещь:
RPackage organizer packages flatCollect: #methods
Независимое от диалекта выражение будет
ProtoObject withAllSubclasses gather: [:cls |
cls methodDictionary values asArray,
cls class methodDictionary values asArray]
Я бы предложил использовать SystemNavigation
какой класс предназначен для этого:
SystemNavigation default allMethodsSelect: [:m | true]