Найти методы с возвращаемым типом String

Я пытаюсь создать запрос, чтобы получить все методы с определенным типом возврата. Глядя на определения FAMIXMethod а также FAMIXBehavioralEntity Я думаю, что Объявленный тип: правильный метод для этого запроса на FAMIXMethodGroup,

Я пытался использовать запрос:

self select: [ :each | each declaredType: String ]

Но это останавливается с

ошибка: "MessageNotUnderstood"

1 ответ

declaredType: является установщиком, поэтому вы пытаетесь изменить обьявленный тип, который, как ожидается, будет FAMIXType, Таким образом Сообщение не понято.

Возможный подход состоит в том, чтобы получить объявляемый тип (который является (под) экземпляром FAMIXType) и попросить smalltalkClass, Обратите внимание, что Заявленный тип может не существовать.

self select: [ :each |
    each hasDeclaredType and: [
        each declaredType smalltalkClass isKindOf: String class ] ].

Может быть, с Moose Query можно разработать более простой подход, но я не знаком с этим.

Другие вопросы по тегам