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 :: native_class_name
The class name of the object in CString format.core :: Object :: output_class_name
Display class name on stdout (debug only).core :: DisjointSet
Data structure to keep track of elements partitioned into disjoint subsetsnitc :: AAsNotNullableExternCall
A single callback declaration on a cast to a non-nullable type= something
nitc :: ABinOpHelper
Used to factorize work on Or, And, Implies and Binop expressions.nitc :: ABraFormExpr
Whatever looks-like a call of the brackets[]
operator.
x[y,z]+=t
x.m(y)=z
. OR just a simple assignment.
x.m(y)+=z
. OR just a simple complex assignment.
nitc :: ACallrefExpr
A reference to a method with a captured receiver. eg.&x.foo
or just &foo
is self is captured.
nitc :: AClasskind
The modifier for the kind of class (abstract, interface, etc.)class
)
nitc :: AIfexprExpr
Aif
expression (ternary conditional). eg. if true then 1 else 0
self
is implicit
nitc :: ALambdaExpr
nitc :: AModuledecl
The declaration of the module with the documentation, name, and annotations+= something
nitc :: AStdClassdef
A standard class definition with a name, superclasses and propertiesnitc :: AVarargExpr
An ellipsis notation used to pass an expression as it, in a vararg parameternitc :: AugmentedStringFormExpr
Any kind of string form with augmentations from prefixes or suffixesArray
nitc :: FlowHashMap
A FlowSet based on a HashMap.nitc :: MPackageTree
A simple specialisation of OrderedTree to display packages, groups and modules
# 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