From 0ebdcc7ed2d2024d93ba7d24b88187d4c502eb4b Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Wed, 22 May 2013 16:38:04 +0200 Subject: Added desugaring. With various other small changes. --- src/dotty/tools/package.scala | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/package.scala') diff --git a/src/dotty/tools/package.scala b/src/dotty/tools/package.scala index 021e7360b..f23b62862 100644 --- a/src/dotty/tools/package.scala +++ b/src/dotty/tools/package.scala @@ -3,5 +3,18 @@ package dotty package object tools { type FatalError = scala.reflect.internal.FatalError val FatalError = scala.reflect.internal.FatalError - val ListOfNil = List(Nil) + + val ListOfNil = Nil :: Nil + + /** True if two lists have the same length. Since calling length on linear sequences + * is O(n), it is an inadvisable way to test length equality. + */ + final def sameLength[T](xs: List[T], ys: List[T]): Boolean = xs match { + case _ :: xs1 => + ys match { + case _ :: ys1 => sameLength(xs1, ys1) + case _ => false + } + case _ => ys.isEmpty + } } -- cgit v1.2.3