This interface introduces the clone
method used to duplicate an instance
Its specific semantic is left to the subclasses.
core :: Cloneable :: defaultinit
core :: Object :: class_factory
Implementation used byget_class
to create the specific class.
core :: Cloneable :: defaultinit
core :: Object :: defaultinit
core :: Object :: is_same_instance
Return true ifself
and other
are the same instance (i.e. same identity).
core :: Object :: is_same_serialized
Isself
the same as other
in a serialization context?
core :: Object :: is_same_type
Return true ifself
and other
have the same dynamic type.
core :: Object :: output_class_name
Display class name on stdout (debug only).core :: DisjointSet
Data structure to keep track of elements partitioned into disjoint subsets
# Something that can be cloned
#
# This interface introduces the `clone` method used to duplicate an instance
# Its specific semantic is left to the subclasses.
interface Cloneable
# Duplicate `self`
#
# The specific semantic of this method is left to the subclasses;
# Especially, if (and how) attributes are cloned (depth vs. shallow).
#
# As a rule of thumb, the principle of least astonishment should
# be used to guide the semantic.
#
# Note that as the returned clone depends on the semantic,
# the `==` method, if redefined, should ensure the equality
# between an object and its clone.
fun clone: SELF is abstract
end
lib/core/kernel.nit:412,1--429,3