Scala trait linearization (source code)

= Scala trait linearization
{c}

<Scala> orders a class and its inherited traits to resolve member lookup and `super` calls. For two independent traits sharing a base, the rightmost mixed-in trait comes first, followed by the earlier trait and then the common base. Ordinary virtual calls start at the receiver's most specific override; an unqualified `super` call starts after the implementation's owner in that receiver's linearization. It does not necessarily call the textual parent of the trait in isolation.<Scala 2.13 classes and objects specification>[Class Linearization; Inheritance]{ref}