Уникальные постоянные атрибуты теперь устарели.Новый типобезопасный механизм находится в стадии разработки.Между тем, ближайшая альтернатива - использование константных атрибутов:
red: INTEGER = 1
green: INTEGER = 2
blue: INTEGER = 3
foo: INTEGER = 4
bar: INTEGER = 5
Конечно, можно также разработать безопасный для типа вариант самостоятельно:
expanded class QUX inherit
ANY
redefine
default_create
end
feature {NONE} -- Creation
default_create do make (1) end
feature {QUX} -- Initialization
make (value: like item) do item := value end
feature -- Enumeration
red: QUX
once
Result.make (1)
ensure
instance_free: class
end
green: QUX
once
Result.make (2)
ensure
instance_free: class
end
feature -- Access
item: INTEGER
end
Затем в коде вы бынапишите:
x: QUX
...
x := {QUX}.red
if x = {QUX}.green then ...
Примечание. Для использования функций класса может потребоваться установить EiffelStudio 18.07 или более позднюю версию.