Mixin for subclasses of ModelElement representing Elements that can be inherited from one class to another.

Inheritable adds yet another view to help canonicalization for member ModelElements -- Inheritable.definingEnclosingElement. With this as an end point, we can search the inheritance chain between this instance and the Inheritable.definingEnclosingElement in Inheritable.canonicalEnclosingElement, for the canonical Class closest to where this member was defined. We can then know that when we find Inheritable.element inside that Class's namespace, that's the one we should treat as canonical and implementors of this class can use that knowledge to determine canonicalization.

We pick the class closest to the definingEnclosingElement so that all children of that class inheriting the same member will point to the same place in the documentation, and we pick a canonical class because that's the one in the public namespace that will be documented.

Implemented by

Constructors

Inheritable()

Properties

canonicalEnclosingElement ModelElement
read-only
definingEnclosingElement ModelElement
read-only
element → Element
read-only
enclosingElement ModelElement
read-only
inheritance → List<Class>
read-only
isInherited → bool
read-only
package Package
read-only
hashCode → int
The hash code for this object.
read-only, inherited
runtimeType → Type
A representation of the runtime type of the object.
read-only, inherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
toString() → String
Returns a string representation of this object.
inherited

Operators

operator ==(other) → bool
The equality operator.
inherited