Пожалуйста, прочитайте сначала @ JamesFoster's answer.
Должно быть относительно легко добавить поддержку для запрета super
.Так как super
не всегда допустим или, по крайней мере, не должно быть, когда суперкласс равен nil
(например, ProtoObject
), компилятор должен где-то проверить это условие, прежде чем разрешить super
в качестве допустимой псевдопеременной.,Тогда нужно было бы настроить эту проверку, спросив класс, поддерживает ли он super
или нет (а не является ли его суперкласс nil
).
Я пробовал в Pharo и нетпроверить на всех (это означает, что вы можете отправить на super
в ProtoObject
).Таким образом, модификация компилятора Pharo может быть немного сложнее.