Surprised that Default in class ANY is frozen and without implementation???, what is the semantic for this function??
frozen default: detachable like Current
-- Default value of object's type
do
end
My intention was to define a default: like Current or maybe detachable which returns the default value for current Class, so redefine it...
This is a default value of a detachable version of a type. For reference types, this is Void. For expanded types, this is the corresponding default value, i.e. the one initialized with default_create. E.g., for BOOLEAN, it is False.
If an expanded class provides a specific implementation of default_create, it is used to initialize Result even without a body in default. For example, consider a class
expanded class X inherit ANY redefine default_create end feature
item: INTEGER_32
default_create do item := 42 end
end
For a variable x of type X, an expression x.default.item would give 42. When default is called, the value of Result is initialized by calling X.default_create that sets item. So, no instructions in the body of default are required.
To summarize, default returns
Void for reference types;default_create, including basic types: False, 0, 0.0, etc. If an expanded type has nested attributes, they are initialized recursively using the same rule.default_create otherwise.