In addition to Swift Tomato's answer, a bit of background - not having the AbstractSeq
would mean that the Scala compiler must instantiate bridge methods for methods in Seq
for every collection class that extends trait Seq
. This compiler trick is needed to support multiple inheritance on the JVM.
Having all the concrete collection extend AbstractSeq
allows concrete collections to inherit those bridge methods like any other JVM method, so the compiler does not need to instantiate bridge methods in every concrete collection class -- the class-file sizes of those concrete collections are reduced.
This class is private and visible only in the scala
package to avoid further convoluting people's understanding of the collections package.