在 Pharo 中获取所有已安装方法的正确方法

Proper way to get all installed methods in Pharo

有时你想分析图像中的所有方法。一种方法是使用 CompiledMethod allInstances。但是这样做很危险,因为

  1. 您最终可能会使用尚未进行垃圾回收的旧方法。
  2. 由于技术原因,可能存在匿名 类 或其他实例的编译方法。

我想到的一件事是:

RPackage organizer packages flatCollect: #methods 

独立于方言的表达方式是

ProtoObject withAllSubclasses gather: [:cls |
  cls methodDictionary values asArray,
    cls class methodDictionary values asArray]

我建议使用 SystemNavigation,这是为此设计的 class:

SystemNavigation default allMethodsSelect: [:m | true]