It is reflexive: for any instance x of type Any, x.equals(x) should return true.
It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and
only if y.equals(x) returns true.
It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and
y.equals(z) returns true, then x.equals(z) should return true.
If you override this method, you should verify that your implementation remains an equivalence relation.
Additionally, when overriding this method it is usually necessary to override hashCode to ensure that
objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int.
(o1.hashCode.equals(o2.hashCode)).
Attributes
that
the object to compare against this object for equality.
Returns:
true if the receiver object is equivalent to the argument; false otherwise.
Does the tree have its type field set? Note: this operation is not
referentially transparent, because it can observe the withType
modifications. Should be used only in special circumstances (we
need it for printing trees with optional type info).
Does the tree have its type field set? Note: this operation is not
referentially transparent, because it can observe the withType
modifications. Should be used only in special circumstances (we
need it for printing trees with optional type info).
The default hashing algorithm is platform dependent.
Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet
not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0.
However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have
identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure
to verify that the behavior is consistent with the equals method.
The union of startSpan and the spans of all positioned children that
have the same source as this node, except that Inlined nodes only
consider their call child.
The union of startSpan and the spans of all positioned children that
have the same source as this node, except that Inlined nodes only
consider their call child.
Side effect: Any descendants without spans have but with the same source as this
node have their span set to the end position of the envelope of all children to
the left, or, if that one does not exist, to the start position of the envelope
of all children to the right.
Optionally, the old attachment with given key if one existed before.
The new attachment is added at the position of the old one, or at the end
if no attachment with same key existed.
A positioned item like this one with given span.
If the positioned item is source-derived, a clone is returned.
If the positioned item is synthetic, the position is updated
destructively and the item itself is returned.
A positioned item like this one with given span.
If the positioned item is source-derived, a clone is returned.
If the positioned item is synthetic, the position is updated
destructively and the item itself is returned.