scala/scala — pull request #3103 by Ichoran (2013-11-06 03:09:51+00:00)
Title: Topic/tidy collections

This set of commits significantly cleans up the interface of the collections library. In particular, it deprecates collections that are either broken or will continually break due to needing too much manual attention to keep them consistent: SynchronizedColl, CollProxy, CollForwarder, and ImmutableCollAdaptor. It also attempts to deprecate inheritance and/or overriding where these things do not make sense so that there is more flexibility to alter internal representations and/or less danger of inadvertently introducing inconsistent behavior. In particular, many immutable classes that implement nontrivial collections have deprecated inheritance (in many cases they should become sealed not final); certain methods have deprecated overriding (including CollLike toColl almost always returning self, += forwarding to put or add in maps). Finally, a few scarcely-used classes or traits and/or those with idiosyncratic APIs have been deprecated, including all of collection.script and all the low-level mutable buffers (LinkedListLike and friends).