From beeac27cb480399eb787b47ef83906dd91935640 Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Fri, 20 Jan 2012 00:30:11 +0100 Subject: Improved performance of TraversableLike.dropWhile, which now stops re-evaluating the predicate after it once evaluated to true. Closes SI-5387. --- test/files/run/t5387.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 test/files/run/t5387.scala (limited to 'test') diff --git a/test/files/run/t5387.scala b/test/files/run/t5387.scala new file mode 100644 index 0000000000..5d62a005a9 --- /dev/null +++ b/test/files/run/t5387.scala @@ -0,0 +1,15 @@ +/* + * This tests that the predicate of dropWhile is only evaluated as often as needed, see https://issues.scala-lang.org/browse/SI-5387 + */ +import scala.collection.immutable.ListMap +object Test extends App{ + val subject = ListMap(1->1,2->2,3->3,4->4,5->5) + val result = ListMap(3->3,4->4,5->5) + assert( result == subject.dropWhile{ + case (key, value) => { + assert( key <= 3, "predicate evaluated more often than needed, key "+key ) + key < 3 + } + } + ) +} -- cgit v1.2.3