{"push_id":625130291,"size":2,"distinct_size":2,"ref":"refs/heads/2.11.x","head":"d88064d99c0577db41157ba183c32a94c5fd64bd","before":"bbb5d201a2835b24cd25a6fc60de5bc586490bd0","commits":[{"sha":"56c1af90999f0a9a55a90f3dd3bf6d04ddda5943","author":{"email":"9c84447e109e4f823d88679be7072efee4463241@gmail.com","name":"Rex Kerr"},"message":"Performance improvement: collectFirst in TraversableOnce\n\ncollectFirst was implemented in TraversableOnce by calling toIterator and then using a non-local return to pull out a Some when the partial function succeeded.  This had two problems:\n\n  1. If the TraversableOnce was Iterator or Iterable, stepping through until pf is happy is much (15x!) faster.\n  2. If the TraversableOnce was not, creating an Iterator is a waste of time and memory\n\nThis fixes both of these issues by inspecting the self-type and choosing the appropriate implementation.\n\nFurther (modest) improvements likely possible in 2.12 by moving specialized implementations to child classes and using `applyOrElse` on the partial function with a package-private object instead of a locally created one.","distinct":true,"url":"https://api.github.com/repos/scala/scala/commits/56c1af90999f0a9a55a90f3dd3bf6d04ddda5943"},{"sha":"d88064d99c0577db41157ba183c32a94c5fd64bd","author":{"email":"bbec47209d89e7dc5d8f006e7151d7e32a4d9bf6@gmail.com","name":"Grzegorz Kossakowski"},"message":"Merge pull request #4332 from Ichoran/opt-TravOnce-2.11.x\n\nPerformance improvement: collectFirst in TraversableOnce","distinct":true,"url":"https://api.github.com/repos/scala/scala/commits/d88064d99c0577db41157ba183c32a94c5fd64bd"}]}