diff options
998 files changed, 67946 insertions, 6062 deletions
diff --git a/docs/examples/actors/producers.scala b/docs/examples/actors/producers.scala index d3ff903f5b..80e5ae33d3 100644 --- a/docs/examples/actors/producers.scala +++ b/docs/examples/actors/producers.scala @@ -6,13 +6,13 @@ import scala.actors.Actor._ abstract class Producer[T] { /** A signal that the next value should be produced. */ - private val Next = new Object + private val Next = new Object /** A label for an undefined state of the iterators. */ private val Undefined = new Object /** A signal to stop the coordinator. */ - private val Stop = new Object + private val Stop = new Object protected def produce(x: T) { coordinator ! Some(x) @@ -53,10 +53,10 @@ abstract class Producer[T] { } private val producer: Actor = actor { - receive { - case Next => + receive { + case Next => produceValues - coordinator ! None + coordinator ! None } } } @@ -70,7 +70,7 @@ object producers extends Application { def tree = node(node(node(3), 4, node(6)), 8, node(node(9), 10, node(11))) class PreOrder(n: Tree) extends Producer[Int] { - def produceValues = traverse(n) + def produceValues = traverse(n) def traverse(n: Tree) { if (n != null) { produce(n.elem) @@ -81,7 +81,7 @@ object producers extends Application { } class PostOrder(n: Tree) extends Producer[Int] { - def produceValues = traverse(n) + def produceValues = traverse(n) def traverse(n: Tree) { if (n != null) { traverse(n.left) @@ -92,7 +92,7 @@ object producers extends Application { } class InOrder(n: Tree) extends Producer[Int] { - def produceValues = traverse(n) + def produceValues = traverse(n) def traverse(n: Tree) { if (n != null) { traverse(n.left) diff --git a/docs/examples/jolib/Ref.scala b/docs/examples/jolib/Ref.scala index 39c0123f09..5f655f16b1 100644 --- a/docs/examples/jolib/Ref.scala +++ b/docs/examples/jolib/Ref.scala @@ -12,7 +12,7 @@ import concurrent.SyncVar; import concurrent.jolib._; class Ref[a](init: a) extends Join { - + object get extends Synchr[a](this) { case class C() extends SyncVar[a]; } object set extends Synchr[unit](this) { case class C(x: a) extends SyncVar[unit]; } object state extends Asynchr(this) { case class C(x: a); } @@ -25,7 +25,7 @@ class Ref[a](init: a) extends Join { ); state(state.C(init)); - + def Get: a = get(get.C()); def Set(x: a): unit = set(set.C(x)); } diff --git a/docs/examples/jolib/parallelOr.scala b/docs/examples/jolib/parallelOr.scala index 4c4a852c4a..72d282bee3 100644 --- a/docs/examples/jolib/parallelOr.scala +++ b/docs/examples/jolib/parallelOr.scala @@ -13,27 +13,27 @@ import concurrent.SyncVar; /** Implementation in the join-calculus of a parallel OR. */ object or extends Join { - + object res extends Synchr[boolean](this) { case class C() extends SyncVar[boolean] }; object res1 extends Asynchr(this) { case class C(b: boolean); } object res2 extends Asynchr(this) { case class C(b: boolean); } object res1False extends Synchr[boolean](this) { case class C() extends SyncVar[boolean] }; object res2False extends Synchr[boolean](this) { case class C() extends SyncVar[boolean] }; - + rules( Pair(List(res, res1), { case List(r @ res.C(), res1.C(b)) => if (b) r.set(b) else r.set(res1False(res1False.C())) }), - + Pair(List(res, res2), { case List(r @ res.C(), res2.C(b)) => if (b) r.set(b) else r.set(res2False(res2False.C())) }), - + Pair(List(res1False, res2), { case List(r @ res1False.C(), res2.C(b)) => r.set(b) }), - + Pair(List(res2False, res1), { case List(r @ res2False.C(), res1.C(b)) => r.set(b) }) ); - + def apply(b1: => boolean, b2: => boolean): boolean = { concurrent.ops.spawn(res1(res1.C(b1))); concurrent.ops.spawn(res2(res2.C(b2))); @@ -42,7 +42,7 @@ object or extends Join { } */ object parallelOr { - + def main(args: Array[String]): unit = { def loop: boolean = { while (true) {}; true }; /* diff --git a/docs/examples/monads/callccInterpreter.scala b/docs/examples/monads/callccInterpreter.scala index 5b09b4c285..5b556bd8fa 100644 --- a/docs/examples/monads/callccInterpreter.scala +++ b/docs/examples/monads/callccInterpreter.scala @@ -14,7 +14,7 @@ object callccInterpreter { def showM(m: M[Value]): String = (m in id).toString(); - def callCC[A](h: (A => M[A]) => M[A]) = + def callCC[A](h: (A => M[A]) => M[A]) = M[A](c => h(a => M[A](d => c(a))) in c); type Name = String; @@ -30,7 +30,7 @@ object callccInterpreter { trait Value; case object Wrong extends Value { override def toString() = "wrong" - } + } case class Num(n: Int) extends Value { override def toString() = n.toString(); } @@ -70,7 +70,7 @@ object callccInterpreter { case Ccc(x, t) => callCC(k => interp(t, Pair(x, Fun(k)) :: e)) } - def test(t: Term): String = + def test(t: Term): String = showM(interp(t, List())); val term0 = App(Lam("x", Add(Var("x"), Var("x"))), Add(Con(10), Con(11))); diff --git a/docs/examples/monads/directInterpreter.scala b/docs/examples/monads/directInterpreter.scala index a80c9e4ed0..06fffba8e2 100644 --- a/docs/examples/monads/directInterpreter.scala +++ b/docs/examples/monads/directInterpreter.scala @@ -45,11 +45,11 @@ object directInterpreter { case App(f, t) => apply(interp(f, e), interp(t, e)) } - def test(t: Term): String = + def test(t: Term): String = showval(interp(t, List())); val term0 = App(Lam("x", Add(Var("x"), Var("x"))), Add(Con(10), Con(11))); - def main(args: Array[String]) = + def main(args: Array[String]) = System.out.println(test(term0)); } diff --git a/docs/examples/monads/simpleInterpreter.scala b/docs/examples/monads/simpleInterpreter.scala index 219b137c31..cde3a92dbb 100644 --- a/docs/examples/monads/simpleInterpreter.scala +++ b/docs/examples/monads/simpleInterpreter.scala @@ -22,7 +22,7 @@ object simpleInterpreter { trait Value; case object Wrong extends Value { override def toString() = "wrong" - } + } case class Num(n: Int) extends Value { override def toString() = n.toString(); } @@ -61,7 +61,7 @@ object simpleInterpreter { yield c } - def test(t: Term): String = + def test(t: Term): String = showM(interp(t, List())); val term0 = App(Lam("x", Add(Var("x"), Var("x"))), Add(Con(10), Con(11))); diff --git a/docs/examples/monads/stateInterpreter.scala b/docs/examples/monads/stateInterpreter.scala index 35568fb314..97f3335dab 100644 --- a/docs/examples/monads/stateInterpreter.scala +++ b/docs/examples/monads/stateInterpreter.scala @@ -7,7 +7,7 @@ object stateInterpreter { val tickS = new M(s => Pair((), s + 1)); case class M[A](in: State => Pair[A, State]) { - def bind[B](k: A => M[B]) = M[B]{ s0 => + def bind[B](k: A => M[B]) = M[B]{ s0 => val Pair(a, s1) = this in s0; k(a) in s1 } def map[B](f: A => B): M[B] = bind(x => unitM(f(x))); @@ -72,7 +72,7 @@ object stateInterpreter { yield c } - def test(t: Term): String = + def test(t: Term): String = showM(interp(t, List())); val term0 = App(Lam("x", Add(Var("x"), Var("x"))), Add(Con(10), Con(11))); diff --git a/docs/examples/parsing/ArithmeticParser.scala b/docs/examples/parsing/ArithmeticParser.scala index e8fbee4499..99cf7a5578 100644 --- a/docs/examples/parsing/ArithmeticParser.scala +++ b/docs/examples/parsing/ArithmeticParser.scala @@ -15,16 +15,16 @@ import scala.util.parsing.combinator.syntactical.StdTokenParsers * a term is a sequence of factors, separated by * or / * a factor is a parenthesized expression or a number * - * @author Adriaan Moors - */ -object arithmeticParser extends StdTokenParsers { + * @author Adriaan Moors + */ +object arithmeticParser extends StdTokenParsers { type Tokens = StdLexical ; val lexical = new StdLexical lexical.delimiters ++= List("(", ")", "+", "-", "*", "/") lazy val expr = term*("+" ^^^ {(x: int, y: int) => x + y} | "-" ^^^ {(x: int, y: int) => x - y}) lazy val term = factor*("*" ^^^ {(x: int, y: int) => x * y} | "/" ^^^ {(x: int, y: int) => x / y}) lazy val factor: Parser[int] = "(" ~> expr <~ ")" | numericLit ^^ (_.toInt) - + def main(args: Array[String]) { println( if (args.length == 1) { @@ -37,14 +37,14 @@ object arithmeticParser extends StdTokenParsers { } -object arithmeticParserDesugared extends StdTokenParsers { +object arithmeticParserDesugared extends StdTokenParsers { type Tokens = StdLexical ; val lexical = new StdLexical lexical.delimiters ++= List("(", ")", "+", "-", "*", "/") lazy val expr = chainl1(term, (keyword("+").^^^{(x: int, y: int) => x + y}).|(keyword("-").^^^{(x: int, y: int) => x - y})) lazy val term = chainl1(factor, (keyword("*").^^^{(x: int, y: int) => x * y}).|(keyword("/").^^^{(x: int, y: int) => x / y})) - lazy val factor: Parser[int] = keyword("(").~>(expr.<~(keyword(")"))).|(numericLit.^^(x => x.toInt)) - + lazy val factor: Parser[int] = keyword("(").~>(expr.<~(keyword(")"))).|(numericLit.^^(x => x.toInt)) + def main(args: Array[String]) { println( if (args.length == 1) { diff --git a/docs/examples/parsing/ArithmeticParsers.scala b/docs/examples/parsing/ArithmeticParsers.scala index 8fb3af7acb..62d7a61862 100644 --- a/docs/examples/parsing/ArithmeticParsers.scala +++ b/docs/examples/parsing/ArithmeticParsers.scala @@ -2,7 +2,7 @@ package examples.parsing import scala.util.parsing.combinator1.syntactical.StandardTokenParsers -object ArithmeticParsers extends StandardTokenParsers { +object ArithmeticParsers extends StandardTokenParsers { lexical.delimiters ++= List("(", ")", "+", "-", "*", "/") def expr: Parser[Any] = term ~ rep("+" ~ term | "-" ~ term) @@ -16,11 +16,11 @@ object ArithmeticParsers extends StandardTokenParsers { } } -object ArithmeticParsers1 extends StandardTokenParsers { +object ArithmeticParsers1 extends StandardTokenParsers { lexical.delimiters ++= List("(", ")", "+", "-", "*", "/") val reduceList: Int ~ List[String ~ Int] => Int = { - case i ~ ps => (i /: ps)(reduce) + case i ~ ps => (i /: ps)(reduce) } def reduce(x: Int, r: String ~ Int) = (r: @unchecked) match { @@ -45,11 +45,11 @@ class Expr case class BinOp(op: String, l: Expr, r: Expr) extends Expr case class Num(n: Int) extends Expr -object ArithmeticParsers2 extends StandardTokenParsers { +object ArithmeticParsers2 extends StandardTokenParsers { lexical.delimiters ++= List("(", ")", "+", "-", "*", "/") val reduceList: Expr ~ List[String ~ Expr] => Expr = { - case i ~ ps => (i /: ps)(reduce) + case i ~ ps => (i /: ps)(reduce) } def reduce(l: Expr, r: String ~ Expr) = BinOp(r._1, l, r._2) diff --git a/docs/examples/parsing/JSON.scala b/docs/examples/parsing/JSON.scala index bbba25f744..abfa242e9f 100644 --- a/docs/examples/parsing/JSON.scala +++ b/docs/examples/parsing/JSON.scala @@ -2,14 +2,14 @@ package examples.parsing import scala.util.parsing.combinator1.syntactical.StandardTokenParsers -object JSON extends StandardTokenParsers { +object JSON extends StandardTokenParsers { lexical.delimiters += ("{", "}", "[", "]", ":", ",") lexical.reserved += ("null", "true", "false") def obj : Parser[Any] = "{" ~ repsep(member, ",") ~ "}" def arr : Parser[Any] = "[" ~ repsep(value, ",") ~ "]" def member: Parser[Any] = ident ~ ":" ~ value - def value : Parser[Any] = ident | numericLit | obj | arr | + def value : Parser[Any] = ident | numericLit | obj | arr | "null" | "true" | "false" def main(args: Array[String]) { @@ -18,20 +18,20 @@ object JSON extends StandardTokenParsers { println(phrase(value)(tokens)) } } -object JSON1 extends StandardTokenParsers { +object JSON1 extends StandardTokenParsers { lexical.delimiters += ("{", "}", "[", "]", ":", ",") lexical.reserved += ("null", "true", "false") - def obj: Parser[Map[String, Any]] = + def obj: Parser[Map[String, Any]] = "{" ~> repsep(member, ",") <~ "}" ^^ (Map() ++ _) def arr: Parser[List[Any]] = - "[" ~> repsep(value, ",") <~ "]" + "[" ~> repsep(value, ",") <~ "]" - def member: Parser[(String, Any)] = + def member: Parser[(String, Any)] = ident ~ ":" ~ value ^^ { case name ~ ":" ~ value => (name -> value) } - def value: Parser[Any] = + def value: Parser[Any] = ident | numericLit ^^ (_.toInt) | obj | arr | "null" ^^^ null | "true" ^^^ true | "false" ^^^ false diff --git a/docs/examples/parsing/ListParser.scala b/docs/examples/parsing/ListParser.scala index 12805e5e50..59fc292c1d 100644 --- a/docs/examples/parsing/ListParser.scala +++ b/docs/examples/parsing/ListParser.scala @@ -14,7 +14,7 @@ object listParser { class ListParsers extends Parsers { type Elem = Char - + lazy val ident = rep1(elem("letter", isLetter), elem("letter or digit", isLetterOrDigit)) ^^ {cs => Id(mkString(cs))} lazy val number = chainl1(elem("digit", isDigit) ^^ (_ - '0'), success{(accum: Int, d: Int) => accum * 10 + d}) ^^ Num lazy val list = '(' ~> repsep(expr, ',') <~ ')' ^^ Lst diff --git a/docs/examples/parsing/ListParsers.scala b/docs/examples/parsing/ListParsers.scala index f503a0139f..b449c4a641 100644 --- a/docs/examples/parsing/ListParsers.scala +++ b/docs/examples/parsing/ListParsers.scala @@ -2,7 +2,7 @@ package examples.parsing import scala.util.parsing.combinator1.syntactical.StandardTokenParsers -object ListParsers extends StandardTokenParsers { +object ListParsers extends StandardTokenParsers { lexical.delimiters ++= List("(", ")", ",") def expr: Parser[Any] = "(" ~ exprs ~ ")" | ident | numericLit @@ -15,7 +15,7 @@ object ListParsers extends StandardTokenParsers { } } -object ListParsers1 extends StandardTokenParsers { +object ListParsers1 extends StandardTokenParsers { lexical.delimiters ++= List("(", ")", ",") def expr: Parser[Any] = "(" ~> exprs <~ ")" | ident | numericLit diff --git a/docs/examples/parsing/MiniML.scala b/docs/examples/parsing/MiniML.scala index ffc7c2ac92..f7f7172e8d 100644 --- a/docs/examples/parsing/MiniML.scala +++ b/docs/examples/parsing/MiniML.scala @@ -3,7 +3,7 @@ package examples.parsing import scala.util.parsing.combinator1.syntactical.StandardTokenParsers import scala.util.parsing.combinator1.syntactical.StandardTokenParsers -object MiniML extends StandardTokenParsers { +object MiniML extends StandardTokenParsers { lexical.delimiters += ("(", ")", ".", "=") lexical.reserved += ("lambda", "let", "in") @@ -30,7 +30,7 @@ case class Lambda(x: String, expr: Expr) extends Expr case class Apply(fun: Expr, arg: Expr) extends Expr case class Var(x: String) extends Expr -object MiniML1 extends StandardTokenParsers { +object MiniML1 extends StandardTokenParsers { lexical.delimiters += ("(", ")", ".", "=") lexical.reserved += ("lambda", "let", "in") @@ -41,7 +41,7 @@ object MiniML1 extends StandardTokenParsers { ) def simpleExpr: Parser[Expr] = ( ident ^^ { Var } - | "(" ~> expr <~ ")" + | "(" ~> expr <~ ")" ) def main(args: Array[String]) { diff --git a/docs/examples/parsing/lambda/Main.scala b/docs/examples/parsing/lambda/Main.scala index 81a175de77..165e82b670 100644 --- a/docs/examples/parsing/lambda/Main.scala +++ b/docs/examples/parsing/lambda/Main.scala @@ -27,8 +27,8 @@ object Main extends Application with TestParser { Console.println("Term: \n"+term) } - case Failure(msg, remainder) => Console.println("Failure: "+msg+"\n"+"Remainder: \n"+remainder.pos.longString) - case Error(msg, remainder) => Console.println("Error: "+msg+"\n"+"Remainder: \n"+remainder.pos.longString) + case Failure(msg, remainder) => Console.println("Failure: "+msg+"\n"+"Remainder: \n"+remainder.pos.longString) + case Error(msg, remainder) => Console.println("Error: "+msg+"\n"+"Remainder: \n"+remainder.pos.longString) } } } diff --git a/docs/examples/parsing/lambda/TestParser.scala b/docs/examples/parsing/lambda/TestParser.scala index 623b597337..d26589da1b 100644 --- a/docs/examples/parsing/lambda/TestParser.scala +++ b/docs/examples/parsing/lambda/TestParser.scala @@ -17,9 +17,9 @@ trait TestParser extends StdTokenParsers with ImplicitConversions with TestSynt lexical.reserved ++= List("unit", "let", "in", "if", "then", "else") lexical.delimiters ++= List("=>", "->", "==", "(", ")", "=", "\\", "+", "-", "*", "/") - + def name : Parser[Name] = ident ^^ Name - + // meaning of the arguments to the closure during subsequent iterations // (...(expr2 op1 expr1) ... op1 expr1) // ^a^^^ ^o^ ^b^^^ @@ -29,10 +29,10 @@ trait TestParser extends StdTokenParsers with ImplicitConversions with TestSynt def expr2 : Parser[Term] = chainl1(expr3, expr2, op2 ^^ {o => (a: Term, b: Term) => App(App(o, a), b)}) - + def expr3 : Parser[Term] = chainl1(expr4, expr3, op3 ^^ {o => (a: Term, b: Term) => App(App(o, a), b)}) - + def expr4 : Parser[Term] = ( "\\" ~> lambdas | ("let" ~> name) ~ ("=" ~> expr1) ~ ("in" ~> expr1) ^^ flatten3(Let) @@ -42,27 +42,27 @@ trait TestParser extends StdTokenParsers with ImplicitConversions with TestSynt def lambdas : Parser[Term] = name ~ ("->" ~> expr1 | lambdas) ^^ flatten2(Lam) - + def aexpr : Parser[Term] = ( numericLit ^^ (_.toInt) ^^ Lit | name ^^ Ref | "unit" ^^^ Unit() | "(" ~> expr1 <~ ")" ) - + def op1 : Parser[Term] = "==" ^^^ Ref(Name("==")) - + def op2 : Parser[Term] = ( "+" ^^^ Ref(Name("+")) | "-" ^^^ Ref(Name("-")) ) - + def op3 : Parser[Term] = ( "*" ^^^ Ref(Name("*")) | "/" ^^^ Ref(Name("/")) ) - + def parse(r: Reader[char]) : ParseResult[Term] = phrase(expr1)(new lexical.Scanner(r)) } diff --git a/docs/examples/parsing/lambda/TestSyntax.scala b/docs/examples/parsing/lambda/TestSyntax.scala index 531ae4bd54..7edca6ccdc 100644 --- a/docs/examples/parsing/lambda/TestSyntax.scala +++ b/docs/examples/parsing/lambda/TestSyntax.scala @@ -5,25 +5,25 @@ package examples.parsing.lambda * * @author Miles Sabin (adapted slightly by Adriaan Moors) */ -trait TestSyntax +trait TestSyntax { - trait Term - + trait Term + case class Unit extends Term { override def toString = "unit" } - + case class Lit(n: int) extends Term { override def toString = n.toString } - + case class Bool(b: boolean) extends Term { override def toString = b.toString } - + case class Name(name: String) extends Term { override def toString = name @@ -33,27 +33,27 @@ trait TestSyntax { def value = n } - + case class Lam(n: Name, l: Term) extends Term { override def toString = "(\\ "+n+" -> "+l+")" - } - + } + case class App(t1: Term, t2: Term) extends Term { override def toString = "("+t1+" "+t2+")" - } - + } + case class Let(n: Name, t1: Term, t2: Term) extends Term { override def toString = "let "+n+" = "+t1+" in "+t2 } - + case class If(c: Term, t1: Term, t2: Term) extends Term { override def toString = "if "+c+" then "+t1+" else "+t2 } - + trait PrimTerm extends Term { def apply(n: Lit) : Term @@ -68,7 +68,7 @@ trait TestSyntax { def apply(x: Lit) = new PrimTerm { def apply(y: Lit) = Lit(x.n-y.n) } } - + case class PrimMultiply extends PrimTerm { def apply(x: Lit) = new PrimTerm { def apply(y: Lit) = Lit(x.n*y.n) } diff --git a/docs/examples/pilib/elasticBuffer.scala b/docs/examples/pilib/elasticBuffer.scala index a0e8bb6a7c..5fec96ab6c 100644 --- a/docs/examples/pilib/elasticBuffer.scala +++ b/docs/examples/pilib/elasticBuffer.scala @@ -25,7 +25,7 @@ object elasticBuffer { /** * A buffer cell containing a value, ready to receive (o,r) from the right. */ - def Cl(i: Chan[String], l: MetaChan, + def Cl(i: Chan[String], l: MetaChan, o: Chan[String], r: MetaChan, content: String): Unit = choice ( o(content) * (Bl(i,l,o,r)), diff --git a/docs/examples/pilib/handover.scala b/docs/examples/pilib/handover.scala index 9725382c96..c9b6156c2c 100644 --- a/docs/examples/pilib/handover.scala +++ b/docs/examples/pilib/handover.scala @@ -32,7 +32,7 @@ object handoverRecursive { * Control center. */ def Control(talk1: Chan[unit], switch1: Switch, - gain1: Switch, lose1: Switch, + gain1: Switch, lose1: Switch, talk2: Chan[unit], switch2: Switch, gain2: Switch, lose2: Switch): unit = { @@ -108,7 +108,7 @@ object handoverCast { def Car(talk: Chan[Any], switch: Chan[Any]): unit = choice ( switch * (o => { - val Pair(t,s) = o.asInstanceOf[Pair[Chan[Any],Chan[Any]]]; + val Pair(t,s) = o.asInstanceOf[Pair[Chan[Any],Chan[Any]]]; Car(t, s) }), talk(()) * ( { @@ -122,7 +122,7 @@ object handoverCast { * Control center. */ def Control(talk1: Chan[Any], switch1: Chan[Any], - gain1: Chan[Any], lose1: Chan[Any], + gain1: Chan[Any], lose1: Chan[Any], talk2: Chan[Any], switch2: Chan[Any], gain2: Chan[Any], lose2: Chan[Any]): unit = { diff --git a/docs/examples/pilib/mobilePhoneProtocol.scala b/docs/examples/pilib/mobilePhoneProtocol.scala index 0805253ae0..e8c0ac1dc4 100644 --- a/docs/examples/pilib/mobilePhoneProtocol.scala +++ b/docs/examples/pilib/mobilePhoneProtocol.scala @@ -21,7 +21,7 @@ object mobilePhoneProtocol { case class HoCom() extends Message; // handover complete case class HoFail() extends Message; // handover fail case class ChRel() extends Message; // release - case class Voice(s: String) extends Message; // voice + case class Voice(s: String) extends Message; // voice case class Channel(n: Chan[Message]) extends Message; // channel def MobileSystem(in: Chan[String], out: Chan[String]): unit = { @@ -144,9 +144,9 @@ object mobilePhoneProtocol { } //***************** Entry function ******************// - + def main(args: Array[String]): unit = { - + def Producer(n: Int, put: Chan[String]): unit = { Thread.sleep(1 + random.nextInt(1000)); val msg = "object " + n; @@ -154,14 +154,14 @@ object mobilePhoneProtocol { System.out.println("Producer gave " + msg); Producer(n + 1, put) } - + def Consumer(get: Chan[String]): unit = { Thread.sleep(1 + random.nextInt(1000)); val msg = get.read; System.out.println("Consumer took " + msg); Consumer(get) } - + val put = new Chan[String]; val get = new Chan[String]; spawn < Producer(0, put) | Consumer(get) | MobileSystem(put, get) > diff --git a/docs/examples/pilib/piNat.scala b/docs/examples/pilib/piNat.scala index ee9e5ba1af..a1a0e682e1 100644 --- a/docs/examples/pilib/piNat.scala +++ b/docs/examples/pilib/piNat.scala @@ -4,7 +4,7 @@ import scala.concurrent.pilib._ /** Church encoding of naturals in the Pi-calculus */ object piNat extends Application { - + /** Locations of Pi-calculus natural */ class NatChan extends Chan[Triple[Chan[Unit], Chan[NatChan], Chan[NatChan]]] diff --git a/docs/examples/pilib/rwlock.scala b/docs/examples/pilib/rwlock.scala index 931f622f5a..bb1c26bdf2 100644 --- a/docs/examples/pilib/rwlock.scala +++ b/docs/examples/pilib/rwlock.scala @@ -250,7 +250,7 @@ object rwlock { def endRead = er.send def endWrite = ew.send - private def Reading(nr: int, nw: int): unit = + private def Reading(nr: int, nw: int): unit = if (nr == 0 && nw == 0) choice ( sr * (x => Reading(1, 0)), @@ -264,7 +264,7 @@ object rwlock { choice ( sr * (x => Reading(nr + 1, 0)), er * (x => Reading(nr - 1, 0)), - ww * (x => Reading(nr, 1)) + ww * (x => Reading(nr, 1)) ) else if (nr != 0 && nw != 0) choice ( diff --git a/docs/examples/pilib/scheduler.scala b/docs/examples/pilib/scheduler.scala index 9205ae3f0c..fd8fd52600 100644 --- a/docs/examples/pilib/scheduler.scala +++ b/docs/examples/pilib/scheduler.scala @@ -87,7 +87,7 @@ object scheduler { /** * A cell is modelled as a function that takes as parameters - * input and output channels and which returns nothing. + * input and output channels and which returns nothing. */ type Cell = (Chan[Unit], Chan[Unit]) => Unit diff --git a/docs/examples/pilib/semaphore.scala b/docs/examples/pilib/semaphore.scala index ed224890e2..951c90e8d4 100644 --- a/docs/examples/pilib/semaphore.scala +++ b/docs/examples/pilib/semaphore.scala @@ -65,7 +65,7 @@ object semaphore { println("b1"); Thread.sleep(1 + random.nextInt(100)); println("b2") - } ) + } ) } >; } } diff --git a/docs/examples/pilib/twoPlaceBuffer.scala b/docs/examples/pilib/twoPlaceBuffer.scala index f0f278317a..255f70ca06 100644 --- a/docs/examples/pilib/twoPlaceBuffer.scala +++ b/docs/examples/pilib/twoPlaceBuffer.scala @@ -16,7 +16,7 @@ object twoPlaceBuffer extends Application { def B1(x: A): Unit = choice ( out(x) * (B0), - in * (y => B2(x, y)) + in * (y => B2(x, y)) ) def B2(x: A, y: A): Unit = choice ( diff --git a/docs/examples/plugintemplate/src/plugintemplate/TemplatePlugin.scala b/docs/examples/plugintemplate/src/plugintemplate/TemplatePlugin.scala index b241072301..6cda37d4e3 100644 --- a/docs/examples/plugintemplate/src/plugintemplate/TemplatePlugin.scala +++ b/docs/examples/plugintemplate/src/plugintemplate/TemplatePlugin.scala @@ -16,7 +16,7 @@ class TemplatePlugin(val global: Global) extends Plugin { /** A short description of the plugin, read from the properties file */ val description = PluginProperties.pluginDescription - + /** @todo A description of the plugin's options */ override val optionsHelp = Some( " -P:"+ name +":option sets some option for this plugin") diff --git a/docs/examples/plugintemplate/src/plugintemplate/standalone/Main.scala b/docs/examples/plugintemplate/src/plugintemplate/standalone/Main.scala index ff1d1b50c5..19d2613649 100644 --- a/docs/examples/plugintemplate/src/plugintemplate/standalone/Main.scala +++ b/docs/examples/plugintemplate/src/plugintemplate/standalone/Main.scala @@ -5,7 +5,7 @@ import scala.tools.nsc.CompilerCommand import scala.tools.nsc.Settings /** An object for running the plugin as standalone application. - * + * * @todo: print, parse and apply plugin options !!! * ideally re-use the TemplatePlugin (-> runsAfter, optionsHelp, * processOptions, components, annotationChecker) instead of diff --git a/docs/examples/tcpoly/collection/HOSeq.scala b/docs/examples/tcpoly/collection/HOSeq.scala index a9414e3b3c..a6757b95ba 100644 --- a/docs/examples/tcpoly/collection/HOSeq.scala +++ b/docs/examples/tcpoly/collection/HOSeq.scala @@ -6,40 +6,40 @@ trait HOSeq { // values implementing this interface, in order to provide more performant ways of building that structure trait Accumulator[+coll[x], elT] { def += (el: elT): Unit - def result: coll[elT] + def result: coll[elT] } - - + + // Iterable abstracts over the type of its structure as well as its elements (see PolyP's Bifunctor) - // m[x] is intentionally unbounded: fold can then be defined nicely - // variance: if we write m[+x] instead of +m[+x], x is an invariant position because its enclosing type + // m[x] is intentionally unbounded: fold can then be defined nicely + // variance: if we write m[+x] instead of +m[+x], x is an invariant position because its enclosing type // is an invariant position -- should probably rule that out? trait Iterable[+m[+x], +t] { //def unit[a](orig: a): m[a] def iterator: Iterator[t] - + // construct an empty accumulator that will produce the same structure as this iterable, with elements of type t def accumulator[t]: Accumulator[m, t] - + def filter(p: t => Boolean): m[t] = { val buf = accumulator[t] val elems = elements while (elems.hasNext) { val x = elems.next; if (p(x)) buf += x } buf.result } - + def map[s](f: t => s): m[s] = { val buf = accumulator[s] val elems = elements while (elems.hasNext) buf += f(elems.next) buf.result } - + // flatMap is a more specialized map, it only works if the mapped function produces Iterable values, // which are then added to the result one by one // the compiler should be able to find the right accumulator (implicit buf) to build the result // to get concat, resColl = SingletonIterable, f = unit for SingletonIterable - def flatMap[resColl[x] <: Iterable[resColl, x], s](f: t => resColl[s])(implicit buf: Accumulator[resColl, s]): resColl[s] = { + def flatMap[resColl[x] <: Iterable[resColl, x], s](f: t => resColl[s])(implicit buf: Accumulator[resColl, s]): resColl[s] = { // TODO: would a viewbound for resColl[x] be better? // -- 2nd-order type params are not yet in scope in view bound val elems = elements @@ -48,9 +48,9 @@ trait HOSeq { while (elemss.hasNext) buf += elemss.next } buf.result - } + } } - + final class ListBuffer[A] { private var start: List[A] = Nil private var last: ::[A] = _ @@ -78,7 +78,7 @@ trait HOSeq { exported = !start.isEmpty start } - + /** Clears the buffer contents. */ def clear: unit = { @@ -97,13 +97,13 @@ trait HOSeq { } } } - + implicit def listAccumulator[elT]: Accumulator[List, elT] = new Accumulator[List, elT] { private[this] val buff = new ListBuffer[elT] def += (el: elT): Unit = buff += el def result: List[elT] = buff.toList } - + trait List[+t] extends Iterable[List, t] { def head: t def tail: List[t] @@ -111,16 +111,16 @@ trait HOSeq { def iterator: Iterator[t] = error("TODO") // construct an empty accumulator that will produce the same structure as this iterable, with elements of type t - def accumulator[t]: Accumulator[List, t] = error("TODO") + def accumulator[t]: Accumulator[List, t] = error("TODO") } - + // TODO: the var tl approach does not seem to work because subtyping isn't fully working yet final case class ::[+b](hd: b, private val tl: List[b]) extends List[b] { def head = hd def tail = if(tl==null) this else tl // hack override def isEmpty: boolean = false } - + case object Nil extends List[Nothing] { def isEmpty = true def head: Nothing = @@ -149,18 +149,18 @@ trait HOSeq { def filter(f: T=>Boolean): FilterResult def subseq(from: int, to: int): Subseq def flatMap[S <: Seq[K], K](f: T => S): S#Concat // legal? - def concat(others: Seq[T]): Concat + def concat(others: Seq[T]): Concat */ - + /*trait Iterator[t] { // @post hasAdvanced implies hasNext // model def hasAdvanced: Boolean - + def hasNext: Boolean // pure - + // @pre hasAdvanced def current: t // pure - + // @pre hasNext // @post hasAdvanced def advance: Unit diff --git a/docs/examples/tcpoly/monads/Monads.scala b/docs/examples/tcpoly/monads/Monads.scala index 5a966ce960..b6e3d5b9a8 100644 --- a/docs/examples/tcpoly/monads/Monads.scala +++ b/docs/examples/tcpoly/monads/Monads.scala @@ -6,18 +6,18 @@ trait Monads { * (>>=) :: m a -> (a -> m b) -> m b * return :: a -> m a * - * MonadTC encodes the above Haskell type class, + * MonadTC encodes the above Haskell type class, * an instance of MonadTC corresponds to a method dictionary. * (see http://lampwww.epfl.ch/~odersky/talks/wg2.8-boston06.pdf) * * Note that the identity (`this') of the method dictionary does not really correspond - * to the instance of m[x] (`self') that is `wrapped': e.g., unit does not use `self' (which + * to the instance of m[x] (`self') that is `wrapped': e.g., unit does not use `self' (which * corresponds to the argument of the implicit conversion that encodes an instance of this type class) */ // Option =:= [x] => Option[x] <: [x] => Any -// trait MonadTC[m <: [x] => Any, a] { +// trait MonadTC[m <: [x] => Any, a] { // MonadTC[m[x], a] x is a type parameter too -- should not write e.g., m[Int] here - trait MonadTC[m[x], a] { + trait MonadTC[m[x], a] { def unit[a](orig: a): m[a] // >>='s first argument comes from the implicit definition constructing this "method dictionary" @@ -32,7 +32,7 @@ trait Monads { */ trait OptionMonad extends Monads { // this implicit method encodes the Monad type class instance for Option - implicit def OptionInstOfMonad[a](self: Option[a]): MonadTC[Option, a] + implicit def OptionInstOfMonad[a](self: Option[a]): MonadTC[Option, a] = new MonadTC[Option, a] { def unit[a](orig: a) = Some(orig) def >>=[b](fun: a => Option[b]): Option[b] = self match { @@ -47,8 +47,8 @@ object main extends OptionMonad with Application { } -/* -trait MonadTC[m[x], a] requires m[x] { +/* +trait MonadTC[m[x], a] requires m[x] { def unit[a](orig: a): m[a] // >>='s first argument comes from the implicit definition constructing this "method dictionary" diff --git a/docs/examples/typeinf.scala b/docs/examples/typeinf.scala index 80980ebc9a..d4bc8bf3e1 100644 --- a/docs/examples/typeinf.scala +++ b/docs/examples/typeinf.scala @@ -69,14 +69,14 @@ object typeInfer { case Tycon(k, ts) => (List[Tyvar]() /: ts) ((tvs, t) => tvs union tyvars(t)) } - def tyvars(ts: TypeScheme): List[Tyvar] = + def tyvars(ts: TypeScheme): List[Tyvar] = tyvars(ts.tpe) diff ts.tyvars; def tyvars(env: Env): List[Tyvar] = (List[Tyvar]() /: env) ((tvs, nt) => tvs union tyvars(nt._2)) def mgu(t: Type, u: Type, s: Subst): Subst = Pair(s(t), s(u)) match { - case Pair(Tyvar(a), Tyvar(b)) if (a == b) => + case Pair(Tyvar(a), Tyvar(b)) if (a == b) => s case Pair(Tyvar(a), _) if !(tyvars(u) contains a) => s.extend(Tyvar(a), u) @@ -181,7 +181,7 @@ object typeInfer { yield Lam(x, t): Term ) ||| ( for ( - letid <- id if letid == "let"; + letid <- id if letid == "let"; x <- ident; _ <- wschr('='); t <- term; diff --git a/docs/examples/xml/phonebook/embeddedBook.scala b/docs/examples/xml/phonebook/embeddedBook.scala index 8ea9628212..3286485f0b 100644 --- a/docs/examples/xml/phonebook/embeddedBook.scala +++ b/docs/examples/xml/phonebook/embeddedBook.scala @@ -1,5 +1,5 @@ /* examples/phonebook/embeddedBook.scala */ -package phonebook +package phonebook object embeddedBook { @@ -8,14 +8,14 @@ object embeddedBook { val last = "Emir" val location = "work" - val embBook = + val embBook = <phonebook> <descr> - This is the <b>phonebook</b> of the + This is the <b>phonebook</b> of the {company} corporation. </descr> <entry> - <name>{ first+" "+last }</name> + <name>{ first+" "+last }</name> <phone where={ location }>+41 21 693 68 {val x = 60 + 7; x}</phone> </entry> </phonebook>; diff --git a/docs/examples/xml/phonebook/phonebook.scala b/docs/examples/xml/phonebook/phonebook.scala index 4813c2d20d..3c0dfbd837 100644 --- a/docs/examples/xml/phonebook/phonebook.scala +++ b/docs/examples/xml/phonebook/phonebook.scala @@ -2,14 +2,14 @@ package phonebook ; object phonebook { - val labPhoneBook = + val labPhoneBook = <phonebook> <descr> - This is the <b>phonebook</b> of the + This is the <b>phonebook</b> of the <a href="http://acme.org">ACME</a> corporation. </descr> <entry> - <name>Burak</name> + <name>Burak</name> <phone where="work"> +41 21 693 68 67</phone> <phone where="mobile">+41 79 602 23 23</phone> </entry> @@ -22,14 +22,14 @@ object phonebook { import scala.xml.{ Node, Text }; def add( phonebook:Node, newEntry:Node ):Node = phonebook match { - case <phonebook>{ ch @ _* }</phonebook> => + case <phonebook>{ ch @ _* }</phonebook> => <phonebook>{ ch }{ newEntry }</phonebook> } - val pb2 = - add( labPhoneBook, + val pb2 = + add( labPhoneBook, <entry> - <name>Kim</name> + <name>Kim</name> <phone where="work"> +41 21 111 11 11</phone> </entry> ); diff --git a/docs/examples/xml/phonebook/phonebook1.scala b/docs/examples/xml/phonebook/phonebook1.scala index 3a7a165202..316c6c1995 100644 --- a/docs/examples/xml/phonebook/phonebook1.scala +++ b/docs/examples/xml/phonebook/phonebook1.scala @@ -1,16 +1,16 @@ /* examples/phonebook/phonebook1.scala */ -package phonebook +package phonebook object phonebook1 { - val labPhoneBook = + val labPhoneBook = <phonebook> <descr> - This is the <b>phonebook</b> of the + This is the <b>phonebook</b> of the <a href="http://acme.org">ACME</a> corporation. </descr> <entry> - <name>Burak Emir</name> + <name>Burak Emir</name> <phone where="work">+41 21 693 68 67</phone> </entry> </phonebook>; diff --git a/docs/examples/xml/phonebook/phonebook2.scala b/docs/examples/xml/phonebook/phonebook2.scala index ba50379369..2a708daf7c 100644 --- a/docs/examples/xml/phonebook/phonebook2.scala +++ b/docs/examples/xml/phonebook/phonebook2.scala @@ -8,18 +8,18 @@ object phonebook2 { /** adds an entry to a phonebook */ def add( p: Node, newEntry: Node ): Node = p match { - case <phonebook>{ ch @ _* }</phonebook> => + case <phonebook>{ ch @ _* }</phonebook> => <phonebook>{ ch }{ newEntry }</phonebook> } - val pb2 = - add( phonebook1.labPhoneBook, + val pb2 = + add( phonebook1.labPhoneBook, <entry> - <name>Kim</name> + <name>Kim</name> <phone where="work">+41 21 111 11 11</phone> </entry> ); - def main( args: Array[String] ) = + def main( args: Array[String] ) = Console.println( pb2 ) } diff --git a/docs/examples/xml/phonebook/phonebook3.scala b/docs/examples/xml/phonebook/phonebook3.scala index 0dfae351b5..12f2deaa79 100644 --- a/docs/examples/xml/phonebook/phonebook3.scala +++ b/docs/examples/xml/phonebook/phonebook3.scala @@ -17,57 +17,57 @@ object phonebook3 { import xml.Utility.{trim,trimProper} //removes whitespace nodes, which are annoying in matches - for( val c <- ch ) yield + for( val c <- ch ) yield trimProper(c) match { // if the node is the particular entry we are looking for, return an updated copy - case x @ <entry><name>{ Text(Name) }</name>{ ch1 @ _* }</entry> => + case x @ <entry><name>{ Text(Name) }</name>{ ch1 @ _* }</entry> => var updated = false; val ch2 = for(c <- ch1) yield c match { // does it have the phone number? - case y @ <phone>{ _* }</phone> if y \ "@where" == Where => + case y @ <phone>{ _* }</phone> if y \ "@where" == Where => updated = true <phone where={ Where }>{ newPhone }</phone> - + case y => y - + } if( !updated ) { // no, so we add as first entry - + <entry> <name>{ Name }</name> <phone where={ Where }>{ newPhone }</phone> { ch1 } </entry> - + } else { // yes, and we changed it as we should - + <entry> { ch2 } </entry> - - } + + } // end case x @ <entry>... - + // other entries are copied without changing them - case x => + case x => x - + } } ; // for ... yield ... returns an Iterator[Node] - + // decompose phonebook, apply updates phonebook match { case <phonebook>{ ch @ _* }</phonebook> => <phonebook>{ copyOrChange( ch.iterator ) }</phonebook> } - + } - val pb2 = + val pb2 = change( phonebook1.labPhoneBook, "John", "work", "+41 55 555 55 55" ); val pp = new PrettyPrinter( 80, 5 ); diff --git a/docs/examples/xml/phonebook/verboseBook.scala b/docs/examples/xml/phonebook/verboseBook.scala index 611cf5370e..2dcb155480 100644 --- a/docs/examples/xml/phonebook/verboseBook.scala +++ b/docs/examples/xml/phonebook/verboseBook.scala @@ -1,24 +1,24 @@ /* examples/xml/phonebook/verboseBook.scala */ -package phonebook +package phonebook object verboseBook { - import scala.xml.{ UnprefixedAttribute, Elem, Node, Null, Text, TopScope } + import scala.xml.{ UnprefixedAttribute, Elem, Node, Null, Text, TopScope } - val pbookVerbose = + val pbookVerbose = Elem(null, "phonebook", Null, TopScope, Elem(null, "descr", Null, TopScope, - Text("This is a "), + Text("This is a "), Elem(null, "b", Null, TopScope, Text("sample")), Text("description") ), Elem(null, "entry", Null, TopScope, Elem(null, "name", Null, TopScope, Text("Burak Emir")), - Elem(null, "phone", new UnprefixedAttribute("where","work", Null), TopScope, + Elem(null, "phone", new UnprefixedAttribute("where","work", Null), TopScope, Text("+41 21 693 68 67")) ) ) - def main(args: Array[String]) = + def main(args: Array[String]) = Console.println( pbookVerbose ) } diff --git a/project/build/AdditionalResources.scala b/project/build/AdditionalResources.scala index edb4c4e9a2..d83d45b218 100644 --- a/project/build/AdditionalResources.scala +++ b/project/build/AdditionalResources.scala @@ -9,7 +9,7 @@ import AdditionalResources._ */ trait AdditionalResources { self : BasicLayer => - + def writeProperties: Option[String] = { def write0(steps: List[Step]): Option[String] = steps match { case x :: xs => x match { @@ -29,18 +29,18 @@ object AdditionalResources { * A FileFilter that defines what are the files that will be copied */ lazy val basicFilter = "*.tmpl" | "*.xml" | "*.js" | "*.css" | "*.properties" | "*.swf" | "*.png" - implicit def stringToGlob(s: String): NameFilter = GlobFilter(s) + implicit def stringToGlob(s: String): NameFilter = GlobFilter(s) } trait ResourcesToCopy { self : CompilationStep => - + def getResources(from: Path, filter: FileFilter): PathFinder = (from ##)** filter def getResources(from: Path): PathFinder = getResources(from, AdditionalResources.basicFilter) - + def copyDestination: Path def filesToCopy: PathFinder - + def copy = { log.info("Copying files for "+name) try { FileUtilities.copy(filesToCopy.get, copyDestination, log) } @@ -59,12 +59,12 @@ trait PropertiesToWrite { def writeProperties: Option[String] ={ import java.io._ import java.util.Properties - + val properties = new Properties - def insert(list: List[(String, String)]): Unit = + def insert(list: List[(String, String)]): Unit = list foreach { case (k, v) => properties.setProperty(k, v) } - + try { insert(propertyList) val destFile = propertyDestination.asFile diff --git a/project/build/BasicLayer.scala b/project/build/BasicLayer.scala index b03637ad4d..b333131d51 100644 --- a/project/build/BasicLayer.scala +++ b/project/build/BasicLayer.scala @@ -8,18 +8,18 @@ import ScalaBuildProject._ * @author Grégory Moix */ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, previousLayer: Option[BasicLayer]) - extends ScalaBuildProject + extends ScalaBuildProject with ReflectiveProject - with AdditionalResources + with AdditionalResources with LayerCompilation - with BuildInfoEnvironment + with BuildInfoEnvironment with ForkSBT { layer => - + // All path values must be lazy in order to avoid initialization issues (sbt way of doing things) def buildInfoEnvironmentLocation: Path = outputRootPath / ("build-"+name+".properties") - + val forkProperty = "scala.sbt.forked" def isDebug = info.logger atLevel Level.Debug def isForked = System.getProperty(forkProperty) != null @@ -30,13 +30,13 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev lazy val copyright = property[String] lazy val partestVersionNumber = property[Version] - + lazy val nextLayer: Option[BasicLayer] = None - def packingDestination : Path = layerOutput / "pack" + def packingDestination : Path = layerOutput / "pack" lazy val libsDestination = packingDestination/ "lib" lazy val packedStarrOutput = outputRootPath / "pasta" lazy val requiredPluginsDirForCompilation = layerOutput / "misc" / "scala-devel" / "plugins" - + def compilerAdditionalJars: List[Path] = Nil def libraryAdditionalJars: List[Path] = Nil @@ -54,7 +54,7 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev def buildLayer = externalCompilation orElse writeProperties lazy val build = compile - + lazy val compile = task(buildLayer) dependsOn startLayer /** @@ -64,7 +64,7 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev * is finished. */ lazy val finishLayer: ManagedTask = task(None) dependsOn compile - + def cleaningList = List( layerOutput, layerEnvironment.envBackingPath, @@ -76,7 +76,7 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev // We use super.task, so cleaning is done in every case, even when locked lazy val clean: Task = nextLayer match { case Some(next) => super.task(cleanFiles) dependsOn next.clean - case _ => super.task(cleanFiles) + case _ => super.task(cleanFiles) } lazy val cleanBuild = task(cleanFiles orElse buildLayer) dependsOn startLayer @@ -91,13 +91,13 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev def outputCompilerJar = compilerConfig.packagingConfig.jarDestination def outputLibraryJar = libraryWS.packagingConfig.jarDestination def outputPartestJar = partestConfig.packagingConfig.jarDestination - def outputScalapJar = scalapConfig.packagingConfig.jarDestination + def outputScalapJar = scalapConfig.packagingConfig.jarDestination def scalapOutput = scalapConfig.outputDirectory def swingOutput = swingConfig.outputDirectory def swingSrcDir = swingConfig.srcDir // CONFIGURATION OF THE COMPILATION STEPS - + /** * Configuration of the core library compilation */ @@ -109,7 +109,7 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev def copyDestination = outputDirectory def filesToCopy = getResources(srcDir) - + def propertyDestination = outputDirectory / "library.properties" def propertyList = ("version.number",versionNumber) :: ("copyright.string", copyright.value) :: Nil } @@ -139,7 +139,7 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev new PackagingConfiguration(libsDestination / compilerJarName, List(outputDirectory ##), manifest , compilerAdditionalJars) } lazy val starrPackagingConfig = new PackagingConfiguration(packedStarrOutput/compilerJarName, List(outputDirectory ##)) - + } //// ADDTIONNAL LIBRARIES //// @@ -161,7 +161,7 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev def label = "["+layer.name+"] dbc library" def options: Seq[String] = Seq() def dependencies = libraryConfig :: Nil - + lazy val packagingConfig = new PackagingConfiguration( libsDestination / dbcJarName, List(outputDirectory ##) @@ -207,7 +207,7 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev def dependencies = libraryConfig :: compilerConfig :: Nil val decoderProperties = (srcDir ## ) / "decoder.properties" - + lazy val packagingConfig = new PackagingConfiguration( libsDestination / scalapJarName, List(outputDirectory ##, decoderProperties) @@ -231,9 +231,9 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev ("version.number", partestVersionNumber.value.toString), ("copyright.string", copyright.value) ) - - lazy val packagingConfig = new PackagingConfiguration(libsDestination / partestJarName, List(outputDirectory ##)) - + + lazy val packagingConfig = new PackagingConfiguration(libsDestination / partestJarName, List(outputDirectory ##)) + } ///// PLUGINS CONFIGURATION //////// @@ -243,9 +243,9 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev def projectRoot: Path = pathLayout.projectRoot def sources: Path = pathLayout.srcDir / "continuations" / "plugin" def analysis: Path = pathLayout.analysisOutput / "continuations" / "plugin" - def output: Path = pathLayout.classesOutput / "continuations" / "plugin" + def output: Path = pathLayout.classesOutput / "continuations" / "plugin" } - + new CompilationStep("continuation-plugin", config, log) with ResourcesToCopy with EarlyPackaging { def label = "["+layer.name+"] continuation plugin" def dependencies = libraryConfig :: compilerConfig :: Nil @@ -270,9 +270,9 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev def projectRoot: Path = pathLayout.projectRoot def sources: Path = pathLayout.srcDir / "continuations" / "library" def analysis: Path = pathLayout.analysisOutput / "continuations" / "library" - def output: Path = pathLayout.classesOutput / "continuations" / "library" + def output: Path = pathLayout.classesOutput / "continuations" / "library" } - + new CompilationStep("continuation-library", config, log) { def label = "["+layer.name+"] continuation library" def dependencies = libraryConfig :: compilerConfig :: continuationPluginConfig :: Nil @@ -287,10 +287,10 @@ abstract class BasicLayer(val info: ProjectInfo, val versionNumber: String, prev // Grouping compilation steps def minimalCompilation = false // It must be true for locker because we do not need to compile everything - + def libraryWS: WrapperStep with Packaging def toolsWS: WrapperStep - lazy val pluginsWS = new WrapperStep(continuationPluginConfig :: continuationLibraryConfig :: Nil) + lazy val pluginsWS = new WrapperStep(continuationPluginConfig :: continuationLibraryConfig :: Nil) lazy val allSteps = new WrapperStep(libraryWS :: compilerConfig :: pluginsWS :: toolsWS :: Nil) } diff --git a/project/build/BuildInfoEnvironment.scala b/project/build/BuildInfoEnvironment.scala index a7f3d4ba96..fc1c436c33 100644 --- a/project/build/BuildInfoEnvironment.scala +++ b/project/build/BuildInfoEnvironment.scala @@ -12,10 +12,10 @@ trait BuildInfoEnvironment { // use the project's Logger for any properties-related logging def log = self.log - // the properties file will be read/stored + // the properties file will be read/stored def envBackingPath = buildInfoEnvironmentLocation // define some properties lazy val lastCompilerVersion: Property[String] = propertyOptional[String]("") - } + } } diff --git a/project/build/Comparator.scala b/project/build/Comparator.scala index 32b1a516c6..7400788ba9 100644 --- a/project/build/Comparator.scala +++ b/project/build/Comparator.scala @@ -26,21 +26,21 @@ object Comparator { val originPaths = filter(origin).get - + val bufferSize = 1024 val originBuffer = new Array[Byte](bufferSize) val destBuffer = new Array[Byte](bufferSize) - + for (originPath <- originPaths.filter(! _.isDirectory)){ log.debug("origin :" + originPath.absolutePath) val destPath = getMappedPath(originPath, dest) log.debug("dest :" + destPath.absolutePath) - var equalNow = true + var equalNow = true val originFile = originPath.asFile val destFile = destPath.asFile if (originFile.canRead && destFile.canRead) { - + val originStream = new FileInputStream(originFile) val destStream = new FileInputStream(destFile) var originRemaining = originStream.read(originBuffer) @@ -63,7 +63,7 @@ object Comparator { } else reportMissing(originFile) - + } if(allEqualNow) None else Some("There were differences between "+origin.absolutePath+ " and "+ dest.absolutePath) } diff --git a/project/build/Compilation.scala b/project/build/Compilation.scala index 9a313cab07..d581b2b736 100644 --- a/project/build/Compilation.scala +++ b/project/build/Compilation.scala @@ -58,7 +58,7 @@ trait Compilation { } /** - * When we finishe to compile a step we want to jar if necessary in order to + * When we finishe to compile a step we want to jar if necessary in order to * be able to load plugins for the associated library */ def earlyPackaging(step: CompilationStep): Option[String] = step match { diff --git a/project/build/CompilationStep.scala b/project/build/CompilationStep.scala index d6310a9646..000dca0234 100644 --- a/project/build/CompilationStep.scala +++ b/project/build/CompilationStep.scala @@ -14,7 +14,7 @@ abstract class CompilationStep(val name: String, val pathConfig: PathConfig, log // Utility methods (for quick access, ...) final def srcDir = pathConfig.sources - + // Methods required for the compilation def log: Logger = logger final def sourceRoots : PathFinder = pathConfig.sources diff --git a/project/build/ForkSBT.scala b/project/build/ForkSBT.scala index 986c2166dc..b30e35e61f 100644 --- a/project/build/ForkSBT.scala +++ b/project/build/ForkSBT.scala @@ -16,7 +16,7 @@ trait ForkSBT { import java.lang.management.ManagementFactory ManagementFactory.getRuntimeMXBean().getInputArguments().toList } - + private var extraJVMArgs: List[String] = Nil def withJVMArgs[T](args: String*)(body: => T): T = { val saved = extraJVMArgs @@ -27,16 +27,16 @@ trait ForkSBT { // Set a property in forked sbts to inhibit possible forking cycles. def markForked = "-D" + forkProperty + "=true" - + /** Forks a new process to run "sbt task task ...": */ def forkTasks(tasks: String*): Boolean = { require (!isForked, "Tried to fork but sbt is already forked: " + tasks.mkString(" ")) - + val sbtJar = System.getProperty("java.class.path") val sbtMain = "xsbt.boot.Boot" // ok, much of anything. val args = jvmArguments ++ Seq(markForked, "-classpath", sbtJar, sbtMain) ++ tasks - + log.info("Forking: " + args.mkString("java ", " ", "")) Fork.java(None, args, StdoutOutput) == 0 } diff --git a/project/build/Packer.scala b/project/build/Packer.scala index fde5a732a9..73db5567b6 100644 --- a/project/build/Packer.scala +++ b/project/build/Packer.scala @@ -7,14 +7,14 @@ import FileUtilities._ object Packer { - + /** * A filter that exclude files that musn't be in a jar file. */ // We must exclude the manifest because we generate it automatically, and when we add multiples other jars, they could have // also a manifest files each, resulting in conflicts for the FileUtilities.jar(..) method def jarPattern(path: PathFinder) = path.descendentsExcept(AllPassFilter, (".*" - ".") || HiddenFileFilter || new ExactFilter("MANIFEST.MF")).get - + def createJar(j: Packaging, log: Logger): Option[String] = createJar(j.packagingConfig, log, jarPattern _, true) def createJar(j: PackagingConfiguration, log: Logger): Option[String] = createJar(j, log, jarPattern _, true) @@ -26,7 +26,7 @@ object Packer { def pack0(content: Iterable[Path])= jar(content.flatMap(filter(_)), j.jarDestination, j.manifest, false, log) j.jarsToInclude match { - case Nil => pack0(j.content) + case Nil => pack0(j.content) case list if addIncludedLibs => { withTemporaryDirectory(log) { tmp: File => val tmpPath = Path.fromFile(tmp) @@ -41,7 +41,7 @@ object Packer { } } case _ => pack0(j.content) - + } } @@ -53,9 +53,9 @@ object Packer { */ trait Packer { self: BasicLayer => - + def libraryToCopy: List[Path] = Nil - + /** * The actual pack task. */ @@ -72,7 +72,7 @@ trait Packer { } def copy0 ={ - copyFile(manifestPath,packingDestination/"META-INF"/"MANIFEST.MF", log) orElse { + copyFile(manifestPath,packingDestination/"META-INF"/"MANIFEST.MF", log) orElse { copy(libraryToCopy, packingDestination , true, true, log) match { case Right(_) => None case Left(e) => Some(e) @@ -91,7 +91,7 @@ class PackagingConfiguration(val jarDestination: Path, val content: Iterable[Pat } trait Packaging extends Step { - def packagingConfig: PackagingConfiguration + def packagingConfig: PackagingConfiguration } trait WrapperPackaging extends Packaging { @@ -106,7 +106,7 @@ trait WrapperPackaging extends Packaging { } } getContent(dependencies.toList, Nil) - } + } } /** diff --git a/project/build/Partest.scala b/project/build/Partest.scala index 78d35ef65c..7771c6f208 100755 --- a/project/build/Partest.scala +++ b/project/build/Partest.scala @@ -12,7 +12,7 @@ class TestSet(val SType: TestSetType.Value, val kind: String, val description: S f.partition((f: File) => files.elements.exists((e: File) => f == e)) } } - + object TestSet { def apply(sType: TestSetType.Value, kind: String, description: String, files: PathFinder)= new TestSet(sType, kind, description, filter(files)) def filter(p: PathFinder): Array[File] =( p --- p **(HiddenFileFilter || GlobFilter("*.obj")||GlobFilter("*.log"))).getFiles.toArray @@ -31,7 +31,7 @@ trait PartestRunner { import Partest.runTest import TestSetType._ - + lazy val testRoot = projectRoot / "test" lazy val testFiles = testRoot / "files" ## lazy val testLibs = testFiles / "lib" @@ -50,7 +50,7 @@ trait PartestRunner { // lazy val negContinuationTest = TestSet(Continuations,"neg", "Compiling continuations files that are expected to fail", testFiles / "continuations-neg" * ("*.scala" || DirectoryFilter)) // lazy val runContinuationTest = TestSet(Continuations,"run", "Compiling and running continuations files", testFiles / "continuations-run" ** ("*.scala" )) - // + // // lazy val continuationScalaOpts = ( // "-Xpluginsdir " + // continuationPluginConfig.packagingConfig.jarDestination.asFile.getParent + @@ -58,9 +58,9 @@ trait PartestRunner { // ) lazy val testSuiteFiles: List[TestSet] = List( - posFilesTest, negFilesTest, runFilesTest, jvmFilesTest, resFilesTest, - buildmanagerFilesTest, - //scalacheckFilesTest, + posFilesTest, negFilesTest, runFilesTest, jvmFilesTest, resFilesTest, + buildmanagerFilesTest, + //scalacheckFilesTest, shootoutFilesTest, scalapFilesTest, specializedFilesTest ) @@ -71,11 +71,11 @@ trait PartestRunner { // + (("continuations-neg",negContinuationTest),("continuations-run", runContinuationTest)) private lazy val partestOptions = List("-failed") - + private lazy val partestCompletionList: Seq[String] = { val len = testFiles.asFile.toString.length + 1 - - filesTestMap.keys.toList ++ partestOptions ++ + + filesTestMap.keys.toList ++ partestOptions ++ (filesTestMap.values.toList flatMap (_.files) map (_.toString take len)) } @@ -85,7 +85,7 @@ trait PartestRunner { outputLibraryJar, (outputLibraryJar +++ outputCompilerJar +++ outputPartestJar +++ outputScalapJar +++ antJar +++ jlineJar +++ (testLibs * "*.jar")).get, testRoot, - tests, + tests, None ) @@ -107,11 +107,11 @@ trait PartestRunner { failedOnly, true, isDebug, log ) } - + def partestDebugProp = if (isDebug) List("-Dpartest.debug=true") else Nil - + lazy val externalPartest = task { args => task { if (isForked) partest(args).run @@ -132,9 +132,9 @@ trait PartestRunner { setOptions(xs, acc) case x :: xs => setOptions(xs, x :: acc) - case _ => acc + case _ => acc } - + def resolveSets(l: List[String], rem: List[String], acc: List[TestSet]): (List[String], List[TestSet]) = { def searchSet(arg: String): Option[TestSet] = filesTestMap get arg @@ -146,13 +146,13 @@ trait PartestRunner { case Nil => (rem, acc) } } - + def resolveFiles(l: List[String], sets: List[TestSet]):(List[String], List[TestSet]) = { def resolve0(filesToResolve: List[File], setsToSearchIn: List[TestSet], setAcc: List[TestSet]):(List[String], List[TestSet])= { filesToResolve match { case Nil => (Nil, setAcc) // If we have no files left to resolve, we can return the list of the set we have case list => { - setsToSearchIn match { + setsToSearchIn match { case Nil => (list.map(_.toString), setAcc)// If we already had search all sets to find a match, we return the list of the files that where problematic and the set we have case x :: xs => { val (found, notFound)= x.splitContent(list) @@ -166,19 +166,19 @@ trait PartestRunner { } } } - + } - + resolve0(l.map(Path.fromString(testFiles, _).asFile), filesTestMap.values.toList, sets) } val keys = setOptions(args.toList, Nil) - + if (keys.isEmpty) { task { runPartest(testSuiteFiles, None, failedOnly) } } else { - val (fileNames, sets) = resolveSets(keys, Nil, Nil) + val (fileNames, sets) = resolveSets(keys, Nil, Nil) val (notFound, allSets) = resolveFiles(fileNames, sets) if (!notFound.isEmpty) log.info("Don't know what to do with : \n"+notFound.mkString("\n")) @@ -191,11 +191,11 @@ trait PartestRunner { // } // this is the case where there were only config options, we will run the standard test suite // } // else { - // val (fileNames, sets) = resolveSets(keys, Nil, Nil) + // val (fileNames, sets) = resolveSets(keys, Nil, Nil) // val (notFound, allSets) = resolveFiles(fileNames, sets) // if (!notFound.isEmpty) // log.info("Don't know what to do with : \n"+notFound.mkString("\n")) - // + // // val (std, continuations) = allSets partition (_.SType == TestSetType.Std) // task { // runPartest(std, None, failedOnly) orElse { @@ -214,7 +214,7 @@ object Partest { javacmd: Option[File], javaccmd: Option[File], scalacOpts: Option[String], - timeout: Option[String], + timeout: Option[String], showDiff: Boolean, showLog: Boolean, runFailed: Boolean, @@ -222,10 +222,10 @@ object Partest { debug: Boolean, log: Logger ): Option[String] = { - + if (debug) log.setLevel(Level.Debug) - + if (config.classpath.isEmpty) return Some("The classpath is empty") @@ -256,14 +256,14 @@ object Partest { } def setFileManagerStringProperty(name: String, value: String) { - log.debug("Setting partest property :"+name+" to :"+value) + log.debug("Setting partest property :"+name+" to :"+value) val setMethod = fileManager.getClass.getMethod(name+"_$eq", Array(classOf[String]): _*) setMethod.invoke(fileManager, Array(value).asInstanceOf[Array[Object]]: _*) } // System.setProperty("partest.srcdir", "files") - + setFileManagerBooleanProperty("showDiff", showDiff) setFileManagerBooleanProperty("showLog", showLog) setFileManagerBooleanProperty("failed", runFailed) @@ -281,7 +281,7 @@ object Partest { type TFSet = (Array[File], String, String) val testFileSets = config.tests - + def resultsToStatistics(results: Iterable[(_, Int)]): (Int, Int) = { val (files, failures) = results map (_._2 == 0) partition (_ == true) def count(i: Iterable[_]): Int ={ @@ -293,7 +293,7 @@ object Partest { } (count(files), count(failures)) } - + def runSet(set: TestSet): (Int, Int, Iterable[String]) = { val (files, name, msg) = (set.files, set.kind, set.description) @@ -311,7 +311,7 @@ object Partest { case (path, 1) => path + " [FAILED]" case (path, 2) => path + " [TIMOUT]" }) - + val r =(succs, fails, failed) config.junitReportDir match { @@ -319,9 +319,9 @@ object Partest { val report = testReport(name, results, succs, fails) scala.xml.XML.save(d/name+".xml", report) } - case None => + case None => } - + r } } @@ -330,7 +330,7 @@ object Partest { val allSuccesses = _results.map (_._1).foldLeft(0)( _ + _ ) val allFailures = _results.map (_._2).foldLeft(0)( _ + _ ) val allFailedPaths = _results flatMap (_._3) - + def f(msg: String): Option[String] = if (errorOnFailed && allFailures > 0) { Some(msg) @@ -346,7 +346,7 @@ object Partest { else "Test suite finished with no failures." f(msg) - + } private def oneResult(res: (String, Int)) = @@ -355,9 +355,9 @@ object Partest { case 0 => scala.xml.NodeSeq.Empty case 1 => <failure message="Test failed"/> case 2 => <failure message="Test timed out"/> - } + } }</testcase> - + private def testReport(kind: String, results: Iterable[(String, Int)], succs: Int, fails: Int) = <testsuite name ={kind} tests ={(succs + fails).toString} failures ={fails.toString}> <properties/> diff --git a/project/build/PathConfig.scala b/project/build/PathConfig.scala index eccd0faf07..3ed56846f9 100644 --- a/project/build/PathConfig.scala +++ b/project/build/PathConfig.scala @@ -1,6 +1,6 @@ import sbt._ -/** +/** * An abstract class for grouping all different paths that are needed to * compile the a CompilationStep * @author Grégory Moix @@ -21,7 +21,7 @@ trait SimpleOutputLayout { def outputDir: Path lazy val classesOutput = outputDir / PathConfig.classes lazy val analysisOutput = outputDir / PathConfig.analysis - + } class PathLayout(val projectRoot: Path, val outputDir: Path) extends SimpleOutputLayout { diff --git a/project/build/SVN.scala b/project/build/SVN.scala index 6a64e727f9..427469eb64 100644 --- a/project/build/SVN.scala +++ b/project/build/SVN.scala @@ -14,7 +14,7 @@ class SVN(root: Path) { * It assumes that svn or git is installed on the running computer. Return 0 if it was not * able to found the revision number */ - def getRevisionNumber: Int = getSvn orElse getGit getOrElse 0 + def getRevisionNumber: Int = getSvn orElse getGit getOrElse 0 def getSvn: Option[Int] = { /** Doing this the hard way trying to suppress the svn error message * on stderr. Could not figure out how to do it simply in sbt. @@ -22,15 +22,15 @@ class SVN(root: Path) { val pb = new java.lang.ProcessBuilder("svn", "info") pb directory root.asFile pb redirectErrorStream true - + Process(pb).lines_! foreach { case GitSvnRegex(rev) => return Some(rev.toInt) case _ => () } None } - - def getGit: Option[Int] = + + def getGit: Option[Int] = try { Some(Process(GitSvnRevTool.toString, root).!!.trim.toInt) } catch { case _: Exception => None } } diff --git a/project/build/ScalaBuildProject.scala b/project/build/ScalaBuildProject.scala index a94206006e..250ad7a429 100644 --- a/project/build/ScalaBuildProject.scala +++ b/project/build/ScalaBuildProject.scala @@ -3,10 +3,10 @@ import ScalaBuildProject._ abstract class ScalaBuildProject extends Project { - lazy val projectRoot = info.projectPath + lazy val projectRoot = info.projectPath lazy val layerOutput = outputRootPath / name lazy val pathLayout = new PathLayout(projectRoot, layerOutput) - + lazy val manifestPath = projectRoot/"META-INF"/"MANIFEST.MF" lazy val lib = projectRoot / "lib" diff --git a/project/build/ScalaSBTBuilder.scala b/project/build/ScalaSBTBuilder.scala index 00e56515e7..81c7860020 100644 --- a/project/build/ScalaSBTBuilder.scala +++ b/project/build/ScalaSBTBuilder.scala @@ -19,15 +19,15 @@ class ScalaSBTBuilder(val info: ProjectInfo) * incremental build, which means sbt doesn't get used at all, so this is better.) */ System.setProperty("sbt.intransitive", "true") - + // Required by BasicDependencyProject def fullUnmanagedClasspath(config: Configuration) = unmanagedClasspath override def dependencies: Iterable[Project] = ( - info.dependencies ++ - locker.dependencies ++ - quick.dependencies ++ - strap.dependencies ++ + info.dependencies ++ + locker.dependencies ++ + quick.dependencies ++ + strap.dependencies ++ libs.dependencies ) override def shouldCheckOutputDirectories = false @@ -52,11 +52,11 @@ class ScalaSBTBuilder(val info: ProjectInfo) lazy val pasta = quick.pasta.describedAs(pastaTaskDescription) lazy val stabilityTest = strap.stabilityTest.describedAs(stabilityTestTaskDescription) lazy val test = quick.externalPartest.describedAs(partestTaskDescription) - + // Non-standard names for tasks chosen earlier which I point at the standard ones. lazy val build = compile lazy val partest = test - + // Top level variables /** @@ -73,7 +73,7 @@ class ScalaSBTBuilder(val info: ProjectInfo) } def getVersion: String = projectVersion.value.toString takeWhile (_ != '-') mkString def getRevision: Int = new SVN(info.projectPath) getRevisionNumber - + getVersion+".r"+getRevision+"-b"+getTimeString } @@ -115,11 +115,11 @@ class ScalaSBTBuilder(val info: ProjectInfo) } else action } - + def deleteLock = FileUtilities.clean(lockFile, log) def createLock = { log.info("locking "+name) - FileUtilities.touch(lockFile, log) + FileUtilities.touch(lockFile, log) } /** @@ -156,13 +156,13 @@ class ScalaSBTBuilder(val info: ProjectInfo) override lazy val packingDestination: Path = outputRootPath /"palo" - override lazy val libraryWS = { + override lazy val libraryWS = { new WrapperStep(libraryConfig :: Nil) with WrapperPackaging { lazy val packagingConfig = new PackagingConfiguration(libsDestination/libraryJarName, jarContent) } } override val minimalCompilation = true - override lazy val pluginsWS: WrapperStep = new WrapperStep(Nil) + override lazy val pluginsWS: WrapperStep = new WrapperStep(Nil) override lazy val toolsWS = new WrapperStep(Nil) } @@ -175,20 +175,20 @@ class ScalaSBTBuilder(val info: ProjectInfo) with Packer with ScalaTools with Scaladoc { override lazy val nextLayer = Some(strap) - + lazy val instantiationCompilerJar = previous.compilerOutput lazy val instantiationLibraryJar = previous.libraryOutput override lazy val packingDestination: Path = outputRootPath/ "pack" - + override def libraryToCopy = jlineJar :: Nil override def compilerAdditionalJars = msilJar :: fjbgJar :: Nil override def libraryAdditionalJars = forkJoinJar :: Nil - + override def cleaningList = packedStarrOutput :: super.cleaningList - + override lazy val libraryWS = new WrapperStep(libraryConfig :: actorsConfig :: dbcConfig :: swingConfig :: Nil) with Packaging { def jarContent = List(libraryConfig , actorsConfig, continuationLibraryConfig).map(_.outputDirectory ##) @@ -213,9 +213,9 @@ class ScalaSBTBuilder(val info: ProjectInfo) createJar(compilerConfig.starrPackagingConfig, log) } lazy val pasta = task { - createNewStarrJar + createNewStarrJar }.dependsOn(build) - + lazy val newStarr = task { val files = (packedStarrOutput ##) * "*.jar" FileUtilities.copy(files.get, lib, true, log) match { @@ -233,7 +233,7 @@ class ScalaSBTBuilder(val info: ProjectInfo) lazy val binQuick = tools(layerOutput / "bin", quickBinClasspath).dependsOn(finishLayer) lazy val binPack = tools(packingDestination / "bin", packBinClasspath).dependsOn(pack) } - + /** * Definition of what is specific to the strap layer @@ -246,7 +246,7 @@ class ScalaSBTBuilder(val info: ProjectInfo) override lazy val libraryWS = new WrapperStep(libraryConfig :: actorsConfig :: dbcConfig :: swingConfig :: Nil) with WrapperPackaging { lazy val packagingConfig = new PackagingConfiguration(libsDestination/libraryJarName, Set()) - + } override lazy val toolsWS = new WrapperStep(scalacheckConfig :: scalapConfig :: partestConfig :: Nil) @@ -260,7 +260,7 @@ class ScalaSBTBuilder(val info: ProjectInfo) lazy val stabilityTest = task { log.warn("Stability test must be run on a clean build in order to yield correct results.") - compare + compare }.dependsOn(finishLayer) } @@ -270,8 +270,8 @@ class ScalaSBTBuilder(val info: ProjectInfo) class LibsBuilder(val info: ProjectInfo) extends ScalaBuildProject with ReflectiveProject with Compilation with BuildInfoEnvironment { override def dependencies = info.dependencies override def watchPaths = info.projectPath / "src" ** ("*.scala" || "*.java" ||AdditionalResources.basicFilter) // Support of triggered execution at project level - - + + def buildInfoEnvironmentLocation: Path = outputRootPath / ("build-"+name+".properties") def instantiationCompilerJar: Path = locker.compilerOutput @@ -285,13 +285,13 @@ class ScalaSBTBuilder(val info: ProjectInfo) val required = "1.6" if (version.startsWith(required)) None else Some("Incompatible java version : required "+required) } - - + + private def simpleBuild(step: CompilationStep with Packaging)= task { import Packer._ compile(step) orElse createJar(step, log) }.dependsOn(locker.finishLayer) - + private def copyJar(step: CompilationStep with Packaging, name: String) = task { FileUtilities.copyFile(step.packagingConfig.jarDestination, lib/name, log) } @@ -309,18 +309,18 @@ class ScalaSBTBuilder(val info: ProjectInfo) override def sources: PathFinder = sourceRoots.descendentsExcept("*.java", ".svn") def dependencies = Seq() def options = Seq() - override def javaOptions = Seq("-target","1.5","-source","1.5","-g") + override def javaOptions = Seq("-target","1.5","-source","1.5","-g") lazy val packagingConfig = new PackagingConfiguration(libsDestination/forkjoinJarName, List(outputDirectory ##)) } - + lazy val fjbgConfig = new CompilationStep("fjbg", pathLayout, log) with Packaging { def label = "new fjbg library" - override def sources: PathFinder = sourceRoots.descendentsExcept("*.java", ".svn") + override def sources: PathFinder = sourceRoots.descendentsExcept("*.java", ".svn") def dependencies = Seq() def options = Seq() override def javaOptions = Seq("-target","1.5","-source","1.4","-g") lazy val packagingConfig = new PackagingConfiguration(libsDestination/fjbgJarName, List(outputDirectory ##)) - + } lazy val msilConfig = new CompilationStep("msil", pathLayout, log) with Packaging { @@ -329,9 +329,9 @@ class ScalaSBTBuilder(val info: ProjectInfo) def dependencies = Seq() override def classpath = super.classpath +++ quick.libraryOutput def options = Seq() - override def javaOptions = Seq("-target","1.5","-source","1.4","-g") + override def javaOptions = Seq("-target","1.5","-source","1.4","-g") lazy val packagingConfig = new PackagingConfiguration(libsDestination/msilJarName, List(outputDirectory ##)) - + } def cleaningList = layerOutput :: layerEnvironment.envBackingPath :: Nil @@ -339,7 +339,7 @@ class ScalaSBTBuilder(val info: ProjectInfo) def cleanFiles = FileUtilities.clean(cleaningList, true, log) lazy val clean: Task = task {cleanFiles}// We use super.task, so cleaning is done in every case, even when locked - + } } object ScalaSBTBuilder { diff --git a/project/build/ScalaTools.scala b/project/build/ScalaTools.scala index 9148177a96..d74639d63a 100644 --- a/project/build/ScalaTools.scala +++ b/project/build/ScalaTools.scala @@ -159,7 +159,7 @@ trait ScalaTools { val fsc = new ToolConfiguration("fsc", destination,"scala.tools.nsc.CompileClient", "",defaultJavaFlags, "", classpath) val scalap = new ToolConfiguration("scalap",destination, "scala.tools.scalap.Main", "",defaultJavaFlags, "", classpath) - + val toolList = scala :: scalac :: scaladoc :: fsc :: scalap :: Nil def process(list: List[ToolConfiguration]): Option[String] = list match { diff --git a/project/build/Scaladoc.scala b/project/build/Scaladoc.scala index eae006c45f..39bcb5226e 100644 --- a/project/build/Scaladoc.scala +++ b/project/build/Scaladoc.scala @@ -32,7 +32,7 @@ trait Scaladoc { } lazy val classpath ={ (antJar +++ jlineJar +++ msilJar +++ fjbgJar +++ forkJoinJar +++ outputLibraryJar +++ outputCompilerJar +++ outputPartestJar +++ outputScalapJar ).get - + } lazy val scaladoc = task(maybeFork(generateScaladoc, "Error generating scaladoc")) dependsOn pack diff --git a/src/compiler/scala/tools/nsc/interactive/Global.scala b/src/compiler/scala/tools/nsc/interactive/Global.scala index f4894952a1..b1023e3273 100644 --- a/src/compiler/scala/tools/nsc/interactive/Global.scala +++ b/src/compiler/scala/tools/nsc/interactive/Global.scala @@ -154,6 +154,7 @@ class Global(settings: Settings, reporter: Reporter, projectName: String = "") protected[interactive] def getUnit(s: SourceFile): Option[RichCompilationUnit] = { toBeRemoved.synchronized { for (f <- toBeRemoved) { + informIDE("removed: "+s) unitOfFile -= f allSources = allSources filter (_.file != f) } @@ -731,7 +732,7 @@ class Global(settings: Settings, reporter: Reporter, projectName: String = "") val originalTypeParams = sym.owner.typeParams parseAndEnter(unit) val pre = adaptToNewRunMap(ThisType(sym.owner)) - val newsym = pre.decl(sym.name) filter { alt => + val newsym = pre.typeSymbol.info.decl(sym.name) filter { alt => sym.isType || { try { val tp1 = pre.memberType(alt) onTypeError NoType diff --git a/test/attic/files/cli/test2/Main.scala b/test/attic/files/cli/test2/Main.scala index 1d43759fdf..11c878b9c0 100644 --- a/test/attic/files/cli/test2/Main.scala +++ b/test/attic/files/cli/test2/Main.scala @@ -1,5 +1,5 @@ // @info 1 dependency -package test2 +package test2 object Main { def main(args: Array[String]) = { Console.print("2: ") diff --git a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala index c3811601e3..bd75764636 100644 --- a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala +++ b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala @@ -8,15 +8,15 @@ import benchmarks._ /** * All benchmarks are registered here. - * + * * @author prokopec */ trait BenchmarkRegister { - + val benchcreators = LinkedHashSet[BenchCompanion]() - + def register(companion: BenchCompanion) = benchcreators += companion - + // parallel array benchmarks register(parallel_array.ReduceLight) register(parallel_array.ReduceNew) @@ -68,7 +68,7 @@ trait BenchmarkRegister { register(parallel_array.ScanMedium) register(parallel_array.GroupByLight) register(parallel_array.MatrixMultiplication) - + // parallel views register(parallel_view.DummyViewBenchList.Reduce) register(parallel_view.DummyViewBenchList.MediumReduce) @@ -80,7 +80,7 @@ trait BenchmarkRegister { register(parallel_view.DummyViewBenchList.IterationA) register(parallel_view.DummyViewBenchList.IterationZ) register(parallel_view.DummyViewBenchList.IterationP) - + // parallel ranges register(parallel_range.RangeBenches.Reduce) register(parallel_range.RangeBenches.ReduceMedium) @@ -91,11 +91,11 @@ trait BenchmarkRegister { register(parallel_range.RangeBenches.ForeachModifyHeavy) register(parallel_range.RangeBenches.MapLight) register(parallel_range.RangeBenches.MapMedium) - + // array benchmarks register(arrays.ObjectAccess) register(arrays.IntAccess) - + // hash benchmarks register(hashtries.Foreach) register(hashtries.Iterate) @@ -103,14 +103,14 @@ trait BenchmarkRegister { register(hashtries.Lookup) register(hashtries.Combine) register(hashtries.MultipleCombine) - + // parallel hash trie benchmarks register(hashtries.RefParHashTrieBenches.Reduce) register(hashtries.RefParHashTrieBenches.ReduceMedium) register(hashtries.RefParHashTrieBenches.Reduce2) register(hashtries.RefParHashTrieBenches.Map) register(hashtries.RefParHashTrieBenches.Map2) - + // parallel hash table map benchmarks register(hashtables.RefParHashTableBenches.Reduce) register(hashtables.RefParHashTableBenches.Reduce2) @@ -133,7 +133,7 @@ trait BenchmarkRegister { register(hashtables.RefParHashTableSetBenches.HeavyMap) register(hashtables.RefParHashTableSetBenches.Filter) register(hashtables.RefParHashTableSetBenches.FlatMap) - + // general examples register(misc.Coder) register(misc.Loader) @@ -144,7 +144,7 @@ trait BenchmarkRegister { * Serves as an entrypoint to run all the benchmarks. */ object Benchmarking extends BenchmarkRegister { - + def printHelp { println("Must enter at least four arguments: <collection> <benchmark> <size of the collection> <type>") println(" Example: ParArray reduce-light 50000 par") @@ -160,7 +160,7 @@ object Benchmarking extends BenchmarkRegister { println(" `-all` for running sequential, parallel and comparison benchmarks") println(" <parallelism-level> - the level of parallelism used (default 2)") } - + def otherOptions(args: Array[String]) { if (args.length == 0) printHelp else args(0) match { @@ -169,19 +169,19 @@ object Benchmarking extends BenchmarkRegister { case _ => printHelp } } - + def main(args: Array[String]) { if (args.length < 4) { otherOptions(args) return } - + val collname = args(0) val benchname = args(1) val size = if (args(2) == "-default") -1 else args(2).toInt val tpe = args(3) val parlevel = if (args.length >= 5) args(4).toInt else 2 - + // find all benchmarks to run val benches = benchcreators.filter(comp => { (collname, benchname) match { @@ -193,14 +193,14 @@ object Benchmarking extends BenchmarkRegister { }).flatMap(comp => { val collsz = if (size != -1) size else comp.defaultSize if (tpe != "-all") List(comp.apply(collsz, parlevel, tpe)) - else for (benchtype <- "seq" :: "par" :: comp.comparisons) + else for (benchtype <- "seq" :: "par" :: comp.comparisons) yield comp.apply(collsz, parlevel, benchtype) }) - + println("Running benchmarks...") for (b <- benches) b.executeBenchmark } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/Bench.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/Bench.scala index 29a34e513d..e8dfe0ac50 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/Bench.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/Bench.scala @@ -22,88 +22,88 @@ trait BenchCompanion { */ trait Bench extends Benchmark { val size: Int - + val parallelism: Int - + val runWhat: String - + /** * Name of the benchmark. Convention is for it to start with the name of the collection being - * tested, continuing '.' and ending with the name of the specific functionality being benchmarked. + * tested, continuing '.' and ending with the name of the specific functionality being benchmarked. * @return */ def name: String = companion.fullname def collectionName: String = companion.collectionName def benchName: String = companion.benchName - + def companion: BenchCompanion - + def runseq: Unit - + def runpar: Unit - + /** * Describes the number of runs of the test. */ val runs = 10 - + /** * Returns the number of repetitions for this benchmark. */ def repetitionsPerRun = 500 - + /** * Resets the benchmark object. Typically, this means recreating * the collection being tested. */ def reset: Unit - + /** * Returns a map of available comparison tests. */ def comparisons: List[String] = companion.comparisons - + def comparison(name: String): Option[() => Unit] = comparisonMap.get(name) - + def comparisonMap: Map[String, () => Unit] - + def run = runWhat match { case "seq" => for (i <- 0 until repetitionsPerRun) runseq case "par" => for (i <- 0 until repetitionsPerRun) runpar case _ => comparison(runWhat) match { case Some(fun) => for (i <- 0 until repetitionsPerRun) fun() - case None => throw new IllegalArgumentException("Unknown bench option: `" + runWhat + + case None => throw new IllegalArgumentException("Unknown bench option: `" + runWhat + "`, need `seq`, `par` or one of: " + comparisons.mkString("`", "`, `", "`")) } } - + /** * Prints results of the benchmark. May be overidden in benchmarks. */ def printResults {} - + def onEnd {} - + def executeBenchmark = { println("-----------------------") print(name + ", " + runWhat + ", par.=" + parallelism + ", sz=" + niceSize + ": ") - + val times = runBenchmark(runs) - + onEnd - + for (t <- times) print(t + " ") println printResults } - + private def niceSize = if (size < 1000 || size % 1000 != 0) size.toString else size / 1000 + "k" } trait HavingResult[T] extends Bench { var runresult: T = null.asInstanceOf[T] - + abstract override def printResults { println("result: " + (if (runresult != null) runresult else "<not set>")) super.printResults diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Arrays.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Arrays.scala index fd3b4aab08..39232122a9 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Arrays.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Arrays.scala @@ -7,12 +7,12 @@ package scala.collection.parallel.benchmarks.arrays object Arrays { - + @inline def genericApply[T](xs: Array[T], idx: Int): T = xs.asInstanceOf[AnyRef] match { case x: Array[AnyRef] => x(idx).asInstanceOf[T] case _ => genericApplyNotAnyRef(xs, idx) } - + @noinline private def genericApplyNotAnyRef[T](xs: Array[T], idx: Int): T = xs.asInstanceOf[AnyRef] match { case x: Array[Int] => x(idx).asInstanceOf[T] case x: Array[Double] => x(idx).asInstanceOf[T] @@ -25,12 +25,12 @@ object Arrays { case x: Array[Unit] => x(idx).asInstanceOf[T] case null => throw new NullPointerException } - + @inline def apply(xs: AnyRef, idx: Int): Any = xs match { case x: Array[AnyRef] => x(idx).asInstanceOf[Any] case _ => applyNotAnyRef(xs, idx) } - + @noinline private def applyNotAnyRef(xs: AnyRef, idx: Int): Any = xs match { case x: Array[Int] => x(idx).asInstanceOf[Any] case x: Array[Double] => x(idx).asInstanceOf[Any] @@ -43,7 +43,7 @@ object Arrays { case x: Array[Unit] => x(idx).asInstanceOf[Any] case null => throw new NullPointerException } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala index 948ecb419e..81f0e4da03 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala @@ -17,10 +17,10 @@ object IntAccess extends BenchCompanion { class IntAccess(sz: Int, p: Int, what: String) extends Resetting(n => n, sz, p, what) with UnknownManif[Int] { def companion = IntAccess - + def runseq {} def runpar {} - + def runany = { var i = 0 while (i < sz) { @@ -28,7 +28,7 @@ extends Resetting(n => n, sz, p, what) with UnknownManif[Int] { i += 1 } } - + def runcast = { var i = 0 while (i < sz) { @@ -36,7 +36,7 @@ extends Resetting(n => n, sz, p, what) with UnknownManif[Int] { i += 1 } } - + def runmanif = { var i = 0 while (i < sz) { @@ -45,12 +45,12 @@ extends Resetting(n => n, sz, p, what) with UnknownManif[Int] { i += 1 } } - + def op(a: Int) = a < 0 - + def comparisonMap = collection.Map("any" -> runany _, "cast" -> runcast _, "manif" -> runmanif _, "unknown" -> rununknown _) - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/ObjectAccess.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/ObjectAccess.scala index 3cc38f1b58..29251f3719 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/ObjectAccess.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/ObjectAccess.scala @@ -17,10 +17,10 @@ object ObjectAccess extends BenchCompanion { class ObjectAccess(sz: Int, p: Int, what: String) extends Resetting(Dummy(_), sz, p, what) with UnknownManif[Dummy] { def companion = ObjectAccess - + def runseq {} def runpar {} - + def runany = { var i = 0 while (i < sz) { @@ -29,7 +29,7 @@ extends Resetting(Dummy(_), sz, p, what) with UnknownManif[Dummy] { i += 1 } } - + def runcast = { var i = 0 while (i < sz) { @@ -37,7 +37,7 @@ extends Resetting(Dummy(_), sz, p, what) with UnknownManif[Dummy] { i += 1 } } - + def rungenericcast = { var i = 0 while (i < sz) { @@ -45,7 +45,7 @@ extends Resetting(Dummy(_), sz, p, what) with UnknownManif[Dummy] { i += 1 } } - + def runmanif = { var i = 0 while (i < sz) { @@ -54,10 +54,10 @@ extends Resetting(Dummy(_), sz, p, what) with UnknownManif[Dummy] { i += 1 } } - + def comparisonMap = collection.Map("any" -> runany _, "cast" -> runcast _, "gencast" -> rungenericcast _, "manif" -> runmanif _, "unknown" -> rununknown _) - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Resetting.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Resetting.scala index 9e6102fb94..e6feb59fcd 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Resetting.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Resetting.scala @@ -9,14 +9,14 @@ extends Bench { val size = sz val parallelism = p val runWhat = what - + var anyarray: Array[Any] = null var castarray: AnyRef = null var gencastarray: Array[T] = null var manifarray: Array[T] = null - + reset - + def reset = what match { case "any" => anyarray = new Array[Any](sz) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala index d7196c0277..46a28ae111 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala @@ -6,7 +6,7 @@ package scala.collection.parallel.benchmarks.arrays trait UnknownManif[T] { def manifarray: Array[T] def size: Int - + def rununknown { val arr = manifarray val sz = size @@ -17,7 +17,7 @@ trait UnknownManif[T] { i += 1 } } - + def op(d: Any) {} } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala index 4fb76542e1..539e3f6972 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala @@ -6,7 +6,7 @@ package scala.collection.parallel.benchmarks.generic trait Operators[T] { - + def foreachFun: T => Unit def reducer: (T, T) => T def mediumreducer: (T, T) => T @@ -19,13 +19,13 @@ trait Operators[T] { def eachFun: T => Unit def eachPairFun: ((T, T)) => Unit = error("unsupported") def sequence(sz: Int): Seq[T] = error("unsupported") - + } trait IntOperators extends Operators[Int] { - + val foreachFun: Int => Unit = x => () val reducer: (Int, Int) => Int = _ + _ val mediumreducer: (Int, Int) => Int = (a: Int, b: Int) => { @@ -52,7 +52,7 @@ trait IntOperators extends Operators[Int] { val eachFun: Int => Unit = { n => n % 2 == 0 } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala index b14a0b3aab..c39c384927 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala @@ -10,77 +10,77 @@ import scala.collection.SeqView trait ParIterableBenches[T, Coll <: ParIterable[T]] { self => - + def createSequential(sz: Int, p: Int): Iterable[T] def createParallel(sz: Int, p: Int): Coll def nameOfCollection: String def operators: Operators[T] - + trait IterableBenchCompanion extends BenchCompanion { def collectionName = self.nameOfCollection } - + trait IterableBench extends collection.parallel.benchmarks.Bench { protected var seqcoll: Iterable[T] = null protected var parcoll: Coll = null.asInstanceOf[Coll] - + reset - + def reset = runWhat match { case "seq" => this.seqcoll = createSequential(size, parallelism) case "par" => this.parcoll = createParallel(size, parallelism) case _ => } - + def nameOfCollection = self.nameOfCollection def operators = self.operators def createSequential(sz: Int, p: Int) = self.createSequential(size, parallelism) def createParallel(sz: Int, p: Int) = self.createParallel(size, parallelism) def forkJoinPool: scala.concurrent.forkjoin.ForkJoinPool = self.forkJoinPool - + override def printResults { println(" --- Fork join pool state --- ") println("Parallelism: " + forkJoinPool.getParallelism) println("Active threads: " + forkJoinPool.getActiveThreadCount) println("Work stealings: " + forkJoinPool.getStealCount) } - + } - + def forkJoinPool: scala.concurrent.forkjoin.ForkJoinPool - + } trait ParSeqBenches[T, Coll <: ParSeq[T]] extends ParIterableBenches[T, Coll] { self => - + def createSequential(sz: Int, p: Int): Seq[T] - + trait SeqBenchCompanion extends BenchCompanion { def collectionName = self.nameOfCollection } - + trait SeqBench extends IterableBench { def seqcollAsSeq = seqcoll.asInstanceOf[Seq[T]] override def createSequential(sz: Int, p: Int) = self.createSequential(sz, p) } - + } /** Standard benchmarks for collections. - */ + */ trait StandardParIterableBenches[T, Coll <: ParIterable[T]] extends ParIterableBenches[T, Coll] { - + object Reduce extends IterableBenchCompanion { override def defaultSize = 50000 def benchName = "reduce"; def apply(sz: Int, p: Int, w: String) = new Reduce(sz, p, w) } - + class Reduce(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -88,13 +88,13 @@ trait StandardParIterableBenches[T, Coll <: ParIterable[T]] extends ParIterableB def runpar = this.parcoll.reduce(operators.reducer) def companion = Reduce } - + object ReduceMedium extends IterableBenchCompanion { override def defaultSize = 5000 def benchName = "reduce-medium"; def apply(sz: Int, p: Int, w: String) = new ReduceMedium(sz, p, w) } - + class ReduceMedium(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -102,13 +102,13 @@ trait StandardParIterableBenches[T, Coll <: ParIterable[T]] extends ParIterableB def runpar = this.parcoll.reduce(operators.mediumreducer) def companion = ReduceMedium } - + object Map extends IterableBenchCompanion { override def defaultSize = 5000 def benchName = "map"; def apply(sz: Int, p: Int, w: String) = new Map(sz, p, w) } - + class Map(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -116,13 +116,13 @@ trait StandardParIterableBenches[T, Coll <: ParIterable[T]] extends ParIterableB def runpar = this.parcoll.map(operators.mapper) def companion = Map } - + object Filter extends IterableBenchCompanion { override def defaultSize = 5000 def benchName = "filter"; def apply(sz: Int, p: Int, w: String) = new Filter(sz, p, w) } - + class Filter(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -130,21 +130,21 @@ trait StandardParIterableBenches[T, Coll <: ParIterable[T]] extends ParIterableB def runpar = this.parcoll.filter(operators.filterer) def companion = Filter } - + object FlatMap extends IterableBenchCompanion { override def defaultSize = 5000 def benchName = "flatmap"; def apply(sz: Int, p: Int, w: String) = new FlatMap(sz, p, w) } - + class FlatMap(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() def runseq = this.seqcoll.flatMap(operators.flatmapper) def runpar = this.parcoll.flatMap(operators.flatmapper) def companion = FlatMap - } - + } + } @@ -153,21 +153,21 @@ trait StandardParIterableBenches[T, Coll <: ParIterable[T]] extends ParIterableB */ trait ParSeqViewBenches[T, Coll <: ParSeqView[T, ParSeq[T], CollSeq], CollSeq] extends ParSeqBenches[T, Coll] { self => - + trait SeqViewBench extends SeqBench { lazy val seqview: SeqView[T, Seq[T]] = createSeqView(size, parallelism) - + def createSeqView(sz: Int, p: Int) = self.createSeqView(sz, p) } - + def createSeqView(sz: Int, p: Int): SeqView[T, Seq[T]] - + object Iteration extends SeqBenchCompanion { override def defaultSize = 250000 def benchName = "iter" def apply(sz: Int, p: Int, w: String) = new Iteration(sz, p, w) } - + class Iteration(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { def comparisonMap = collection.Map("seqview" -> runseqview _) @@ -178,13 +178,13 @@ self => } def companion = Iteration } - + object IterationS extends SeqBenchCompanion { override def defaultSize = 250000 def benchName = "iter-s" def apply(sz: Int, p: Int, w: String) = new IterationS(sz, p, w) } - + class IterationS(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { def comparisonMap = collection.Map("seqview" -> runseqview _) @@ -199,7 +199,7 @@ self => def benchName = "iter-m" def apply(sz: Int, p: Int, w: String) = new IterationM(sz, p, w) } - + class IterationM(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { def comparisonMap = collection.Map("seqview" -> runseqview _) @@ -208,13 +208,13 @@ self => def runseqview = this.seqview.map(operators.mapper).foreach(operators.eachFun) def companion = IterationM } - + object IterationA extends SeqBenchCompanion { override def defaultSize = 50000 def benchName = "iter-a" def apply(sz: Int, p: Int, w: String) = new IterationA(sz, p, w) } - + class IterationA(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { val appended = operators.sequence(size) @@ -228,13 +228,13 @@ self => def runseqview = this.seqview.++(appended).foreach(operators.eachFun) def companion = IterationA } - + object IterationZ extends SeqBenchCompanion { override def defaultSize = 50000 def benchName = "iter-z" def apply(sz: Int, p: Int, w: String) = new IterationZ(sz, p, w) } - + class IterationZ(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { val zipped = operators.sequence(size) @@ -247,13 +247,13 @@ self => def runseqview = this.seqview.zip(zipped).foreach(operators.eachPairFun) def companion = IterationZ } - + object IterationP extends SeqBenchCompanion { override def defaultSize = 50000 def benchName = "iter-p" def apply(sz: Int, p: Int, w: String) = new IterationP(sz, p, w) } - + class IterationP(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { val patch = operators.sequence(size / 4) @@ -267,13 +267,13 @@ self => def runseqview = this.seqview.patch(size / 4, patch, size / 2).foreach(operators.eachFun) def companion = IterationP } - + object Reduce extends SeqBenchCompanion { override def defaultSize = 50000 def benchName = "reduce"; def apply(sz: Int, p: Int, w: String) = new Reduce(sz, p, w) } - + class Reduce(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { def comparisonMap = collection.Map() @@ -281,13 +281,13 @@ self => def runpar = this.parcoll.reduce(operators.reducer) def companion = Reduce } - + object MediumReduce extends SeqBenchCompanion { override def defaultSize = 50000 def benchName = "reduce-medium"; def apply(sz: Int, p: Int, w: String) = new MediumReduce(sz, p, w) } - + class MediumReduce(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { def comparisonMap = collection.Map() @@ -295,13 +295,13 @@ self => def runpar = this.parcoll.reduce(operators.mediumreducer) def companion = Reduce } - + object ModifyThenReduce extends SeqBenchCompanion { override def defaultSize = 20000 def benchName = "modify-then-reduce"; def apply(sz: Int, p: Int, w: String) = new ModifyThenReduce(sz, p, w) } - + class ModifyThenReduce(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { val toadd = createSequential(size, parallelism) @@ -316,13 +316,13 @@ self => } def companion = ModifyThenReduce } - + object ModifyThenForce extends SeqBenchCompanion { override def defaultSize = 20000 def benchName = "modify-then-force"; def apply(sz: Int, p: Int, w: String) = new ModifyThenForce(sz, p, w) } - + class ModifyThenForce(val size: Int, val parallelism: Int, val runWhat: String) extends SeqBench with SeqViewBench { val toadd = createSequential(size, parallelism) @@ -334,7 +334,7 @@ self => } def companion = ModifyThenForce } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTableSets.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTableSets.scala index 88640f3644..17f0315103 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTableSets.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTableSets.scala @@ -13,18 +13,18 @@ import scala.collection.parallel.mutable.ParHashSet trait ParHashTableSetBenches[T] extends StandardParIterableBenches[T, ParHashSet[T]] { - + def nameOfCollection = "mutable.ParHashSet" def comparisonMap = collection.mutable.Set() val forkJoinPool = new scala.concurrent.forkjoin.ForkJoinPool - + object Map2 extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List() def benchName = "map2"; def apply(sz: Int, p: Int, w: String) = new Map2(sz, p, w) } - + class Map2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { var result: Int = 0 @@ -42,14 +42,14 @@ trait ParHashTableSetBenches[T] extends StandardParIterableBenches[T, ParHashSet println("Size of last result: " + result) } } - + object HeavyMap extends IterableBenchCompanion { override def defaultSize = 5000 override def comparisons = List() def benchName = "heavy-map"; def apply(sz: Int, p: Int, w: String) = new HeavyMap(sz, p, w) } - + class HeavyMap(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { var result: Int = 0 @@ -64,14 +64,14 @@ trait ParHashTableSetBenches[T] extends StandardParIterableBenches[T, ParHashSet def companion = HeavyMap override def repetitionsPerRun = 50 } - + object Reduce2 extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List() def benchName = "reduce2"; def apply(sz: Int, p: Int, w: String) = new Reduce2(sz, p, w) } - + class Reduce2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -79,14 +79,14 @@ trait ParHashTableSetBenches[T] extends StandardParIterableBenches[T, ParHashSet def runpar = this.parcoll.reduce(operators.mediumreducer) def companion = Reduce2 } - + object Foreach extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List() def benchName = "foreach"; def apply(sz: Int, p: Int, w: String) = new Foreach(sz, p, w) } - + class Foreach(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -94,7 +94,7 @@ trait ParHashTableSetBenches[T] extends StandardParIterableBenches[T, ParHashSet def runpar = this.parcoll.pforeach(operators.foreachFun) def companion = Foreach } - + } @@ -102,14 +102,14 @@ trait ParHashTableSetBenches[T] extends StandardParIterableBenches[T, ParHashSet object RefParHashTableSetBenches extends ParHashTableSetBenches[Dummy] { - + object ForeachSet extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List() def benchName = "foreach-set"; def apply(sz: Int, p: Int, w: String) = new ForeachSet(sz, p, w) } - + class ForeachSet(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { val array = new Array[Int](size) @@ -117,22 +117,22 @@ object RefParHashTableSetBenches extends ParHashTableSetBenches[Dummy] { def runseq = for (x <- this.seqcoll) array(x.in) += 1 def runpar = this.parcoll.pforeach { x => array(x.in) += 1 } def companion = ForeachSet - + override def onEnd { for (i <- 0 until array.length) { assert(array(i) == repetitionsPerRun * runs) } } } - + val operators = DummyOperators - + def createSequential(sz: Int, p: Int) = { val ht = new collection.mutable.HashSet[Dummy] for (i <- 0 until sz) ht += new Dummy(i) ht } - + def createParallel(sz: Int, p: Int) = { val phm = new ParHashSet[Dummy] for (i <- 0 until sz) phm += new Dummy(i) @@ -140,5 +140,5 @@ object RefParHashTableSetBenches extends ParHashTableSetBenches[Dummy] { collection.parallel.tasksupport.environment = forkJoinPool phm } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala index bdb1dff56d..79d038bf3d 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala @@ -13,18 +13,18 @@ import scala.collection.parallel.mutable.ParHashMap trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHashMap[K, V]] { - + def nameOfCollection = "mutable.ParHashMap" def comparisonMap = collection.mutable.Map() val forkJoinPool = new scala.concurrent.forkjoin.ForkJoinPool - + object Map2 extends IterableBenchCompanion { override def defaultSize = 40000 override def comparisons = List("jhashtable") def benchName = "map2"; def apply(sz: Int, p: Int, w: String) = new Map2(sz, p, w) } - + class Map2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { var result: Int = 0 @@ -56,13 +56,13 @@ trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHa println("Size of last result: " + result) } } - + object FlatMap2 extends IterableBenchCompanion { override def defaultSize = 5000 def benchName = "flatmap2"; def apply(sz: Int, p: Int, w: String) = new FlatMap2(sz, p, w) } - + class FlatMap2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -70,15 +70,15 @@ trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHa def runseq = this.seqcoll.flatMap(operators.flatmapper) def runpar = this.parcoll.flatMap(operators.flatmapper) def companion = FlatMap2 - } - + } + object HeavyMap extends IterableBenchCompanion { override def defaultSize = 5000 override def comparisons = List() def benchName = "heavy-map"; def apply(sz: Int, p: Int, w: String) = new HeavyMap(sz, p, w) } - + class HeavyMap(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { var result: Int = 0 @@ -93,14 +93,14 @@ trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHa def companion = HeavyMap override def repetitionsPerRun = 50 } - + object Reduce2 extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List() def benchName = "reduce2"; def apply(sz: Int, p: Int, w: String) = new Reduce2(sz, p, w) } - + class Reduce2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -108,14 +108,14 @@ trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHa def runpar = this.parcoll.reduce(operators.mediumreducer) def companion = Reduce2 } - + object Foreach extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List() def benchName = "foreach"; def apply(sz: Int, p: Int, w: String) = new Foreach(sz, p, w) } - + class Foreach(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def comparisonMap = collection.Map() @@ -123,7 +123,7 @@ trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHa def runpar = this.parcoll.pforeach(operators.foreachFun) def companion = Foreach } - + } @@ -131,16 +131,16 @@ trait ParHashTableBenches[K, V] extends StandardParIterableBenches[(K, V), ParHa object RefParHashTableBenches extends ParHashTableBenches[Dummy, Dummy] { - + type DPair = (Dummy, Dummy); - + object ForeachSet extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List() def benchName = "foreach-set"; def apply(sz: Int, p: Int, w: String) = new ForeachSet(sz, p, w) } - + class ForeachSet(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { val array = new Array[Int](size) @@ -148,14 +148,14 @@ object RefParHashTableBenches extends ParHashTableBenches[Dummy, Dummy] { def runseq = for (p <- this.seqcoll) array(p._1.in) += 1 def runpar = this.parcoll.pforeach { p => array(p._1.in) += 1 } def companion = ForeachSet - + override def onEnd { for (i <- 0 until array.length) { assert(array(i) == repetitionsPerRun * runs) } } } - + object operators extends Operators[DPair] { def gcd(a: Int, b: Int): Int = { val result = if (b == 0) a else { @@ -214,13 +214,13 @@ object RefParHashTableBenches extends ParHashTableBenches[Dummy, Dummy] { dp._1.dummy } } - + def createSequential(sz: Int, p: Int) = { val ht = new collection.mutable.HashMap[Dummy, Dummy] for (i <- 0 until sz) ht += ((new Dummy(i), new Dummy(i))) ht } - + def createParallel(sz: Int, p: Int) = { val phm = new ParHashMap[Dummy, Dummy] for (i <- 0 until sz) phm += ((new Dummy(i), new Dummy(i))) @@ -228,5 +228,5 @@ object RefParHashTableBenches extends ParHashTableBenches[Dummy, Dummy] { collection.parallel.tasksupport.environment = forkJoinPool phm } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala index 3a070fb6ff..96598840fd 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala @@ -17,7 +17,7 @@ class Combine(val size: Int, val parallelism: Int, val runWhat: String) extends for (i <- size until 2 * size) thattrie += ((i, i)) val thatmap = new HashMap[Int, Int] for (i <- size until 2 * size) thatmap += ((i, i)) - + def runpar = throw new UnsupportedOperationException def runseq = runhashtrie def runhashtrie = { diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Construct.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Construct.scala index 7c15df1fe2..f65a349ec5 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Construct.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Construct.scala @@ -14,7 +14,7 @@ import collection.mutable.HashMap class Construct(val size: Int, val parallelism: Int, val runWhat: String) extends Bench { def reset {} - + def runpar = throw new UnsupportedOperationException def runseq = throw new UnsupportedOperationException def runhashmap = { @@ -25,7 +25,7 @@ class Construct(val size: Int, val parallelism: Int, val runWhat: String) extend var hashtrie = new HashTrie[Int, Int] for (i <- 0 until size) hashtrie += ((i, i)) } - + def companion = Construct def comparisonMap = Map("hashmap" -> runhashmap _, "hashtrie" -> runhashtrie _) } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala index dbbe64e290..79ebd0e98c 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala @@ -12,7 +12,7 @@ import collection.mutable.HashMap trait IntInit extends Bench { var hashmap: HashMap[Int, Int] = null var hashtrie: HashTrie[Int, Int] = null - + reset def reset = runWhat match { case "hashmap" => initHashMap diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala index 033c211849..c08d6b5cad 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala @@ -14,7 +14,7 @@ import collection.mutable.HashMap class MultipleCombine(val size: Int, val parallelism: Int, val runWhat: String) extends Bench with IntInit { var combines = 10 - + var thattries = new Array[HashTrie[Int, Int]](combines) def initTries = for (r <- 0 until combines) { var thattrie = new HashTrie[Int, Int] @@ -22,7 +22,7 @@ class MultipleCombine(val size: Int, val parallelism: Int, val runWhat: String) thattries(r) = thattrie } initTries - + val thatmaps = new Array[HashMap[Int, Int]](10) def initMaps = for (r <- 0 until combines) { var thatmap = new HashMap[Int, Int] @@ -30,7 +30,7 @@ class MultipleCombine(val size: Int, val parallelism: Int, val runWhat: String) thatmaps(r) = thatmap } initMaps - + override def repetitionsPerRun = 25 def runpar = throw new UnsupportedOperationException def runseq = runhashtrie diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala index 3976b72d1a..dc8804cf57 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala @@ -13,18 +13,18 @@ import scala.collection.parallel.immutable.ParHashMap trait ParHashTrieBenches[K, V] extends StandardParIterableBenches[(K, V), ParHashMap[K, V]] { - + def nameOfCollection = "immutable.ParHashMap" def comparisonMap = collection.Map() val forkJoinPool = new scala.concurrent.forkjoin.ForkJoinPool - + object Map2 extends IterableBenchCompanion { override def defaultSize = 5000 override def comparisons = List("jhashtable", "hashtable") def benchName = "map2"; def apply(sz: Int, p: Int, w: String) = new Map2(sz, p, w) } - + class Map2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { var result: Int = 0 @@ -65,14 +65,14 @@ trait ParHashTrieBenches[K, V] extends StandardParIterableBenches[(K, V), ParHas println("Size of last result: " + result) } } - + object Reduce2 extends IterableBenchCompanion { override def defaultSize = 50000 override def comparisons = List("hashtable") def benchName = "reduce2"; def apply(sz: Int, p: Int, w: String) = new Reduce2(sz, p, w) } - + class Reduce2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { private var ht: collection.mutable.HashMap[K, V] = _ @@ -86,9 +86,9 @@ trait ParHashTrieBenches[K, V] extends StandardParIterableBenches[(K, V), ParHas } def companion = Reduce2 } - + def createHashTable(sz: Int): collection.mutable.HashMap[K, V] - + } @@ -96,9 +96,9 @@ trait ParHashTrieBenches[K, V] extends StandardParIterableBenches[(K, V), ParHas object RefParHashTrieBenches extends ParHashTrieBenches[Dummy, Dummy] { - + type DPair = (Dummy, Dummy) - + object operators extends Operators[DPair] { def gcd(a: Int, b: Int): Int = { val result = if (b == 0) a else { @@ -156,13 +156,13 @@ object RefParHashTrieBenches extends ParHashTrieBenches[Dummy, Dummy] { dp._1.dummy } } - + def createSequential(sz: Int, p: Int) = { var ht = new collection.immutable.HashMap[Dummy, Dummy] for (i <- 0 until sz) ht += ((new Dummy(i), new Dummy(i))) ht } - + def createParallel(sz: Int, p: Int) = { var pht = new ParHashMap[Dummy, Dummy] for (i <- 0 until sz) pht += ((new Dummy(i), new Dummy(i))) @@ -170,11 +170,11 @@ object RefParHashTrieBenches extends ParHashTrieBenches[Dummy, Dummy] { collection.parallel.tasksupport.environment = forkJoinPool pht } - + def createHashTable(sz: Int) = { val hm = collection.mutable.HashMap[Dummy, Dummy]() for (i <- 0 until sz) hm.put(new Dummy(i), new Dummy(i)) hm } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala index 5ed0ca317d..9cc1f4a0f6 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala @@ -11,27 +11,27 @@ import collection.parallel._//immutable._ class SeqCoder(words: List[String]) { - + private val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ") - + /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ - private val charCode: Map[Char, Char] = + private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** Maps a word to the digit string it represents, + + /** Maps a word to the digit string it represents, * e.g. `Java` -> `5282` */ private def wordCode(word: String): String = word.toUpperCase map charCode - - /** A map from digit strings to the words that represent + + /** A map from digit strings to the words that represent * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) */ - val wordsForNum: Map[String, Seq[String]] = + val wordsForNum: Map[String, Seq[String]] = (words groupBy wordCode).map(t => (t._1, t._2.toSeq)) withDefaultValue Seq() - + /** All ways to encode a number as a list of words */ - def encode(number: String): Set[Seq[String]] = + def encode(number: String): Set[Seq[String]] = if (number.isEmpty) Set(Seq()) else { val splits = (1 to number.length).toSet @@ -49,34 +49,34 @@ class SeqCoder(words: List[String]) { }) r } - - /** Maps a number to a list of all word phrases that can + + /** Maps a number to a list of all word phrases that can * represent it */ def translate(number: String) = encode(number)// map (_ mkString " ") - + def ??? : Nothing = throw new UnsupportedOperationException } class ParCoder(words: List[String]) { - + private val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ") - + /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ - private val charCode: Map[Char, Char] = + private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** Maps a word to the digit string it represents, + + /** Maps a word to the digit string it represents, * e.g. `Java` -> `5282` */ private def wordCode(word: String): String = word.toUpperCase map charCode - - /** A map from digit strings to the words that represent + + /** A map from digit strings to the words that represent * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) */ - val wordsForNum: Map[String, Seq[String]] = + val wordsForNum: Map[String, Seq[String]] = (words groupBy wordCode).map(t => (t._1, t._2)) withDefaultValue Seq() - + /** All ways to encode a number as a list of words */ def encode(number: String): Set[Seq[String]] = if (number.length > 12) { if (number.isEmpty) ParSet(ParSeq()) @@ -99,13 +99,13 @@ class ParCoder(words: List[String]) { } yield word +: rest } } - - /** Maps a number to a list of all word phrases that can + + /** Maps a number to a list of all word phrases that can * represent it */ def translate(number: String) = { encode(number)// map (_ mkString " ") } - + def ??? : Nothing = throw new UnsupportedOperationException } @@ -122,26 +122,26 @@ object Coder extends BenchCompanion { class Coder(val size: Int, val parallelism: Int, val runWhat: String) extends Bench { def companion = Coder - + var seqcoder: SeqCoder = null var parcoder: ParCoder = null - + override def repetitionsPerRun = 1 - + val code = "23284374729473626268379762538" - + reset - + def runseq { val translations = seqcoder.translate(code) //println(translations) } - + def runpar { val translations = parcoder.translate(code) //println(translations) } - + def reset = runWhat match { case "seq" => seqcoder = new SeqCoder(Dictionary.wordlist) @@ -155,8 +155,8 @@ class Coder(val size: Int, val parallelism: Int, val runWhat: String) extends Be println("Translation check: " + t.size) //println(t) } - + def comparisonMap = Map() - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Loader.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Loader.scala index 1b73f2b868..c7e4723e64 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Loader.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Loader.scala @@ -25,42 +25,42 @@ object Loader extends BenchCompanion { class Loader(val size: Int, val parallelism: Int, val runWhat: String) extends Bench { def companion = Loader - + override def repetitionsPerRun = 1 - + reset - + val wa = Dictionary.wordarray ++ Dictionary.wordarray ++ Dictionary.wordarray - + def runseq { val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ" ) val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit def wordCode(word: String): String = (word.toUpperCase.toList map charCode).toString - + wa groupBy wordCode } - + def runpar { val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ" ) val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit def wordCode(word: String): String = (word.toUpperCase.toList map charCode).toString - + wa.par groupBy wordCode } - + def reset = runWhat match { case "seq" => case "par" => collection.parallel.tasksupport.environment.asInstanceOf[concurrent.forkjoin.ForkJoinPool].setParallelism(parallelism) } - + def comparisonMap = Map() - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala index 446f4a6735..2eaddd7572 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala @@ -11,7 +11,7 @@ object AggregateLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new AggregateLight(sz, parallelism, what) override def comparisons = List() override def defaultSize = 200000 - + val seqop = (a: Cont, b: Cont) => b val combop = (a: Cont, b: Cont) => a } @@ -22,7 +22,7 @@ extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Co def companion = AggregateLight override def repetitionsPerRun = 350 override val runs = 20 - + def runpar = pa.aggregate(new Cont(0))(companion.seqop, companion.combop) def runseq = sequentialReduce(companion.seqop, sz, new Cont(0)) override def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CopyToArray.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CopyToArray.scala index 0f743eeb96..033921d451 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CopyToArray.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CopyToArray.scala @@ -14,7 +14,7 @@ class CopyToArray(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = CopyToArray val destarr = new Array[Any](sz) - + def runpar = pa.copyToArray(destarr, 0, sz) def runseq = sequentialCopyToArray(destarr, 0, sz) def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Corresponds.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Corresponds.scala index ae50958bdc..c9b3f07ff3 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Corresponds.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Corresponds.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Boolean] { def companion = Corresponds override def repetitionsPerRun = 400 - + val same = { val p = new collection.parallel.mutable.ParArray[Cont](sz) for (i <- 0 until sz) p(i) = what match { @@ -21,11 +21,11 @@ with HavingResult[Boolean] { } p } - + def runpar = runresult = pa.corresponds(same)(corr) def runseq = runresult = sequentialCorresponds(same, corr, sz) override def comparisonMap = collection.Map() - + val corr = (a: Cont, b: Cont) => a.in == b.in } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountHeavy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountHeavy.scala index 722d721288..7438be8447 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountHeavy.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountHeavy.scala @@ -8,12 +8,12 @@ object CountHeavy extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new CountHeavy(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 16 - + val pred = (a: Cont) => heavyCheck(a) val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = heavyCheck(a) } - + def heavyCheck(a: Cont) = { val n = a.in (n until (n + 200)).map(checkPrime(_)).reduceLeft(_ && _) @@ -28,7 +28,7 @@ object CountHeavy extends Companion { class CountHeavy(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = CountHeavy - + def runpar = pa.count(CountHeavy.pred) def runseq = sequentialCount(CountHeavy.pred, sz) def runjsr = jsrarr.withFilter(CountHeavy.predjsr).size diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala index 569b304660..21c64358b4 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala @@ -13,7 +13,7 @@ object CountLight extends Companion { class CountLight(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = CountLight - + def runpar = pa.count(Cont.pred) def runseq = sequentialCount(Cont.pred, sz) def runjsr = jsrarr.withFilter(Cont.predjsr).size diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountList.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountList.scala index 0d9550d2bd..9c6ac19229 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountList.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountList.scala @@ -8,13 +8,13 @@ object CountList extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new CountList(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 1000 - + val listCreator = (i: Int) => (0 until (i % 50 + 50)).toList val pred = (lst: List[Int]) => check(lst) val predjsr = new extra166y.Ops.Predicate[List[Int]] { def op(lst: List[Int]) = check(lst) } - + def check(lst: List[Int]) = lst.foldLeft(0)((sum, n) => sum + n * n) % 2 == 0 } @@ -22,7 +22,7 @@ class CountList(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, CountList.listCreator, new Array[Any](_), classOf[List[Int]]) { def companion = CountList override def repetitionsPerRun = 250 - + def runpar = pa.count(CountList.pred) def runseq = sequentialCount(CountList.pred, sz) def runjsr = jsrarr.withFilter(CountList.predjsr).size diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DiffHalf.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DiffHalf.scala index bc0ff3fe74..4b27569239 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DiffHalf.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DiffHalf.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = DiffHalf override def repetitionsPerRun = 400 - + val similar = { val p = new collection.parallel.mutable.ParArray[Cont](sz) for (i <- 0 until sz) p(i) = what match { @@ -21,11 +21,11 @@ with HavingResult[Int] { } p.drop(p.size / 2) } - + def runpar = runresult = pa.diff(similar).size def runseq = runresult = sequentialDiff(similar, sz).size override def comparisonMap = collection.Map() - + val corr = (a: Cont, b: Cont) => a.in == b.in } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DropMany.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DropMany.scala index d80ba91a29..443ef2b500 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DropMany.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DropMany.scala @@ -17,7 +17,7 @@ with HavingResult[Int] { def companion = DropMany override def repetitionsPerRun = 400 runresult = -1 - + def runpar = runresult = pa.drop(pa.size / 2).size def runseq = runresult = sequentialDrop(sz / 2, sz).size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ExistsLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ExistsLight.scala index 401ab38e0b..2749216735 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ExistsLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ExistsLight.scala @@ -9,7 +9,7 @@ object ExistsLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new ExistsLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 200000 - + val pred = (a: Cont) => a.in < 0 val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = a.in < 0 @@ -21,7 +21,7 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Boolean] { def companion = ExistsLight runresult = false - + def runpar = runresult = pa.exists(ExistsLight.pred) def runseq = runresult = sequentialExists(ExistsLight.pred, sz) def runjsr = runresult = jsrarr.withFilter(ExistsLight.predjsr).size > 0 diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FilterLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FilterLight.scala index ee6545efbf..d4c8395951 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FilterLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FilterLight.scala @@ -9,12 +9,12 @@ object FilterLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new FilterLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 10000 - + val pred = (a: Cont) => check(a.in) val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = check(a.in) } - + def check(n: Int) = { var res = n // var i = 1 @@ -33,7 +33,7 @@ with HavingResult[Int] { override def repetitionsPerRun = 250 override val runs = 30 runresult = -1 - + def runpar = runresult = pa.filter(FilterLight.pred).size def runseq = runresult = sequentialFilter(FilterLight.pred, sz).size def runjsr = runresult = { jsrarr.withFilter(FilterLight.predjsr).all.size } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FindLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FindLight.scala index 11cb6c69fd..f08ddf29e3 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FindLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FindLight.scala @@ -9,7 +9,7 @@ object FindLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new FindLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 200000 - + val pred = (a: Cont) => a.in < -10 val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = a.in < -10 @@ -21,7 +21,7 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Option[Cont]] { def companion = FindLight runresult = None - + def runpar = runresult = pa.find(FindLight.pred) def runseq = runresult = sequentialFind(FindLight.pred, sz) def runjsr = runresult = { jsrarr.withFilter(FindLight.predjsr).size > 0; None } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FlatMapLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FlatMapLight.scala index b1f8942d94..01ecbbf016 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FlatMapLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FlatMapLight.scala @@ -10,14 +10,14 @@ object FlatMapLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new FlatMapLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 10000 - + def fun = (a: Cont) => { List(1, 2, 3, 4, a.in) } } class FlatMapLight(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = FlatMapLight - + def runpar = pa.flatMap(FlatMapLight.fun) def runseq = sequentialFlatMap(FlatMapLight.fun, sz) def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallHeavy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallHeavy.scala index c354f65ec9..0d61e5aeb5 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallHeavy.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallHeavy.scala @@ -8,12 +8,12 @@ object ForallHeavy extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new ForallHeavy(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 16 - + val pred = (a: Cont) => heavyCheck(a) val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = heavyCheck(a) } - + def heavyCheck(a: Cont) = { val init = a.in + 1 var cnt = init @@ -31,7 +31,7 @@ object ForallHeavy extends Companion { class ForallHeavy(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = ForallHeavy - + def runpar = pa.forall(ForallHeavy.pred) def runseq = sequentialForall(ForallHeavy.pred, sz) def runjsr = jsrarr.withFilter(ForallHeavy.predjsr).size == sz diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallLight.scala index 079f2ccc32..19671d2bc4 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallLight.scala @@ -8,7 +8,7 @@ object ForallLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new ForallLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 200000 - + val pred = (a: Cont) => a.in >= 0 val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = a.in >= 0 @@ -18,7 +18,7 @@ object ForallLight extends Companion { class ForallLight(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = ForallLight - + def runpar = pa.forall(ForallLight.pred) def runseq = sequentialForall(ForallLight.pred, sz) def runjsr = jsrarr.withFilter(ForallLight.predjsr).size == sz diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallQuickStop.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallQuickStop.scala index 310105dd41..624266e49d 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallQuickStop.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallQuickStop.scala @@ -8,7 +8,7 @@ object ForallQuickStop extends Companion { def benchName = "forall-quickstop"; def apply(sz: Int, parallelism: Int, what: String) = new ForallQuickStop(sz, parallelism, what) override def defaultSize = 200000 - + val pred = (a: Cont) => a.in != 50 val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = a.in != 50 @@ -19,7 +19,7 @@ class ForallQuickStop(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Boolean] { def companion = ForallQuickStop - + def runpar = runresult = pa.forall(ForallQuickStop.pred) def runseq = runresult = sequentialForall(ForallQuickStop.pred, sz) def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallStop80k.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallStop80k.scala index cbfa6ebb42..c7462ed04b 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallStop80k.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallStop80k.scala @@ -8,7 +8,7 @@ object ForallStop80k extends Companion { def benchName = "forall-stop80k"; def apply(sz: Int, parallelism: Int, what: String) = new ForallStop80k(sz, parallelism, what) override def defaultSize = 100000 - + val pred = (a: Cont) => a.in != 80000 val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = a.in != 80000 @@ -19,7 +19,7 @@ class ForallStop80k(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Boolean] { def companion = ForallStop80k - + def runpar = runresult = pa.forall(ForallStop80k.pred) def runseq = runresult = sequentialForall(ForallStop80k.pred, sz) def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachHeavy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachHeavy.scala index 4d7c48b0b4..d1a3f8085c 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachHeavy.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachHeavy.scala @@ -8,18 +8,18 @@ object ForeachHeavy extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new ForeachHeavy(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 2048 - + @volatile var z = 0 - + val fun = (a: Cont) => heavyOperation(a) val funjsr = new extra166y.Ops.Procedure[Cont] { def op(a: Cont) = heavyOperation(a) } - + def heavyOperation(a: Cont) { checkPrime(a.in + 1000000000) } - + def checkPrime(n: Int) = { var isPrime = true var i = 2 @@ -37,7 +37,7 @@ class ForeachHeavy(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = ForeachHeavy override def repetitionsPerRun = 250 - + def runpar = pa.pforeach(ForeachHeavy.fun) def runseq = sequentialForeach(ForeachHeavy.fun, sz) def runjsr = jsrarr.apply(ForeachHeavy.funjsr) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachLight.scala index 5ef41d8d5b..3d0c5c45c4 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachLight.scala @@ -8,7 +8,7 @@ object ForeachLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new ForeachLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 200000 - + val fun = (a: Cont) => a.num = a.in val funjsr = new extra166y.Ops.Procedure[Cont] { def op(a: Cont) = a.num = a.in @@ -18,7 +18,7 @@ object ForeachLight extends Companion { class ForeachLight(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = ForeachLight - + def runpar = pa.pforeach(ForeachLight.fun) def runseq = sequentialForeach(ForeachLight.fun, sz) def runjsr = jsrarr.apply(ForeachLight.funjsr) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/GroupBy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/GroupBy.scala index ec83f2982b..a90227a6e4 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/GroupBy.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/GroupBy.scala @@ -8,7 +8,7 @@ object GroupByLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new GroupByLight(sz, parallelism, what) override def comparisons = List() override def defaultSize = 10000 - + val fun = (a: Cont) => a.in % 32 } @@ -18,10 +18,10 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Int] { def companion = GroupByLight runresult = -1 - + val array = new Array[Cont](sz) for (i <- 0 until sz) array(i) = new Cont(i) - + def runpar = runresult = pa.groupBy(GroupByLight.fun).size def runseq = runresult = array.asInstanceOf[Array[Cont]].groupBy(GroupByLight.fun).size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IndexWhere.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IndexWhere.scala index e8a74286ae..3a22bdd1db 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IndexWhere.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IndexWhere.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = IndexWhere override def repetitionsPerRun = 400 - + def runpar = runresult = pa.indexWhere(IndexWhere.pred2, 0) def runseq = runresult = sequentialIndexWhere(IndexWhere.pred2, 0, sz) override def comparisonMap = collection.Map() @@ -22,7 +22,7 @@ object IndexWhere extends Companion { def benchName = "index-where"; def apply(sz: Int, p: Int, what: String) = new IndexWhere(sz, p, what) override def comparisons = List() - + val pred = (c: Cont) => { var in = c.in var i = 2 diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IntersectHalf.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IntersectHalf.scala index fa0b9f8baf..e429fb288e 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IntersectHalf.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IntersectHalf.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = IntersectHalf override def repetitionsPerRun = 400 - + val similar = { val p = new collection.parallel.mutable.ParArray[Cont](sz) for (i <- 0 until sz) p(i) = what match { @@ -21,11 +21,11 @@ with HavingResult[Int] { } p.drop(p.size / 2) } - + def runpar = runresult = pa.intersect(similar).size def runseq = runresult = sequentialIntersect(similar, sz).size override def comparisonMap = collection.Map() - + val corr = (a: Cont, b: Cont) => a.in == b.in } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/LastIndexWhere.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/LastIndexWhere.scala index dbba807390..427afa5571 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/LastIndexWhere.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/LastIndexWhere.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = LastIndexWhere override def repetitionsPerRun = 400 - + def runpar = runresult = pa.lastIndexWhere(LastIndexWhere.pred2, pa.size - 1) def runseq = runresult = sequentialLastIndexWhere(LastIndexWhere.pred2, sz - 1, sz) override def comparisonMap = collection.Map() @@ -22,7 +22,7 @@ object LastIndexWhere extends Companion { def benchName = "last-index-where"; def apply(sz: Int, p: Int, what: String) = new LastIndexWhere(sz, p, what) override def comparisons = List() - + val pred = (c: Cont) => { var in = c.in var i = 2 diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MapLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MapLight.scala index f6a5985cb7..1451f6a57a 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MapLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MapLight.scala @@ -8,7 +8,7 @@ object MapLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new MapLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 100000 - + def fun = (a: Cont) => { a } def funjsr = new extra166y.Ops.Op[Cont, Cont] { def op(a: Cont) = { a } @@ -18,7 +18,7 @@ object MapLight extends Companion { class MapLight(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = MapLight - + def runpar = pa.map(MapLight.fun) def runseq = sequentialMap(MapLight.fun, sz) // def runseq = sequentialMapOpt(MapLight.fun, sz) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala index 29d6ff7580..5f902ff483 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala @@ -16,46 +16,46 @@ class MatrixMultiplication(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = MatrixMultiplication collection.parallel.tasksupport.environment = forkjoinpool - + val a = Matrix.unit[Int](sz) val b = Matrix.unit[Int](sz) var c = new Matrix[Int](sz) - + def runpar = c = a * b //{ c.assignProduct(a, b) } //; println("--------"); c.output } def runseq = throw new UnsupportedOperationException def comparisonMap = collection.Map() - + class Matrix[T](n: Int)(implicit num: Numeric[T], man: Manifest[T]) { val array = new Array[T](n * n) - + def apply(y: Int, x: Int) = array(y * n + x) - + def update(y: Int, x: Int, elem: T) = array(y * n + x) = elem - + def *(b: Matrix[T]) = { val m = new Matrix[T](n) m.assignProduct(this, b) m } - + def assignProduct(a: Matrix[T], b: Matrix[T]) = { val range = ParRange(0, n * n, 1, false) for (i <- range) this(i / n, i % n) = calcProduct(a, b, i / n, i % n); } - + private def calcProduct(a: Matrix[T], b: Matrix[T], y: Int, x: Int): T = { import num._ var sum = zero for (i <- 0 until n) sum += a(y, i) * b(i, x) sum } - + def output = for (y <- 0 until n) { for (x <- 0 until n) print(this(y, x)) println } } - + object Matrix { def unit[T](n: Int)(implicit num: Numeric[T], man: Manifest[T]) = { val m = new Matrix[T](n) @@ -63,7 +63,7 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { m } } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MinLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MinLight.scala index 66cd29807a..a51b5d6176 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MinLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MinLight.scala @@ -9,7 +9,7 @@ class MinLight(sz: Int, p: Int, what: String) extends Resettable[Int](sz, p, what, (i: Int) => i, new Array[Any](_), classOf[Int]) { def companion = MinLight override def repetitionsPerRun = 400 - + def runpar = pa.min(Ordering[Int]) def runseq = sequentialMin(sz) override def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PadToDouble.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PadToDouble.scala index 26c5dd2114..f8a985c349 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PadToDouble.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PadToDouble.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = PadToDouble override def repetitionsPerRun = 400 - + val similar = { val p = new collection.parallel.mutable.ParArray[Cont](sz) for (i <- 0 until sz) p(i) = what match { @@ -21,11 +21,11 @@ with HavingResult[Int] { } p.drop(p.size / 2) } - + def runpar = runresult = pa.padTo(size * 2, padder).size def runseq = runresult = sequentialPadTo(size * 2, padder, size).size override def comparisonMap = collection.Map() - + val padder = new Cont(0) } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartialMapLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartialMapLight.scala index e06720ae37..57f8536b9e 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartialMapLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartialMapLight.scala @@ -8,7 +8,7 @@ object PartialMapLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new PartialMapLight(sz, parallelism, what) override def comparisons = List() override def defaultSize = 100000 - + def fun: PartialFunction[Cont, Cont] = { case c: Cont if c.in >= 0 => c } @@ -17,7 +17,7 @@ object PartialMapLight extends Companion { class PartialMapLight(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = PartialMapLight - + def runpar = pa.collect(PartialMapLight.fun) def runseq = sequentialPartialMap(PartialMapLight.fun, sz) def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartitionLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartitionLight.scala index c0fb0454ec..b99a25b285 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartitionLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartitionLight.scala @@ -9,12 +9,12 @@ object PartitionLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new PartitionLight(sz, parallelism, what) override def comparisons = Nil override def defaultSize = 20000 - + val pred = (a: Cont) => check(a.in) val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = check(a.in) } - + def check(n: Int) = { var res = n var i = 1 @@ -31,7 +31,7 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Int] { def companion = PartitionLight runresult = -1 - + def runpar = runresult = pa.partition(PartitionLight.pred)._1.size def runseq = runresult = sequentialPartition(PartitionLight.pred, sz)._1.size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PatchHalf.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PatchHalf.scala index 73bbc5ee1e..55cc71f129 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PatchHalf.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PatchHalf.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = PatchHalf override def repetitionsPerRun = 400 - + val similar = { val p = new collection.parallel.mutable.ParArray[Cont](sz) for (i <- 0 until sz) p(i) = what match { @@ -21,7 +21,7 @@ with HavingResult[Int] { } p.drop(p.size / 2) } - + def runpar = runresult = pa.patch(size / 2, similar, 0).size def runseq = runresult = sequentialPatch(size / 2, similar, 0, size).size override def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PlusPlus.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PlusPlus.scala index f9d6e277a5..2574621212 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PlusPlus.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PlusPlus.scala @@ -14,10 +14,10 @@ object PlusPlus extends Companion { class PlusPlus(sz: Int, p: Int, what: String) extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = PlusPlus - + val thatarr = new Array[Cont](sz) val thatpa = new ParArray[Cont](sz) - + def runpar = pa ++ thatpa def runseq = arr ++ thatarr def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceHeavy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceHeavy.scala index 5806dd7831..dd660ba8e0 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceHeavy.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceHeavy.scala @@ -7,7 +7,7 @@ class ReduceHeavy(sz: Int, p: Int, what: String) extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def companion = ReduceHeavy override def repetitionsPerRun = 100 - + def runseq = sequentialReduce(Cont.opheavy, sz, new Cont(0)) def runpar = pa.reduce(Cont.opheavy) def runjsr = jsrarr.reduce(Cont.reducerheavy, new Cont(0)) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceLight.scala index 668590d463..f1f2a32403 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceLight.scala @@ -19,24 +19,24 @@ extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Co def companion = ReduceLight override def repetitionsPerRun = 350 override val runs = 20 - + def runpar = { pa.reduce(Cont.op) // updatePar } - + def runjsr = { jsrarr.reduce(Cont.reducer, new Cont(0)) // updateJsr } - + def runseq = { sequentialReduce(Cont.op, sz, new Cont(0)) // updateSeq } - + override def comparisonMap = collection.Map("jsr" -> runjsr _) - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceList.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceList.scala index db4fb3331f..f095797d1c 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceList.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceList.scala @@ -32,7 +32,7 @@ extends Resettable[List[Int]](sz, p, what, ListCreator, new Array[Any](_), class def companion = ReduceList override def repetitionsPerRun = 10 override val runs = 15 - + def runpar = pa.reduce(ListOps.redop) def runseq = sequentialReduce(ListOps.redop, sz, List[Int]()) def runjsr = jsrarr.reduce(ListOps.reducer, List[Int]()) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceNew.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceNew.scala index c69f64d329..1cf4f4169a 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceNew.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceNew.scala @@ -6,11 +6,11 @@ package scala.collection.parallel.benchmarks.parallel_array /** Tests reduce method using an operator creating an object as a result. */ class ReduceNew(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), +extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) { def companion = ReduceNew override def repetitionsPerRun = 200 - + def runpar = pa.reduce(Cont.opnew) def runseq = sequentialReduce(Cont.opnew, sz, new Cont(0)) def runjsr = jsrarr.reduce(Cont.reducernew, new Cont(0)) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReducePrime.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReducePrime.scala index b6ff69e37b..8fb90981ac 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReducePrime.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReducePrime.scala @@ -16,12 +16,12 @@ object IntOps { val reducer = new extra166y.Ops.Reducer[IntWrap] { def op(a: IntWrap, b: IntWrap) = primereduce(a, b) } - + def primereduce(a: IntWrap, b: IntWrap) = { val check = (checkPrime(a.num), checkPrime(b.num)) if (a.num > b.num) a else b } - + def checkPrime(n: Int) = { var isPrime = true var i = 2 @@ -38,7 +38,7 @@ class ReducePrime(sz: Int, p: Int, what: String) extends Resettable[IntWrap](sz, p, what, IntWrapCreator, new Array[Any](_), classOf[IntWrap]) with HavingResult[IntWrap] { def companion = ReducePrime - + def runseq = runresult = sequentialReduce(IntOps.op, sz, new IntWrap(0)) def runpar = runresult = pa.reduce(IntOps.op) def runjsr = runresult = jsrarr.reduce(IntOps.reducer, new IntWrap(0)) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/RemoveDuplicates.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/RemoveDuplicates.scala index a66d2fb1f8..feb1bd9466 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/RemoveDuplicates.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/RemoveDuplicates.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = RemoveDuplicates override def repetitionsPerRun = 400 - + def runpar = runresult = pa.distinct.size def runseq = runresult = sequentialRemoveDuplicates(size).size override def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Resettable.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Resettable.scala index 957e258ca8..b4403fcb9c 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Resettable.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Resettable.scala @@ -13,37 +13,37 @@ class Cont(val in: Int) { object Cont { val pred = (a: Cont) => a.in > 100 - + val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = a.in > 100 } - + val op = (a: Cont, b: Cont) => { b.num = a.in + b.in b } - + val opnew = (a: Cont, b: Cont) => new Cont(a.in + b.in) - + val opheavy = (a: Cont, b: Cont) => { heavyComputation(a, b) } - + val reducer = new extra166y.Ops.Reducer[Cont] { def op(a: Cont, b: Cont) = { b.num = a.in + b.in b } } - + val reducernew = new extra166y.Ops.Reducer[Cont] { def op(a: Cont, b: Cont) = new Cont(a.in + b.in) } - + val reducerheavy = new extra166y.Ops.Reducer[Cont] { def op(a: Cont, b: Cont) = heavyComputation(a, b) } - + def heavyComputation(a: Cont, b: Cont) = { val f = a.in val s = b.in @@ -59,18 +59,18 @@ object Cont { } } -abstract class Resettable[T](val size: Int, val parallelism: Int, val runWhat: String, +abstract class Resettable[T](val size: Int, val parallelism: Int, val runWhat: String, elemcreator: Int => T, arrcreator: Int => Array[Any], cls: Class[T]) extends Bench with SequentialOps[T] { val forkjoinpool = new scala.concurrent.forkjoin.ForkJoinPool(parallelism) forkjoinpool.setMaximumPoolSize(parallelism) val papool = new jsr166y.ForkJoinPool(parallelism) papool.setMaximumPoolSize(parallelism) - + var pa: ParArray[T] = null var jsrarr: JSR166Array[T] = null reset - + def reset = runWhat match { case "seq" => arr = arrcreator(size) @@ -84,34 +84,34 @@ extends Bench with SequentialOps[T] { for (i <- 0 until size) jsrarr.set(i, elemcreator(i)) case _ => throw new IllegalArgumentException("Unknown type: " + runWhat) } - + var updateCounter = 0 def incUpdateCounter { updateCounter += 1 if (updateCounter > size) updateCounter = 0 } - + def updateSeq { val tmp = arr(updateCounter) arr(updateCounter) = arr(size - updateCounter - 1) arr(size - updateCounter - 1) = tmp incUpdateCounter } - + def updatePar { val tmp = pa(updateCounter) pa(updateCounter) = pa(size - updateCounter - 1) pa(size - updateCounter - 1) = tmp incUpdateCounter } - + def updateJsr { val tmp = jsrarr.get(updateCounter) jsrarr.set(updateCounter, jsrarr.get(size - updateCounter - 1)) jsrarr.set(size - updateCounter - 1, tmp) incUpdateCounter } - + override def printResults { println(" --- Fork join pool state --- ") println("Parallelism: " + forkjoinpool.getParallelism) diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Reverse.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Reverse.scala index 0d00e60731..ec690d4b2d 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Reverse.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Reverse.scala @@ -11,7 +11,7 @@ class Reverse(sz: Int, p: Int, what: String) extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) { def companion = Reverse override def repetitionsPerRun = 400 - + def runpar = pa.reverse def runseq = sequentialReverse(sz) override def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReverseMap.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReverseMap.scala index c9f4a02baa..47ae108c45 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReverseMap.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReverseMap.scala @@ -11,11 +11,11 @@ class ReverseMap(sz: Int, p: Int, what: String) extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) { def companion = ReverseMap override def repetitionsPerRun = 100 - + def runpar = pa.reverseMap(compl) def runseq = sequentialReverseMap(compl, sz) override def comparisonMap = collection.Map() - + val id = (c: Cont) => c val compl = (c: Cont) => { var in = c.in diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SameElementsLong.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SameElementsLong.scala index 8ca0bedfde..d22c4df661 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SameElementsLong.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SameElementsLong.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Boolean] { def companion = SameElementsLong override def repetitionsPerRun = 400 - + val same = { val p = new collection.parallel.mutable.ParArray[Cont](sz) for (i <- 0 until sz) p(i) = what match { @@ -21,7 +21,7 @@ with HavingResult[Boolean] { } p } - + def runpar = runresult = pa.sameElements(same) def runseq = runresult = sequentialSameElements(same, sz) override def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanLight.scala index 85bfabfea7..d0ddf9f70e 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanLight.scala @@ -10,7 +10,7 @@ object ScanLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new ScanLight(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 40000 - + val op = (a: Cont, b: Cont) => { operation(a, b) } @@ -26,7 +26,7 @@ extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Co def companion = ScanLight override def repetitionsPerRun = 50 override val runs = 12 - + def runpar = pa.scan(new Cont(0))(ScanLight.op) def runseq = sequentialScan(new Cont(0), ScanLight.op, sz) def runjsr = jsrarr.cumulate(new extra166y.Ops.Reducer[Cont] { diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanMedium.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanMedium.scala index 73a237189f..a60ba7aa33 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanMedium.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanMedium.scala @@ -10,7 +10,7 @@ object ScanMedium extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new ScanMedium(sz, parallelism, what) override def comparisons = List("jsr") override def defaultSize = 5000 - + val op = (a: Cont, b: Cont) => { operation(a, b) } @@ -35,7 +35,7 @@ extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Co def companion = ScanMedium override def repetitionsPerRun = 50 override val runs = 12 - + def runpar = pa.scan(new Cont(0))(ScanMedium.op) def runseq = sequentialScan(new Cont(0), ScanMedium.op, sz) def runjsr = jsrarr.cumulate(new extra166y.Ops.Reducer[Cont] { diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SegmentLength.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SegmentLength.scala index 1f9041c373..8fae899b45 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SegmentLength.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SegmentLength.scala @@ -12,7 +12,7 @@ extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_ with HavingResult[Int] { def companion = SegmentLength override def repetitionsPerRun = 400 - + def runpar = runresult = pa.segmentLength(SegmentLength.pred2, 0) def runseq = runresult = sequentialSegmentLength(SegmentLength.pred2, 0, sz) override def comparisonMap = collection.Map() @@ -22,7 +22,7 @@ object SegmentLength extends Companion { def benchName = "segment-length"; def apply(sz: Int, p: Int, what: String) = new SegmentLength(sz, p, what) override def comparisons = List() - + val pred = (c: Cont) => { var in = c.in var i = 2 diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala index 18568ab7e9..ba32036002 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala @@ -3,9 +3,9 @@ package scala.collection.parallel.benchmarks.parallel_array trait SequentialOps[T] { - + var arr: Array[Any] = null - + def sequentialReduce(op: (T, T) => T, sz: Int, init: T) = { var i = 0 val until = sz @@ -16,7 +16,7 @@ trait SequentialOps[T] { } sum } - + def sequentialScan(z: T, op: (T, T) => T, sz: Int) = { var outarr = new Array[Any](sz + 1) outarr(0) = z @@ -31,7 +31,7 @@ trait SequentialOps[T] { j += 1 } } - + def sequentialCount(pred: T => Boolean, sz: Int) = { var i = 0 val until = sz @@ -42,7 +42,7 @@ trait SequentialOps[T] { } sum } - + def sequentialForeach[U](f: T => U, sz: Int) = { var i = 0 val until = sz @@ -52,7 +52,7 @@ trait SequentialOps[T] { i += 1 } } - + def sequentialSum[U >: T](sz: Int)(implicit num: Numeric[U]) = { var i = 0 val until = sz @@ -63,7 +63,7 @@ trait SequentialOps[T] { } sum } - + def sequentialMin[U >: T](sz: Int)(implicit ord: Ordering[U]) = { var i = 1 val until = sz @@ -75,12 +75,12 @@ trait SequentialOps[T] { } min } - + def sequentialForall(pred: T => Boolean, sz: Int) = { var i = 0 val until = sz var all = true - while (i < until) { + while (i < until) { if (pred(arr(i).asInstanceOf[T])) i += 1 else { all = false @@ -94,7 +94,7 @@ trait SequentialOps[T] { var i = 0 val until = sz var some = false - while (i < until) { + while (i < until) { if (pred(arr(i).asInstanceOf[T])) { some = true i = until @@ -102,12 +102,12 @@ trait SequentialOps[T] { } some } - + def sequentialFind(pred: T => Boolean, sz: Int) = { var i = 0 val until = sz var opt: Option[T] = None - while (i < until) { + while (i < until) { if (pred(arr(i).asInstanceOf[T])) { opt = Some(arr(i).asInstanceOf[T]) i = until @@ -115,7 +115,7 @@ trait SequentialOps[T] { } opt } - + def sequentialFilter(pred: T => Boolean, sz: Int) = { var i = 0 val buff = new collection.mutable.ArrayBuffer[T] @@ -128,7 +128,7 @@ trait SequentialOps[T] { buff.copyToArray(resarr, 0) resarr } - + def sequentialPartition(pred: T => Boolean, sz: Int) = { var i = 0 val btrue = new collection.mutable.ArrayBuffer[T] @@ -145,7 +145,7 @@ trait SequentialOps[T] { bfalse.copyToArray(resfalse, 0) (restrue, resfalse) } - + def sequentialTakeOpt(n: Int, sz: Int) = { var i = 0 val until = if (n < sz) n else sz @@ -172,7 +172,7 @@ trait SequentialOps[T] { b.copyToArray(res, 0) res } - + def sequentialDrop(n: Int, sz: Int) = { var i = n val b = new collection.mutable.ArrayBuffer[T] @@ -186,7 +186,7 @@ trait SequentialOps[T] { b.copyToArray(res, 0) res } - + def sequentialSlice(from: Int, until: Int, sz: Int) = { var i = from val b = new collection.mutable.ArrayBuffer[T] @@ -200,7 +200,7 @@ trait SequentialOps[T] { b.copyToArray(res, 0) res } - + def sequentialSplitAtOpt(n: Int, sz: Int) = { var i = 0 val before = new Array[Any](n) @@ -209,7 +209,7 @@ trait SequentialOps[T] { Array.copy(arr, n, after, 0, sz - n) (before, after) } - + def sequentialSplitAt(n: Int, sz: Int) = { var i = 0 val before = new collection.mutable.ArrayBuffer[T] @@ -227,7 +227,7 @@ trait SequentialOps[T] { after.copyToArray(resaft, 0) (resbef, resaft) } - + def sequentialTakeWhile(p: T => Boolean, sz: Int) = { var i = 0 val b = new collection.mutable.ArrayBuffer[T] @@ -242,7 +242,7 @@ trait SequentialOps[T] { b.copyToArray(res, 0) res } - + def sequentialSpan(p: T => Boolean, sz: Int) = { val bpref = new collection.mutable.ArrayBuffer[T] val brest = new collection.mutable.ArrayBuffer[T] @@ -267,112 +267,112 @@ trait SequentialOps[T] { brest.copyToArray(resrest, 0) (respref, resrest) } - + def sequentialMap(f: T => T, sz: Int) = { val b = new collection.mutable.ArrayBuffer[T](sz) - + var i = 0 while (i < sz) { b += f(arr(i).asInstanceOf[T]) i += 1 } - + val res = new Array[Any](sz) b.copyToArray(res, 0) res } - + def sequentialMapOpt(f: T => T, sz: Int) = { val res = new Array[Any](sz) - + var i = 0 while (i < sz) { res(i) = f(arr(i).asInstanceOf[T]) i += 1 } - + res } - + def sequentialPartialMap(f: PartialFunction[T, T], sz: Int) = { val b = new collection.mutable.ArrayBuffer[T](sz) - + var i = 0 while (i < sz) { val elem = arr(i).asInstanceOf[T] if (f.isDefinedAt(elem)) b += f(elem) i += 1 } - + val res = new Array[Any](b.size) b.copyToArray(res, 0) res } - + def sequentialFlatMap(f: T => Traversable[Int], sz: Int) = { val b = new collection.mutable.ArrayBuffer[Int](sz) - + var i = 0 while (i < sz) { val ts = f(arr(i).asInstanceOf[T]) for (elem <- ts) b += elem i += 1 } - + val res = new Array[Any](b.size) b.copyToArray(res, 0) res - } - + } + def sequentialCopyToArray(destarr: Array[Any], pos: Int, sz: Int) = { Array.copy(arr, 0, destarr, pos, sz) } - + def sequentialSegmentLength(pred: T => Boolean, from: Int, sz: Int) = { var i = from var cnt = 0 - + while (i < sz) { if (pred(arr(i).asInstanceOf[T])) { cnt += 1 i += 1 } else i = sz } - + cnt } - + def sequentialIndexWhere(pred: T => Boolean, from: Int, sz: Int) = { var i = from var pos = -1 - + while (i < sz) { if (pred(arr(i).asInstanceOf[T])) { pos = i i = sz } else i += 1 } - + pos } - + def sequentialLastIndexWhere(pred: T => Boolean, end: Int, sz: Int) = { var i = end var pos = -1 - + while (i >= 0) { if (pred(arr(i).asInstanceOf[T])) { pos = i i = -1 } else i -= 1 } - + pos } - + def sequentialReverse(sz: Int) = { val res = new Array[Any](sz) - + var i = sz - 1 var j = 0 while (i >= 0) { @@ -382,10 +382,10 @@ trait SequentialOps[T] { } res } - + def sequentialReverseMap(f: T => T, sz: Int) = { val res = new Array[Any](sz) - + var i = sz - 1 var j = 0 while (i >= 0) { @@ -395,7 +395,7 @@ trait SequentialOps[T] { } res } - + def sequentialSameElements(sq: Seq[T], sz: Int): Boolean = { if (sz != sq.length) false else { @@ -409,7 +409,7 @@ trait SequentialOps[T] { else false } } - + def sequentialCorresponds(sq: Seq[T], f: (T, T) => Boolean, sz: Int): Boolean = { if (sz != sq.length) false else { @@ -423,11 +423,11 @@ trait SequentialOps[T] { else false } } - + def sequentialDiff(sq: Seq[T], sz: Int) = { val occmap = occurences(sq) val b = new collection.mutable.ArrayBuffer[T] - + var i = 0 while (i < sz) { val elem = arr(i).asInstanceOf[T] @@ -435,16 +435,16 @@ trait SequentialOps[T] { else occmap(elem) -= 1 i += 1 } - + val res = new Array[Any](b.size) b.copyToArray(res, 0) res } - + def sequentialIntersect(sq: Seq[T], sz: Int) = { val occmap = occurences(sq) val b = new collection.mutable.ArrayBuffer[T] - + var i = 0 while (i < sz) { val elem = arr(i).asInstanceOf[T] @@ -455,22 +455,22 @@ trait SequentialOps[T] { } i += 1 } - + val res = new Array[Any](b.size) b.copyToArray(res, 0) res } - + private def occurences(sq: Seq[T]) = { val occmap = new collection.mutable.HashMap[T, Int] { override def default(k: T) = 0 } for (elem <- sq.iterator) occmap(elem) += 1 occmap } - + def sequentialRemoveDuplicates(sz: Int) = { val occ = new collection.mutable.HashSet[T] val b = new collection.mutable.ArrayBuffer[T] - + var i = 0 while (i < sz) { val elem = arr(i).asInstanceOf[T] @@ -480,58 +480,58 @@ trait SequentialOps[T] { } i += 1 } - + val res = new Array[Any](b.size) b.copyToArray(res, 0) res } - + def sequentialPatch(from: Int, p: Seq[T], replaced: Int, sz: Int) = { val b = new collection.mutable.ArrayBuffer[T] b.sizeHint(from + (sz - from - replaced) + p.size) - + var i = 0 while (i < from) { b += arr(i).asInstanceOf[T] i += 1 } - + val jt = p.iterator while (jt.hasNext) b += jt.next - + val skipto = from + replaced while (i < from + replaced) i += 1 - + while (i < sz) { b += arr(i).asInstanceOf[T] i += 1 } - + val res = new Array[Any](b.size) b.copyToArray(res, 0) res } - + def sequentialPadTo(tosize: Int, elem: T, sz: Int) = { val b = new collection.mutable.ArrayBuffer[T] b.sizeHint(tosize) - + var i = 0 while (i < sz) { b += arr(i).asInstanceOf[T] i += 1 } - + while (i < tosize) { b += elem i += 1 } - + val res = new Array[Any](b.size) b.copyToArray(res, 0) res } - + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceFew.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceFew.scala index c22ae47400..450d640b8d 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceFew.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceFew.scala @@ -17,7 +17,7 @@ with HavingResult[Int] { def companion = SliceFew override def repetitionsPerRun = 200 runresult = -1 - + def runpar = runresult = pa.slice(5, 25).size def runseq = runresult = sequentialSlice(5, 25, sz).size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMany.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMany.scala index 37ad666d93..4a30b60e1f 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMany.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMany.scala @@ -17,7 +17,7 @@ with HavingResult[Int] { def companion = SliceMany override def repetitionsPerRun = 200 runresult = -1 - + def runpar = runresult = pa.slice(pa.size / 4, pa.size * 3 / 4).size def runseq = runresult = sequentialSlice(sz / 4, sz * 3 / 4, sz).size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMedium.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMedium.scala index 7da94a4a20..e16002f15d 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMedium.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMedium.scala @@ -17,7 +17,7 @@ with HavingResult[Int] { def companion = SliceMedium override def repetitionsPerRun = 200 runresult = -1 - + def runpar = runresult = pa.slice(pa.size / 7, pa.size * 4 / 7).size def runseq = runresult = sequentialSlice(sz / 7, sz * 4 / 7, sz).size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SpanLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SpanLight.scala index 4d8b128e1f..5f1e631bce 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SpanLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SpanLight.scala @@ -9,12 +9,12 @@ object SpanLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new SpanLight(sz, parallelism, what) override def comparisons = Nil override def defaultSize = 20000 - + val pred = (a: Cont) => check(a.in) val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = check(a.in) } - + def check(n: Int) = { var res = n var i = 1 @@ -32,7 +32,7 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Int] { def companion = SpanLight runresult = -1 - + def runpar = runresult = pa.span(SpanLight.pred)._1.size def runseq = runresult = sequentialSpan(SpanLight.pred, sz)._1.size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SplitHalf.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SplitHalf.scala index d671e56c3d..ff1e009481 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SplitHalf.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SplitHalf.scala @@ -17,7 +17,7 @@ with HavingResult[Int] { def companion = SplitHalf override def repetitionsPerRun = 300 runresult = -1 - + def runpar = runresult = pa.splitAt(pa.size / 2)._1.size def runseq = runresult = sequentialSplitAtOpt(sz / 2, sz)._1.size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SumLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SumLight.scala index 67ac1c6478..6ed6d14370 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SumLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SumLight.scala @@ -9,7 +9,7 @@ class SumLight(sz: Int, p: Int, what: String) extends Resettable[Int](sz, p, what, (i: Int) => i, new Array[Any](_), classOf[Int]) { def companion = SumLight override def repetitionsPerRun = 500 - + def runpar = pa.sum def runseq = sequentialSum(sz) override def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeMany.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeMany.scala index 2f735c1e45..9ddfb77a9d 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeMany.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeMany.scala @@ -17,7 +17,7 @@ with HavingResult[Int] { def companion = TakeMany override def repetitionsPerRun = 400 runresult = -1 - + def runpar = runresult = pa.take(pa.size / 2).size def runseq = runresult = sequentialTake(sz / 2, sz).size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeWhileLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeWhileLight.scala index 255cb695d7..a86c67d0d8 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeWhileLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeWhileLight.scala @@ -9,12 +9,12 @@ object TakeWhileLight extends Companion { def apply(sz: Int, parallelism: Int, what: String) = new TakeWhileLight(sz, parallelism, what) override def comparisons = Nil override def defaultSize = 10000 - + val pred = (a: Cont) => check(a.in) val predjsr = new extra166y.Ops.Predicate[Cont] { def op(a: Cont) = check(a.in) } - + def check(n: Int) = { var res = n var i = 1 @@ -31,7 +31,7 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) with HavingResult[Int] { def companion = TakeWhileLight runresult = -1 - + def runpar = runresult = pa.takeWhile(TakeWhileLight.pred).size def runseq = runresult = sequentialTakeWhile(TakeWhileLight.pred, sz).size def comparisonMap = collection.Map() diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala index 1bd35180c8..af852ce992 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala @@ -13,7 +13,7 @@ import scala.collection.parallel.benchmarks.generic.StandardParIterableBenches object RangeBenches extends StandardParIterableBenches[Int, ParRange] { - + def nameOfCollection = "ParRange" def operators = new IntOperators {} def comparisonMap = collection.Map() @@ -25,29 +25,29 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { collection.parallel.tasksupport.environment = forkJoinPool pr } - + object MapLight extends IterableBenchCompanion { override def defaultSize = 20000 def benchName = "map-light"; def apply(sz: Int, p: Int, w: String) = new MapLight(sz, p, w) } - + class MapLight(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def calc(n: Int) = n % 2 + 1 - + def comparisonMap = collection.Map() def runseq = for (n <- this.seqcoll) yield calc(n) def runpar = for (n <- this.parcoll) yield calc(n) def companion = MapLight } - + object MapMedium extends IterableBenchCompanion { override def defaultSize = 5000 def benchName = "map-medium"; def apply(sz: Int, p: Int, w: String) = new MapMedium(sz, p, w) } - + class MapMedium(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { def calc(n: Int) = { @@ -59,24 +59,24 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { } sum } - + def comparisonMap = collection.Map() def runseq = for (n <- this.seqcoll) yield calc(n) def runpar = for (n <- this.parcoll) yield calc(n) def companion = MapMedium } - + object ForeachModify extends IterableBenchCompanion { override def defaultSize = 150000 def benchName = "foreach-modify"; def apply(sz: Int, p: Int, w: String) = new ForeachModify(sz, p, w) } - + class ForeachModify(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { val array = new Array[Int](size) def modify(n: Int) = array(n) += 1 - + def comparisonMap = collection.Map() def runseq = for (n <- this.seqcoll) modify(n) def runpar = for (n <- this.parcoll.asInstanceOf[ParRange]) { @@ -85,13 +85,13 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { } def companion = ForeachModify } - + object ForeachModifyMedium extends IterableBenchCompanion { override def defaultSize = 20000 def benchName = "foreach-modify-medium"; def apply(sz: Int, p: Int, w: String) = new ForeachModifyMedium(sz, p, w) } - + class ForeachModifyMedium(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { val array = new Array[Int](size) @@ -104,78 +104,78 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { } sum } - + def comparisonMap = collection.Map() def runseq = for (n <- this.seqcoll) modify(n) def runpar = for (n <- this.parcoll) modify(n) def companion = ForeachModifyMedium } - + object ForeachModifyHeavy extends IterableBenchCompanion { override def defaultSize = 1000 def benchName = "foreach-modify-heavy"; def apply(sz: Int, p: Int, w: String) = new ForeachModifyHeavy(sz, p, w) } - + class ForeachModifyHeavy(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { val array = new Array[Int](size) def modify(n: Int) = array(n) = collatz(10000 + array(n)) - + def comparisonMap = collection.Map() def runseq = for (n <- this.seqcoll) modify(n) def runpar = for (n <- this.parcoll) modify(n) def companion = ForeachModifyHeavy } - + object ForeachAdd extends IterableBenchCompanion { override def defaultSize = 10000 def benchName = "foreach-add"; def apply(sz: Int, p: Int, w: String) = new ForeachAdd(sz, p, w) override def comparisons = List("seq-hashmap") } - + class ForeachAdd(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { val cmap = new java.util.concurrent.ConcurrentHashMap[Int, Int] val hmap = new java.util.HashMap[Int, Int] - + override def reset = runWhat match { case "seq-hashmap" => seqcoll = createSequential(size, parallelism) case _ => super.reset } - + def comparisonMap = collection.Map("seq-hashmap" -> runseqhashmap _) def runseqhashmap = for (i <- seqcoll) hmap put (i, onesum(i)) def runseq = for (i <- seqcoll) cmap put (i, onesum(i)) def runpar = for (i <- parcoll) cmap put (i, onesum(i)) def companion = ForeachAdd } - + object ForeachAddCollatz extends IterableBenchCompanion { override def defaultSize = 5000 def benchName = "foreach-add-collatz"; def apply(sz: Int, p: Int, w: String) = new ForeachAddCollatz(sz, p, w) override def comparisons = List("seq-hashmap") } - + class ForeachAddCollatz(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench { val cmap = new java.util.concurrent.ConcurrentHashMap[Int, Int] val hmap = new java.util.HashMap[Int, Int] - + override def reset = runWhat match { case "seq-hashmap" => seqcoll = createSequential(size, parallelism) case _ => super.reset } - + def comparisonMap = collection.Map("seq-hashmap" -> runseqhashmap _) def runseqhashmap = for (i <- seqcoll) hmap put (i, collatz(i)) def runseq = for (i <- seqcoll) cmap put (i, collatz(i)) def runpar = for (i <- parcoll) cmap put (i, collatz(i)) def companion = ForeachAddCollatz } - + def collatz(n: Int) = { var curr = n var sum = 0 @@ -186,7 +186,7 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { } sum } - + def onesum(n: Int) = { var left = n var sum = 0 @@ -196,7 +196,7 @@ object RangeBenches extends StandardParIterableBenches[Int, ParRange] { } sum } - + } diff --git a/test/benchmarks/src/scala/util/HashSpeedTest.scala b/test/benchmarks/src/scala/util/HashSpeedTest.scala index 615bd47aa2..1cc0b735a3 100644 --- a/test/benchmarks/src/scala/util/HashSpeedTest.scala +++ b/test/benchmarks/src/scala/util/HashSpeedTest.scala @@ -78,7 +78,7 @@ object HashSpeedTest { i += 1 } } - + def justCountList: List[List[Int]] => Unit = lli => { var s = 0 lli.foreach(_.foreach(s += _)) diff --git a/test/checker-tests/fail10.scala b/test/checker-tests/fail10.scala index 6d4e6c27c9..c4aac71295 100644 --- a/test/checker-tests/fail10.scala +++ b/test/checker-tests/fail10.scala @@ -1,6 +1,6 @@ class ClassCounts extends scala.collection.mutable.HashMap[Class[_], Int] { } -class A { +class A { def f(xs: ClassCounts) { // ok xs(getClass) = xs(getClass) + 1 @@ -13,7 +13,7 @@ class A { // [Not checkable: namer] // [Not checkable: packageobjects] // [Now checking: typer] -// test/checker-tests/fail10.scala:8: error: +// test/checker-tests/fail10.scala:8: error: // **** ERROR DURING INTERNAL CHECKING **** // type mismatch; // found : java.lang.Class[?0(in value ev$1)] where type ?0(in value ev$1) diff --git a/test/checker-tests/fail12.scala b/test/checker-tests/fail12.scala index 7568311454..27c212ac65 100644 --- a/test/checker-tests/fail12.scala +++ b/test/checker-tests/fail12.scala @@ -5,12 +5,12 @@ class A { // or: // do () while (b == false) } - } + } } -// +// // [Now checking: erasure] // [check: erasure] New symbols: BoxedUnit UNIT runtime scala -// /tmp/fail.scala:4: error: +// /tmp/fail.scala:4: error: // **** ERROR DURING INTERNAL CHECKING **** // type mismatch; // found : scala.runtime.BoxedUnit diff --git a/test/checker-tests/fail2.scala b/test/checker-tests/fail2.scala index 0f0d83aeb2..63672208db 100644 --- a/test/checker-tests/fail2.scala +++ b/test/checker-tests/fail2.scala @@ -3,7 +3,7 @@ class A { def f[A, CC[X] <: Traversable[X]](): Unit = () } -// % work/check all -uniqid -Xprint:typer work/fail2.scala +// % work/check all -uniqid -Xprint:typer work/fail2.scala // // TypeStack init: REFERENCE(type AnyRef#2783) // [Not checkable: parser] @@ -19,7 +19,7 @@ class A { // def f#9244[A#9245 >: Nothing#5846 <: Any#46, CC#9246[X#11055 >: Nothing#5846 <: Any#46] >: [X#11055]Nothing#5846 <: [X#11055]Traversable#3199[X#11055]](): Unit#3819 = () // } // } -// +// // [Now checking: typer] // [check: typer] work/fail2.scala:3: Expected owner type CC#9248, found type CC#9246: Trees$TypeDef / type X#11055>: Nothing#5846 <: Any#46 // [Now checking: superaccessors] diff --git a/test/checker-tests/fail6.scala b/test/checker-tests/fail6.scala index c59be55c4e..a43bada400 100644 --- a/test/checker-tests/fail6.scala +++ b/test/checker-tests/fail6.scala @@ -3,13 +3,13 @@ // Apply( // sym=method while$1, tpe=Unit, tpe.sym=class Unit, tpe.sym.owner=package scala // Ident("while$1"), // sym=method while$1, sym.owner=method f, sym.tpe=()Unit, tpe=()Unit, tpe.sym=<none>, class Erasure { - def f(b: Boolean) = { + def f(b: Boolean) = { if (b) "abc" else while (b) () } } -// % work/check all -Xprint:erasure work/fail6.scala +// % work/check all -Xprint:erasure work/fail6.scala // TypeStack init: REFERENCE(type AnyRef) // [Not checkable: parser] // [Not checkable: namer] @@ -47,9 +47,9 @@ class Erasure { // } // } // } -// +// // [Now checking: erasure] -// work/fail6.scala:4: error: +// work/fail6.scala:4: error: // **** ERROR DURING INTERNAL CHECKING **** // type mismatch; // found : scala.runtime.BoxedUnit @@ -57,5 +57,5 @@ class Erasure { // else while (b) () // ^ // one error found -// -// +// +// diff --git a/test/checker-tests/fail7.scala b/test/checker-tests/fail7.scala index 1ffb745e0b..58db58e37d 100644 --- a/test/checker-tests/fail7.scala +++ b/test/checker-tests/fail7.scala @@ -17,7 +17,7 @@ case class Foo(x: Int) // [Not checkable: packageobjects] // [Now checking: typer] // [Now checking: superaccessors] -// work/fail7.scala:1: error: +// work/fail7.scala:1: error: // **** ERROR DURING INTERNAL CHECKING **** // method canEqual is defined twice // case class Foo(x: Int) @@ -51,7 +51,7 @@ case class Foo(x: Int) // 4) Checking constructors: // // [Now checking: constructors] -// work/fail7.scala:1: error: +// work/fail7.scala:1: error: // **** ERROR DURING INTERNAL CHECKING **** // value x in class Foo cannot be accessed in Foo // because of an internal error (no accessible symbol): diff --git a/test/disabled-windows/script/utf8.scala b/test/disabled-windows/script/utf8.scala index f294498cd2..5dfade0bb2 100755 --- a/test/disabled-windows/script/utf8.scala +++ b/test/disabled-windows/script/utf8.scala @@ -1,5 +1,5 @@ #!/bin/sh -# +# # Checks if UTF-8 output makes it through unmangled. cygwin=false; @@ -9,7 +9,7 @@ esac SOURCE="$0"; if $cygwin; then - if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; + if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then format=mixed else diff --git a/test/disabled/coder/Coder.scala b/test/disabled/coder/Coder.scala index 06dd4b6355..4e29c2a6ee 100644 --- a/test/disabled/coder/Coder.scala +++ b/test/disabled/coder/Coder.scala @@ -5,31 +5,31 @@ import collection.parallel.immutable._ class SeqCoder(words: List[String]) { - + private val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ") - + /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ - private val charCode: Map[Char, Char] = + private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** Maps a word to the digit string it represents, + + /** Maps a word to the digit string it represents, * e.g. `Java` -> `5282` */ private def wordCode(word: String): String = word.toUpperCase map charCode - - /** A map from digit strings to the words that represent + + /** A map from digit strings to the words that represent * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) */ - val wordsForNum: Map[String, List[String]] = + val wordsForNum: Map[String, List[String]] = words groupBy wordCode withDefaultValue List() - + val memo = collection.mutable.Map[String, Set[List[String]]]("" -> Set(List())) val wfnmemo = collection.mutable.Map[(String, String), Set[List[String]]]() val subsmemo = collection.mutable.Map[(String, String, String), Set[List[String]]]() - + /** All ways to encode a number as a list of words */ - def encode(number: String): Set[List[String]] = + def encode(number: String): Set[List[String]] = if (number.isEmpty) Set(List()) else { val splits = (1 to number.length).toSet @@ -51,38 +51,38 @@ class SeqCoder(words: List[String]) { memo += number -> r r } - - /** Maps a number to a list of all word phrases that can + + /** Maps a number to a list of all word phrases that can * represent it */ def translate(number: String): Set[String] = encode(number) map (_ mkString " ") - + def ??? : Nothing = throw new UnsupportedOperationException } class ParCoder(words: List[String]) { - + private val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ") - + /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ - private val charCode: Map[Char, Char] = + private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** Maps a word to the digit string it represents, + + /** Maps a word to the digit string it represents, * e.g. `Java` -> `5282` */ private def wordCode(word: String): String = word.toUpperCase map charCode - - /** A map from digit strings to the words that represent + + /** A map from digit strings to the words that represent * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) */ - val wordsForNum: Map[String, List[String]] = + val wordsForNum: Map[String, List[String]] = words groupBy wordCode withDefaultValue List() - + val comparison = new SeqCoder(words) - + /** All ways to encode a number as a list of words */ - def encode(number: String): ParSet[List[String]] = + def encode(number: String): ParSet[List[String]] = if (number.isEmpty) ParSet(List()) else { val splits = (1 to number.length).toSet.par @@ -105,7 +105,7 @@ class ParCoder(words: List[String]) { assertNumber(number, r) r } - + def assertSubs(num: String, subsfrom: String, word: String, r: ParSet[List[String]]) { val m = comparison.subsmemo((num, subsfrom, word)) if (r != m) { @@ -115,7 +115,7 @@ class ParCoder(words: List[String]) { error("r != m") } } - + def assertWfn(num: String, split: String, dropped: String, r: List[List[String]]) { val m = comparison.wfnmemo((num, split)) val rs = r.toSet @@ -139,7 +139,7 @@ class ParCoder(words: List[String]) { error("rs != m") } } - + def assertNumber(num: String, r: ParSet[List[String]]) { val m = comparison.memo(num) if (r != m) { @@ -149,14 +149,14 @@ class ParCoder(words: List[String]) { error("r != m") } } - - /** Maps a number to a list of all word phrases that can + + /** Maps a number to a list of all word phrases that can * represent it */ def translate(number: String): ParSet[String] = { comparison.translate(number) encode(number) map (_ mkString " ") } - + def ??? : Nothing = throw new UnsupportedOperationException } @@ -165,7 +165,7 @@ class ParCoder(words: List[String]) { object Test { val code = "2328437472947"//36262633"//837976"//"6477323986225453446" //val code = "747294736262633" - + /* */ def main(args : Array[String]) { // import scala.concurrent.forkjoin.ForkJoinPool @@ -173,16 +173,16 @@ object Test { // case fj: ForkJoinPool => fj.setParallelism(1) // } // println(collection.parallel.tasksupport.parallelismLevel) - + for (i <- 0 until 10) { val seqcoder = new SeqCoder(Dictionary.wordlist) val st = seqcoder.translate(code) //println("Translation check: " + st.size) - + val parcoder = new ParCoder(Dictionary.wordlist) val pt = parcoder.translate(code) //println("Translation check: " + pt.size) - + // val st = sts.toList.sorted // val pt = pts.toList.sorted if (st.size != pt.size) { diff --git a/test/disabled/coder/dict.txt b/test/disabled/coder/dict.txt new file mode 100644 index 0000000000..46e95c907f --- /dev/null +++ b/test/disabled/coder/dict.txt @@ -0,0 +1,58111 @@ +aardvark +aardwolf +aaron +aback +abacus +abaft +abalone +abandon +abandoned +abandonment +abandons +abase +abased +abasement +abash +abashed +abate +abated +abatement +abates +abattoir +abattoirs +abbe +abbess +abbey +abbeys +abbot +abbots +abbreviate +abbreviated +abbreviates +abbreviating +abbreviation +abbreviations +abdicate +abdicated +abdicates +abdicating +abdication +abdomen +abdomens +abdominal +abduct +abducted +abducting +abduction +abductions +abductor +abductors +abducts +abe +abeam +abel +abele +aberdeen +aberrant +aberration +aberrations +abet +abets +abetted +abetting +abeyance +abhor +abhorred +abhorrence +abhorrent +abhors +abide +abided +abides +abiding +abidjan +abies +abilities +ability +abject +abjectly +abjure +abjured +ablate +ablates +ablating +ablation +ablative +ablaze +able +ablebodied +abler +ablest +abloom +ablution +ablutions +ably +abnegation +abnormal +abnormalities +abnormality +abnormally +aboard +abode +abodes +abolish +abolished +abolishes +abolishing +abolition +abolitionist +abolitionists +abomb +abominable +abominably +abominate +abominated +abomination +abominations +aboriginal +aborigines +abort +aborted +aborting +abortion +abortionist +abortionists +abortions +abortive +aborts +abound +abounded +abounding +abounds +about +above +abraded +abraham +abrasion +abrasions +abrasive +abrasively +abrasiveness +abrasives +abreast +abridge +abridged +abridgement +abridging +abroad +abrogate +abrogated +abrogating +abrogation +abrogations +abrupt +abruptly +abruptness +abscess +abscesses +abscissa +abscissae +abscissas +abscond +absconded +absconder +absconding +absconds +abseil +abseiled +abseiler +abseiling +abseils +absence +absences +absent +absented +absentee +absenteeism +absentees +absenting +absently +absentminded +absentmindedly +absentmindedness +absolute +absolutely +absoluteness +absolutes +absolution +absolutism +absolutist +absolutists +absolve +absolved +absolves +absolving +absorb +absorbed +absorbency +absorbent +absorber +absorbers +absorbing +absorbingly +absorbs +absorption +absorptions +absorptive +absorptivity +abstain +abstained +abstainer +abstainers +abstaining +abstains +abstemious +abstemiously +abstemiousness +abstention +abstentions +abstinence +abstinent +abstract +abstracted +abstractedly +abstracting +abstraction +abstractions +abstractly +abstracts +abstruse +abstrusely +absurd +absurder +absurdest +absurdist +absurdities +absurdity +absurdly +abundance +abundances +abundant +abundantly +abuse +abused +abuser +abusers +abuses +abusing +abusive +abusively +abusiveness +abut +abutment +abutments +abutted +abutting +abuzz +aby +abysmal +abysmally +abyss +abyssal +abysses +acacia +academe +academia +academic +academical +academically +academician +academicians +academics +academies +academy +acanthus +acapulco +accede +acceded +acceding +accelerate +accelerated +accelerates +accelerating +acceleration +accelerations +accelerator +accelerators +accelerometer +accelerometers +accent +accented +accenting +accents +accentuate +accentuated +accentuates +accentuating +accentuation +accept +acceptability +acceptable +acceptably +acceptance +acceptances +accepted +accepting +acceptor +acceptors +accepts +access +accessed +accesses +accessibility +accessible +accessing +accession +accessions +accessories +accessory +accidence +accident +accidental +accidentally +accidentprone +accidents +acclaim +acclaimed +acclaims +acclamation +acclamations +acclimatisation +acclimatise +acclimatised +acclimatising +accolade +accolades +accommodate +accommodated +accommodates +accommodating +accommodation +accommodations +accompanied +accompanies +accompaniment +accompaniments +accompanist +accompany +accompanying +accomplice +accomplices +accomplish +accomplished +accomplishes +accomplishing +accomplishment +accomplishments +accord +accordance +accorded +according +accordingly +accordion +accordionist +accordions +accords +accost +accosted +accosting +accosts +account +accountability +accountable +accountancy +accountant +accountants +accounted +accounting +accounts +accra +accredit +accreditation +accredited +accrediting +accredits +accreted +accretion +accretions +accrual +accruals +accrue +accrued +accrues +accruing +accumulate +accumulated +accumulates +accumulating +accumulation +accumulations +accumulative +accumulator +accumulators +accuracies +accuracy +accurate +accurately +accursed +accusal +accusals +accusation +accusations +accusative +accusatory +accuse +accused +accuser +accusers +accuses +accusing +accusingly +accustom +accustomed +accustoming +ace +aced +acentric +acerbic +acerbity +acers +aces +acetal +acetate +acetates +acetic +acetone +acetylene +ache +ached +aches +achievable +achieve +achieved +achievement +achievements +achiever +achievers +achieves +achieving +aching +achingly +achings +achromatic +achy +acid +acidic +acidification +acidified +acidify +acidifying +acidity +acidly +acidophiles +acidrain +acids +acknowledge +acknowledged +acknowledgement +acknowledgements +acknowledges +acknowledging +acknowledgment +acknowledgments +acme +acne +acolyte +acolytes +aconite +acorn +acorns +acoustic +acoustical +acoustically +acoustics +acquaint +acquaintance +acquaintances +acquainted +acquainting +acquaints +acquiesce +acquiesced +acquiescence +acquiescent +acquiescing +acquire +acquired +acquirer +acquirers +acquires +acquiring +acquisition +acquisitions +acquisitive +acquisitiveness +acquit +acquited +acquites +acquits +acquittal +acquittals +acquittance +acquitted +acquitting +acre +acreage +acres +acrid +acrimonious +acrimoniously +acrimony +acrobat +acrobatic +acrobatics +acrobats +acronym +acronyms +across +acrostic +acrostics +acrylic +acrylics +act +acted +acting +actings +actinides +action +actionable +actions +activate +activated +activates +activating +activation +activations +activator +activators +active +actively +actives +activism +activist +activists +activities +activity +actor +actors +actress +actresses +acts +actual +actualisation +actualise +actualised +actualities +actuality +actually +actuarial +actuaries +actuary +actuate +actuated +actuates +actuating +actuation +actuator +actuators +acuity +acumen +acupuncture +acupuncturist +acupuncturists +acute +acutely +acuteness +acuter +acutest +acyclic +adage +adages +adagio +adam +adamant +adamantly +adapt +adaptability +adaptable +adaptation +adaptations +adapted +adapter +adapters +adapting +adaptive +adaptively +adaptivity +adaptor +adaptors +adapts +add +added +addenda +addendum +adder +adders +addict +addicted +addiction +addictions +addictive +addictiveness +addicts +adding +addition +additional +additionally +additions +additive +additively +additives +addle +addled +addles +addling +address +addressability +addressable +addressed +addressee +addressees +addresses +addressing +adds +adduce +adduced +adduces +adducing +adelaide +aden +adenine +adenoid +adenoids +adenoma +adenomas +adept +adepts +adequacy +adequate +adequately +adhere +adhered +adherence +adherent +adherents +adherer +adherers +adheres +adhering +adhesion +adhesions +adhesive +adhesiveness +adhesives +adhoc +adiabatic +adiabatically +adieu +adieus +adieux +adios +adipose +adit +adjacency +adjacent +adjacently +adjectival +adjective +adjectives +adjoin +adjoined +adjoining +adjoins +adjourn +adjourned +adjourning +adjournment +adjourns +adjudge +adjudged +adjudges +adjudicate +adjudicated +adjudicates +adjudicating +adjudication +adjudications +adjudicator +adjudicators +adjunct +adjuncts +adjure +adjust +adjustable +adjusted +adjuster +adjusting +adjustment +adjustments +adjusts +adjutant +adlib +adlibs +adman +admen +admin +administer +administered +administering +administers +administrate +administrated +administrating +administration +administrations +administrative +administratively +administrator +administrators +admirable +admirably +admiral +admirals +admiration +admire +admired +admirer +admirers +admires +admiring +admiringly +admissibility +admissible +admission +admissions +admit +admits +admittance +admittances +admitted +admittedly +admitting +admix +admixture +admonish +admonished +admonishes +admonishing +admonishment +admonition +admonitions +admonitory +ado +adobe +adolescence +adolescent +adolescents +adonis +adopt +adopted +adopter +adopting +adoption +adoptions +adoptive +adopts +adorable +adorably +adoration +adore +adored +adorer +adorers +adores +adoring +adoringly +adorn +adorned +adorning +adornment +adornments +adorns +adrenal +adrenalin +adrenaline +adrift +adroit +adroitly +adroitness +adsorb +adsorbed +adsorption +adulation +adulatory +adult +adulterate +adulterated +adulterates +adulterating +adulteration +adulterations +adulterer +adulterers +adulteress +adulteresses +adulterous +adultery +adulthood +adults +adumbrate +adumbrated +adumbrating +advance +advanced +advancement +advancements +advancer +advances +advancing +advantage +advantaged +advantageous +advantageously +advantages +advent +advents +adventure +adventured +adventurer +adventurers +adventures +adventuring +adventurism +adventurous +adventurously +adverb +adverbial +adverbs +adversarial +adversaries +adversary +adverse +adversely +adversities +adversity +advert +adverted +advertise +advertised +advertisement +advertisements +advertiser +advertisers +advertises +advertising +adverts +advice +advices +advisability +advisable +advise +advised +advisedly +adviser +advisers +advises +advising +advisory +advocacy +advocate +advocated +advocates +advocating +adze +aegean +aegina +aegis +aeolian +aeon +aeons +aerate +aerated +aerates +aerating +aeration +aerator +aerial +aerially +aerials +aerify +aerobatic +aerobatics +aerobe +aerobes +aerobic +aerobically +aerobics +aerobraking +aerodrome +aerodromes +aerodynamic +aerodynamically +aerodynamics +aerofoil +aerofoils +aeronaut +aeronautic +aeronautical +aeronautics +aeroplane +aeroplanes +aerosol +aerosols +aerospace +aesop +aesthete +aesthetes +aesthetic +aesthetically +aestheticism +aestheticsy +afar +affability +affable +affably +affair +affairs +affect +affectation +affectations +affected +affectedly +affecting +affection +affectionate +affectionately +affections +affective +affects +afferent +affidavit +affidavits +affiliate +affiliated +affiliates +affiliating +affiliation +affiliations +affine +affinities +affinity +affirm +affirmation +affirmations +affirmative +affirmatively +affirmed +affirming +affirms +affix +affixed +affixes +affixing +afflict +afflicted +afflicting +affliction +afflictions +afflicts +affluence +affluent +afflux +afford +affordability +affordable +afforded +affording +affords +afforestation +afforested +affray +affront +affronted +affronts +afghan +afghani +afghans +afield +afire +aflame +afloat +afoot +aforementioned +aforesaid +aforethought +afraid +afresh +africa +african +africans +afro +afros +aft +after +afterbirth +aftercare +aftereffect +aftereffects +afterglow +afterlife +afterlives +aftermath +afternoon +afternoons +aftershave +aftershocks +aftertaste +afterthought +afterthoughts +afterward +afterwards +aga +again +against +agakhan +agape +agar +agaragar +agave +agaves +age +aged +ageing +ageings +ageism +ageless +agencies +agency +agenda +agendas +agendums +agent +agents +ageold +ages +agglomerated +agglomerating +agglomeration +agglomerations +agglutinative +aggravate +aggravated +aggravates +aggravating +aggravation +aggravations +aggregate +aggregated +aggregates +aggregating +aggregation +aggregations +aggression +aggressions +aggressive +aggressively +aggressiveness +aggressor +aggressors +aggrieved +aggrievedly +aghast +agile +agiler +agility +aging +agings +agio +agitate +agitated +agitatedly +agitates +agitating +agitation +agitations +agitator +agitators +agitprop +agleam +aglow +agnostic +agnosticism +agnostics +ago +agog +agonies +agonise +agonised +agonises +agonising +agonisingly +agonist +agonists +agony +agora +agoraphobia +agoraphobic +agouti +agrarian +agree +agreeable +agreeableness +agreeably +agreed +agreeing +agreement +agreements +agrees +agribusiness +agricultural +agriculturalist +agriculturalists +agriculturally +agriculture +agrimony +agrochemical +agrochemicals +agronomist +agronomists +agronomy +aground +ague +ah +aha +ahead +ahem +ahoy +aid +aide +aided +aidedecamp +aider +aiders +aides +aidesdecamp +aiding +aids +ail +aileron +ailerons +ailing +ailment +ailments +ails +aim +aimed +aimer +aiming +aimless +aimlessly +aimlessness +aims +aint +air +airbase +airborne +airbrush +airbus +airconditioned +airconditioner +airconditioning +aircraft +aircrew +aircrews +aire +aired +airfield +airfields +airflow +airforce +airframe +airframes +airgun +airier +airiest +airily +airiness +airing +airings +airless +airlift +airlifted +airlifting +airlifts +airline +airliner +airliners +airlines +airlock +airlocks +airmail +airman +airmen +airplane +airplay +airport +airports +airraid +airs +airship +airships +airsick +airsickness +airspace +airstream +airstrip +airstrips +airtight +airtime +airwave +airwaves +airway +airways +airworthiness +airworthy +airy +aisle +aisles +aitches +ajar +akimbo +akin +ala +alabama +alabaster +alacarte +alack +alacrity +aladdin +alanine +alarm +alarmed +alarming +alarmingly +alarmism +alarmist +alarms +alas +alaska +alaskan +alb +albania +albany +albatross +albatrosses +albeit +albinism +albino +album +albumen +albumin +albums +alchemical +alchemist +alchemists +alchemy +alcohol +alcoholic +alcoholics +alcoholism +alcohols +alcove +alcoves +aldehyde +aldehydes +alder +alderman +aldermen +aldrin +ale +alehouse +alembic +alert +alerted +alerting +alertly +alertness +alerts +ales +alfalfa +alfatah +alga +algae +algal +algebra +algebraic +algebraical +algebraically +algebraist +algebras +algeria +algerian +algiers +algorithm +algorithmic +algorithmically +algorithms +alias +aliases +alibaba +alibi +alibis +alien +alienate +alienated +alienates +alienating +alienation +aliened +aliening +aliens +alight +alighted +alighting +alights +align +aligned +aligning +alignment +alignments +aligns +alike +alimentary +alimony +aline +alined +alines +alining +aliphatic +aliquot +aliquots +alive +alkali +alkalic +alkaline +alkalinity +alkalis +alkalise +alkaloid +alkaloids +alkanes +alkyl +all +allay +allayed +allaying +allays +allegation +allegations +allege +alleged +allegedly +alleges +allegiance +allegiances +alleging +allegorical +allegorically +allegories +allegory +allegri +allegro +allele +alleles +allelic +allergen +allergens +allergic +allergies +allergy +alleviate +alleviated +alleviates +alleviating +alleviation +alleviations +alley +alleys +alleyway +alleyways +alliance +alliances +allied +allies +alligator +alligators +alliterate +alliterated +alliterating +alliteration +alliterations +alliterative +allocatable +allocate +allocated +allocates +allocating +allocation +allocations +allocator +allocators +allophones +allot +allotment +allotments +allotrope +allotropic +allots +allotted +allotting +allow +allowable +allowance +allowances +allowed +allowing +allows +alloy +alloyed +alloying +alloys +allude +alluded +alludes +alluding +allure +allured +allurement +allurements +allures +alluring +alluringly +allusion +allusions +allusive +alluvia +alluvial +alluvium +ally +allying +almanac +almanacs +almighty +almond +almonds +almost +alms +almshouse +almshouses +aloe +aloes +aloft +aloha +alone +aloneness +along +alongside +aloof +aloofness +aloud +alp +alpaca +alpacas +alpha +alphabet +alphabetic +alphabetical +alphabetically +alphabets +alphanumeric +alphas +alpine +alps +already +alright +also +alt +altar +altarpiece +altarpieces +altars +alter +alterable +alteration +alterations +altercate +altercation +altercations +altered +alterego +altering +alternate +alternated +alternately +alternates +alternating +alternation +alternations +alternative +alternatively +alternatives +alternator +alternators +alters +although +altimeter +altimeters +altitude +altitudes +alto +altogether +altruism +altruist +altruistic +altruistically +alts +alum +aluminium +aluminum +alumni +alumnus +alveolar +alveoli +always +am +amalgam +amalgamate +amalgamated +amalgamates +amalgamating +amalgamation +amalgamations +amalgams +amanuensis +amass +amassed +amasses +amassing +amateur +amateurish +amateurishly +amateurishness +amateurism +amateurs +amatory +amaze +amazed +amazement +amazes +amazing +amazingly +amazon +amazons +ambassador +ambassadorial +ambassadors +amber +ambergris +ambiance +ambidextrous +ambience +ambient +ambiguities +ambiguity +ambiguous +ambiguously +ambit +ambition +ambitions +ambitious +ambitiously +ambivalence +ambivalent +ambivalently +amble +ambled +ambler +ambles +ambling +ambrosia +ambulance +ambulances +ambulant +ambulate +ambulatory +ambuscade +ambuscades +ambush +ambushed +ambushers +ambushes +ambushing +ameliorate +ameliorated +ameliorates +ameliorating +amelioration +amen +amenability +amenable +amend +amendable +amended +amending +amendment +amendments +amends +amenities +amenity +amenorrhoea +amens +america +american +americans +americium +amethyst +amethystine +amethysts +amiability +amiable +amiableness +amiably +amicability +amicable +amicably +amid +amide +amidships +amidst +amigo +amine +amines +amino +amir +amiss +amity +amman +ammeter +ammeters +ammo +ammonia +ammonites +ammonium +ammunition +amnesia +amnesiac +amnesic +amnesties +amnesty +amniotic +amoeba +amoebae +amoebic +amok +among +amongst +amoral +amorality +amorist +amorous +amorously +amorphous +amortisation +amortise +amortised +amount +amounted +amounting +amounts +amour +amours +amp +ampere +amperes +ampersand +ampersands +amphetamine +amphetamines +amphibia +amphibian +amphibians +amphibious +amphitheatre +amphitheatres +amphora +ample +ampler +amplification +amplifications +amplified +amplifier +amplifiers +amplifies +amplify +amplifying +amplitude +amplitudes +amply +ampoules +amps +ampule +ampules +ampuls +amputate +amputated +amputating +amputation +amputations +amputee +amputees +amuck +amulet +amulets +amuse +amused +amusement +amusements +amuses +amusing +amusingly +an +ana +anabolic +anachronism +anachronisms +anachronistic +anachronistically +anaconda +anacondas +anaemia +anaemic +anaerobic +anaerobically +anaesthesia +anaesthetic +anaesthetics +anaesthetise +anaesthetised +anaesthetising +anaesthetist +anaesthetists +anagram +anagrammatic +anagrammatically +anagrams +anal +analgesia +analgesic +analgesics +anally +analogical +analogies +analogise +analogous +analogously +analogue +analogues +analogy +analysable +analyse +analysed +analyser +analysers +analyses +analysing +analysis +analyst +analysts +analytic +analytical +analytically +anamorphic +ananas +anaphora +anaphoric +anarchic +anarchical +anarchism +anarchist +anarchistic +anarchists +anarchy +anathema +anatomic +anatomical +anatomically +anatomies +anatomist +anatomists +anatomy +ancestor +ancestors +ancestral +ancestries +ancestry +anchor +anchorage +anchorages +anchored +anchoring +anchorite +anchors +anchovies +anchovy +ancient +anciently +ancients +ancillary +and +andante +andes +andrew +androgynous +android +androids +anecdotal +anecdotally +anecdote +anecdotes +anechoic +anemia +anemic +anemone +anemones +anergy +aneroid +aneurysm +aneurysms +anew +angel +angelic +angelica +angels +angelus +anger +angered +angering +angers +angina +anginal +angioplasty +angle +angled +anglepoise +angler +anglers +angles +anglian +anglican +angling +angola +angolan +angolans +angora +angoras +angrier +angriest +angrily +angry +angst +angstroms +anguish +anguished +anguishes +angular +angularity +anhydrous +anil +aniline +animal +animals +animate +animated +animatedly +animates +animating +animation +animations +animator +animators +animism +animist +animists +animosities +animosity +animus +anion +anionic +anions +anise +aniseed +aniseeds +anisotropic +anisotropies +anisotropy +ankara +ankle +ankles +anklet +anklets +anna +annal +annals +anneal +annealed +annealer +annealing +annex +annexation +annexations +annexe +annexed +annexes +annexing +annihilate +annihilated +annihilates +annihilating +annihilation +anniversaries +anniversary +annotate +annotated +annotates +annotating +annotation +annotations +announce +announced +announcement +announcements +announcer +announcers +announces +announcing +annoy +annoyance +annoyances +annoyed +annoyer +annoyers +annoying +annoyingly +annoys +annual +annualised +annually +annuals +annuities +annuity +annul +annular +annuli +annulled +annulling +annulment +annuls +annulus +annunciation +anode +anodes +anodised +anodyne +anoint +anointed +anointing +anoints +anomalies +anomalous +anomalously +anomaly +anomic +anon +anonym +anonymity +anonymous +anonymously +anonyms +anorak +anoraks +anorexia +anorexic +another +answer +answerable +answered +answerer +answering +answers +ant +antacid +antacids +antagonise +antagonised +antagonises +antagonising +antagonism +antagonisms +antagonist +antagonistic +antagonists +ante +anteater +anteaters +antecedent +antecedents +antechamber +antedate +antedates +antedating +antediluvian +antelope +antelopes +antenatal +antenna +antennae +antennas +anterior +anteriorly +anteroom +anthem +anthems +anther +anthologies +anthologise +anthologised +anthology +anthracite +anthrax +anthropic +anthropocentric +anthropogenic +anthropogenically +anthropoid +anthropological +anthropologist +anthropologists +anthropology +anthropometric +anthropomorphic +anthropomorphising +anthropomorphism +anti +antiabortionists +antiaircraft +antibiotic +antibiotics +antibodies +antibody +antic +anticipate +anticipated +anticipates +anticipating +anticipation +anticipations +anticipative +anticipatory +anticlimax +anticlockwise +anticoagulants +anticonstitutional +antics +anticyclone +antidepressant +antidepressants +antidote +antidotes +antifreeze +antigen +antigenic +antigens +antihistamines +antilope +antimatter +antimony +antioxidants +antiparticles +antipathetic +antipathies +antipathy +antipodes +antiquarian +antiquarianism +antiquarians +antiquaries +antiquary +antiquated +antique +antiques +antiquities +antiquity +antiseptic +antiseptics +antisocial +antistatic +antisymmetric +antisymmetry +antitheses +antithesis +antithetic +antithetical +antithetically +antitrust +antiviral +antler +antlers +antlion +antlions +antonym +antonyms +antral +antrum +ants +antwerp +anus +anvil +anvils +anxieties +anxiety +anxious +anxiously +any +anybody +anyhow +anymore +anyone +anyplace +anything +anyway +anyways +anywhere +aorist +aorta +aortas +aortic +apace +apache +apaches +apart +apartment +apartments +apartness +apathetic +apathetically +apathy +ape +aped +apeman +aperies +aperiodic +aperiodically +aperitif +aperitifs +aperture +apertures +apery +apes +apex +aphasia +aphelion +aphid +aphids +aphorism +aphorisms +aphorist +aphoristic +aphrodisiac +aphrodisiacs +apian +apiaries +apiarist +apiary +apiece +aping +apis +apish +aplenty +aplomb +apnea +apnoea +apocalypse +apocalyptic +apocryphal +apogee +apolitical +apollo +apologetic +apologetically +apologia +apologies +apologise +apologised +apologises +apologising +apologist +apologists +apology +apoplectic +apoplexy +apostasy +apostate +apostates +apostle +apostles +apostolate +apostolic +apostrophe +apostrophes +apostrophised +apothecaries +apothecary +apotheosis +appal +appalled +appalling +appallingly +appals +apparatchik +apparatchiks +apparatus +apparatuses +apparel +apparelled +apparent +apparently +apparition +apparitions +appeal +appealed +appealing +appealingly +appeals +appear +appearance +appearances +appeared +appearing +appears +appease +appeased +appeasement +appeaser +appeasers +appeases +appeasing +appellant +appellants +appellate +appellation +appellations +append +appendage +appendages +appended +appendices +appendicitis +appending +appendix +appends +appertain +appertained +appertaining +appetiser +appetising +appetite +appetites +applaud +applauded +applauding +applauds +applause +apple +applecart +applepie +apples +applet +appliance +appliances +applicability +applicable +applicant +applicants +application +applications +applicative +applicator +applicators +applied +applier +applies +applique +apply +applying +appoint +appointed +appointee +appointees +appointing +appointment +appointments +appoints +apportion +apportioned +apportioning +apportionment +apportions +apposite +apposition +appraisal +appraisals +appraise +appraised +appraisees +appraiser +appraisers +appraises +appraising +appraisingly +appreciable +appreciably +appreciate +appreciated +appreciates +appreciating +appreciation +appreciations +appreciative +appreciatively +apprehend +apprehended +apprehending +apprehends +apprehension +apprehensions +apprehensive +apprehensively +apprentice +apprenticed +apprentices +apprenticeship +apprenticeships +apprise +apprised +apprising +appro +approach +approachability +approachable +approached +approaches +approaching +approbation +appropriate +appropriated +appropriately +appropriateness +appropriates +appropriating +appropriation +appropriations +approval +approvals +approve +approved +approves +approving +approvingly +approximate +approximated +approximately +approximates +approximating +approximation +approximations +apricot +apricots +april +apriori +apron +aprons +apropos +apse +apses +apsis +apt +aptest +aptitude +aptitudes +aptly +aptness +aqua +aqualung +aquamarine +aquanaut +aquaria +aquarium +aquariums +aquatic +aquatics +aqueduct +aqueducts +aqueous +aquifer +aquifers +aquiline +arab +arabesque +arabesques +arabia +arabian +arabians +arabic +arable +arabs +arachnid +arachnids +arachnoid +arachnophobia +arak +araks +ararat +arbiter +arbiters +arbitrage +arbitrageur +arbitrageurs +arbitral +arbitrarily +arbitrariness +arbitrary +arbitrate +arbitrated +arbitrates +arbitrating +arbitration +arbitrations +arbitrator +arbitrators +arbor +arboreal +arboretum +arbour +arc +arcade +arcades +arcadia +arcading +arcana +arcane +arcanely +arcaneness +arced +arch +archaeological +archaeologically +archaeologist +archaeologists +archaeology +archaeopteryx +archaic +archaism +archaisms +archangel +archangels +archbishop +archbishops +archdeacon +archdeaconry +archdeacons +archdiocese +archduke +archdukes +arched +archenemies +archenemy +archer +archers +archery +arches +archetypal +archetype +archetypes +archetypical +arching +archipelago +architect +architectonic +architects +architectural +architecturally +architecture +architectures +architrave +architraves +archival +archive +archived +archives +archiving +archivist +archivists +archly +archness +archway +archways +arcing +arcs +arctic +ardency +ardent +ardently +ardour +arduous +are +area +areal +areas +arena +arenas +arent +argent +argon +argot +arguable +arguably +argue +argued +arguer +arguers +argues +arguing +argument +argumentation +argumentative +argumentatively +arguments +argus +aria +arias +arid +aridity +aridness +aright +arise +arisen +arises +arising +aristocracies +aristocracy +aristocrat +aristocratic +aristocrats +arithmetic +arithmetical +arithmetically +arizona +ark +arkansas +arks +arm +armada +armadas +armadillo +armament +armaments +armature +armatures +armband +armbands +armchair +armchairs +armed +armenia +armful +armfuls +armhole +armholes +armies +arming +armistice +armless +armlet +armlets +armour +armoured +armourer +armourers +armouries +armourplated +armoury +armpit +armpits +armrest +arms +army +aroma +aromas +aromatherapist +aromatherapy +aromatic +aromaticity +aromatics +arose +around +arousal +arousals +arouse +aroused +arouses +arousing +arrange +arrangeable +arranged +arrangement +arrangements +arranger +arranges +arranging +arrant +arrases +array +arrayed +arraying +arrays +arrears +arrest +arrestable +arrested +arrester +arresting +arrests +arrhythmia +arrival +arrivals +arrive +arrived +arriver +arrives +arriving +arrogance +arrogant +arrogantly +arrow +arrowed +arrowhead +arrowheads +arrowing +arrowroot +arrows +arsenal +arsenals +arsenic +arsenide +arson +arsonist +arsonists +art +artefact +artefacts +artefactual +arterial +arteries +artery +artful +artfully +artfulness +arthritic +arthritis +arthropod +arthropods +arthur +artichoke +artichokes +article +articled +articles +articulacy +articular +articulate +articulated +articulately +articulates +articulating +articulation +articulations +articulatory +artier +artifice +artificial +artificiality +artificially +artillery +artisan +artisans +artist +artiste +artistes +artistic +artistically +artistry +artists +artless +artlessly +artlessness +arts +artwork +artworks +arty +arum +as +asbestos +asbestosis +ascend +ascendancy +ascendant +ascended +ascendency +ascender +ascending +ascends +ascension +ascensions +ascent +ascents +ascertain +ascertainable +ascertained +ascertaining +ascertainment +ascertains +ascetic +asceticism +ascetics +ascorbic +ascribable +ascribe +ascribed +ascribes +ascribing +ascription +ascriptions +aseptic +asexual +ash +ashamed +ashamedly +ashbin +ashbins +ashcans +ashen +ashes +ashore +ashtray +ashtrays +ashy +asia +asian +asians +asiatic +aside +asides +asinine +ask +askance +asked +askers +askew +asking +asks +aslant +asleep +asocial +asp +asparagus +aspect +aspects +asperity +aspersion +aspersions +asphalt +asphyxia +asphyxiate +asphyxiated +asphyxiation +aspic +aspidistra +aspirant +aspirants +aspirate +aspirated +aspirates +aspirating +aspiration +aspirational +aspirations +aspirators +aspire +aspired +aspires +aspirin +aspiring +aspirins +asps +ass +assail +assailable +assailant +assailants +assailed +assailing +assails +assassin +assassinate +assassinated +assassinating +assassination +assassinations +assassins +assault +assaulted +assaulting +assaults +assay +assayed +assayer +assays +assegai +assegais +assemblage +assemblages +assemble +assembled +assembler +assemblers +assembles +assemblies +assembling +assembly +assent +assented +assenting +assents +assert +asserted +asserting +assertion +assertions +assertive +assertively +assertiveness +asserts +asses +assess +assessable +assessed +assesses +assessing +assessment +assessments +assessor +assessors +asset +assets +assiduity +assiduous +assiduously +assign +assignable +assignation +assignations +assigned +assignees +assigner +assigning +assignment +assignments +assigns +assimilable +assimilate +assimilated +assimilates +assimilating +assimilation +assist +assistance +assistant +assistants +assisted +assisting +assists +assizes +associate +associated +associates +associateship +associating +association +associational +associations +associative +associatively +associativity +assonance +assort +assorted +assortment +assortments +assuage +assuaged +assuages +assuaging +assume +assumed +assumes +assuming +assumption +assumptions +assurance +assurances +assure +assured +assuredly +assures +assuring +assyria +assyrian +aster +asterisk +asterisked +asterisks +astern +asteroid +asteroids +asters +asthma +asthmatic +asthmatics +astigmatic +astigmatism +astir +astonish +astonished +astonishes +astonishing +astonishingly +astonishment +astound +astounded +astounding +astoundingly +astounds +astraddle +astral +astrally +astray +astride +astringent +astrolabe +astrolabes +astrologer +astrologers +astrological +astrology +astronaut +astronautical +astronautics +astronauts +astronomer +astronomers +astronomic +astronomical +astronomically +astronomy +astrophysical +astrophysicist +astrophysicists +astrophysics +astute +astutely +astuteness +asunder +aswan +asylum +asylums +asymmetric +asymmetrical +asymmetrically +asymmetries +asymmetry +asymptomatic +asymptote +asymptotes +asymptotic +asymptotically +asynchronous +asynchronously +at +atavism +atavistic +ate +atelier +atheism +atheist +atheistic +atheistically +atheists +athena +athens +atherosclerosis +athlete +athletes +athletic +athletically +athleticism +athletics +atlanta +atlantic +atlantis +atlas +atlases +atmosphere +atmospheres +atmospheric +atmospherically +atmospherics +atoll +atolls +atom +atombomb +atomic +atomically +atomicity +atomisation +atomised +atomistic +atoms +atonal +atonality +atone +atoned +atonement +atones +atonic +atoning +atop +atrial +atrium +atrocious +atrociously +atrocities +atrocity +atrophied +atrophies +atrophy +atrophying +atropine +attach +attachable +attache +attached +attaches +attaching +attachment +attachments +attack +attacked +attacker +attackers +attacking +attacks +attain +attainable +attained +attaining +attainment +attainments +attains +attempt +attempted +attempting +attempts +attend +attendance +attendances +attendant +attendants +attended +attendees +attender +attenders +attending +attends +attention +attentional +attentions +attentive +attentively +attentiveness +attenuate +attenuated +attenuates +attenuating +attenuation +attenuator +attenuators +attest +attestation +attested +attesting +attests +attic +attics +attila +attire +attired +attiring +attitude +attitudes +attitudinal +attorney +attorneys +attract +attracted +attracting +attraction +attractions +attractive +attractively +attractiveness +attractor +attractors +attracts +attributable +attribute +attributed +attributes +attributing +attribution +attributions +attributive +attrition +attritional +attune +attuned +atypical +atypically +aubergine +aubergines +auburn +auction +auctioned +auctioneer +auctioneers +auctioning +auctions +audacious +audaciously +audacity +audibility +audible +audibly +audience +audiences +audio +audiovisual +audit +audited +auditing +audition +auditioned +auditioning +auditions +auditive +auditor +auditorium +auditors +auditory +audits +auger +augers +augite +augment +augmentation +augmentations +augmented +augmenting +augments +augur +augured +augurs +augury +august +augustus +auk +auks +aunt +auntie +aunties +aunts +aupair +aupairs +aura +aural +aurally +auras +aurevoir +auric +auriculas +aurora +aurorae +auroral +auroras +auspice +auspices +auspicious +auspiciously +aussie +aussies +austere +austerely +austerity +austral +australian +austria +autarchy +auteur +authentic +authentically +authenticate +authenticated +authenticates +authenticating +authentication +authenticator +authenticators +authenticity +author +authored +authoress +authorial +authoring +authorisation +authorisations +authorise +authorised +authorises +authorising +authoritarian +authoritarianism +authoritarians +authoritative +authoritatively +authorities +authority +authors +authorship +autism +autistic +auto +autobahn +autobahns +autobiographical +autobiographically +autobiographies +autobiography +autocracies +autocracy +autocrat +autocratic +autocratically +autocrats +autocue +autograph +autographed +autographing +autographs +autoignition +autoimmune +automat +automata +automate +automated +automates +automatic +automatically +automatics +automating +automation +automaton +automats +automobile +automorphism +automorphisms +automotive +autonomic +autonomous +autonomously +autonomy +autopilot +autopsies +autopsy +autosuggestion +autumn +autumnal +autumns +auxiliaries +auxiliary +avail +availabilities +availability +available +availed +availing +avails +avalanche +avalanches +avalanching +avantgarde +avarice +avaricious +avariciousness +ave +avenge +avenged +avenger +avengers +avenges +avenging +avens +avenue +avenues +aver +average +averaged +averagely +averages +averaging +averred +averring +avers +averse +aversion +aversions +aversive +avert +averted +averting +averts +avian +aviaries +aviary +aviate +aviation +aviator +aviators +avid +avidity +avidly +avionics +avocado +avoid +avoidable +avoidance +avoided +avoiding +avoids +avoirdupois +avow +avowal +avowals +avowed +avowedly +avowing +avulsion +avuncular +await +awaited +awaiting +awaits +awake +awaken +awakened +awakening +awakenings +awakens +awakes +awaking +award +awarded +awarding +awards +aware +awareness +awash +away +awe +awed +aweless +awesome +awesomely +awesomeness +awestruck +awful +awfully +awfulness +awhile +awkward +awkwardest +awkwardly +awkwardness +awls +awn +awning +awnings +awoke +awoken +awol +awry +axe +axed +axehead +axeheads +axeman +axes +axial +axially +axillary +axing +axiom +axiomatic +axiomatically +axiomatising +axioms +axis +axle +axles +axolotl +axon +axons +aye +ayurvedic +azalea +azaleas +azimuth +azimuthal +azores +aztec +aztecs +azure +baa +baaing +baal +babas +babble +babbled +babbler +babblers +babbles +babbling +babe +babel +babes +babies +baboon +baboons +baby +babyface +babyhood +babying +babyish +babylon +babysit +babysitter +babysitters +babysitting +baccarat +bacchus +bach +bachelor +bachelors +bacilli +bacillus +back +backache +backbench +backbencher +backbenchers +backbone +backbones +backchat +backdate +backdated +backdrop +backed +backer +backers +backfire +backfired +backfires +backfiring +backgammon +background +backgrounds +backhand +backhanded +backing +backlash +backless +backlight +backlit +backlog +backlogs +backpack +backpacker +backpackers +backpacking +backpacks +backpedal +backpedalled +backpedalling +backrest +backs +backseat +backside +backsides +backslapping +backslash +backsliding +backspace +backspaces +backspacing +backstabbing +backstage +backstairs +backstreet +backstreets +backstroke +backtrack +backtracked +backtracking +backtracks +backup +backups +backward +backwardness +backwards +backwash +backwater +backwaters +backwoods +backwoodsmen +backyard +bacon +bacteria +bacterial +bactericidal +bacteriological +bacteriologist +bacteriologists +bacteriology +bacteriophage +bacterium +bad +baddy +bade +bader +badge +badged +badger +badgered +badgering +badgers +badges +badinage +badlands +badly +badminton +badness +badtempered +baffle +baffled +bafflement +baffler +baffles +baffling +bafflingly +bag +bagatelle +bagdad +bagels +bagful +bagfuls +baggage +baggages +bagged +bagger +baggier +baggiest +bagging +baggy +baghdad +bagman +bagmen +bagpipe +bagpiper +bagpipes +bags +baguette +baguettes +bah +bahamas +bail +bailed +bailiff +bailiffs +bailing +bailiwick +bailout +bails +bait +baited +baiters +baiting +baitings +baits +bake +baked +bakehouse +baker +bakeries +bakers +bakery +bakes +baking +bakings +baklavas +balaclava +balaclavas +balalaika +balance +balanced +balancer +balances +balancing +balconies +balcony +bald +balder +balderdash +baldest +balding +baldly +baldness +baldy +bale +baled +baleen +baleful +balefully +bales +bali +baling +ball +ballad +ballade +ballades +ballads +ballast +ballasts +ballbearing +ballbearings +ballerina +ballerinas +ballet +balletic +ballets +ballistic +ballistics +balloon +ballooned +ballooning +balloonist +balloonists +balloons +ballot +balloted +balloting +ballots +ballpen +ballpens +ballpoint +ballroom +ballrooms +balls +ballyhoo +balm +balmier +balmiest +balmoral +balms +balmy +baloney +balsa +balsam +baltic +baluster +balusters +balustrade +balustraded +balustrades +bambino +bamboo +bamboos +bamboozle +bamboozled +bamboozles +ban +banal +banalities +banality +banana +bananas +band +bandage +bandaged +bandages +bandaging +bandanna +banded +bandied +bandier +bandiest +banding +bandit +banditry +bandits +bandpass +bands +bandstand +bandwagon +bandwagons +bandwidth +bandwidths +bane +bang +banged +banger +bangers +banging +bangkok +bangle +bangles +bangs +banish +banished +banishes +banishing +banishment +banister +banisters +banjo +bank +bankable +banked +banker +bankers +banking +banknote +banknotes +bankrupt +bankruptcies +bankruptcy +bankrupted +bankrupting +bankrupts +banks +banned +banner +banners +banning +bannister +bannisters +banns +banquet +banqueting +banquets +bans +banshee +banshees +bantam +bantams +bantamweight +banter +bantered +bantering +baobab +baobabs +bap +baptise +baptised +baptises +baptising +baptism +baptismal +baptisms +baptist +baptists +bar +barb +barbarian +barbarians +barbaric +barbarically +barbarism +barbarities +barbarity +barbarous +barbarously +barbecue +barbecued +barbecues +barbed +barbell +barbels +barber +barbers +barbie +barbiturate +barbiturates +barbs +barcode +bard +bards +bare +bareback +bared +barefaced +barefoot +barefooted +barely +bareness +barer +bares +barest +bargain +bargained +bargainers +bargaining +bargains +barge +barged +bargepole +barges +barging +baring +baritone +baritones +barium +bark +barked +barker +barkers +barking +barks +barky +barley +barleycorn +barleycorns +barmaid +barmaids +barman +barmen +barn +barnacle +barnacles +barns +barnstorming +barnyard +barometer +barometers +barometric +baron +baronage +baroness +baronesses +baronet +baronets +baronial +baronies +barons +barony +baroque +barrack +barracking +barracks +barracuda +barrage +barrages +barre +barred +barrel +barrelled +barrels +barren +barrenness +barricade +barricaded +barricades +barrier +barriers +barring +barrister +barristers +barrow +barrows +bars +bart +bartender +barter +bartered +barterer +bartering +basal +basalt +basaltic +basalts +base +baseball +baseballs +based +baseless +baseline +baselines +basely +basement +basements +baseness +baser +bases +basest +bash +bashed +bashes +bashful +bashfully +bashfulness +bashing +basic +basically +basics +basify +basil +basilica +basilicas +basilisk +basilisks +basin +basinful +basing +basins +basis +bask +basked +basket +basketball +basketful +basketry +baskets +basking +basks +basque +basrelief +basreliefs +bass +basses +bassist +bassoon +bassoons +bastard +bastardisation +bastardise +bastardised +bastards +bastardy +baste +basted +basting +bastion +bastions +bat +batch +batched +batches +batching +bate +bated +bates +bath +bathe +bathed +bather +bathers +bathes +bathetic +bathhouse +bathing +bathos +bathrobe +bathroom +bathrooms +baths +bathtub +bathtubs +bathurst +bathwater +batik +batiks +bating +batman +batmen +baton +batons +bats +batsman +batsmen +battalion +battalions +batted +batten +battened +battening +battens +batter +battered +batteries +battering +batters +battery +batting +battle +battleaxe +battlecry +battled +battledress +battlefield +battlefields +battleground +battlegrounds +battlement +battlemented +battlements +battler +battlers +battles +battleship +battleships +battling +batty +bauble +baubles +baud +baulk +baulked +baulking +baulks +baulky +bauxite +bavaria +bavarian +bawdier +bawdiest +bawdy +bawl +bawled +bawling +bawls +bay +bayed +baying +bayonet +bayonets +bays +bazaar +bazaars +bazooka +bazookas +be +beach +beachcomber +beached +beaches +beachhead +beaching +beachside +beachy +beacon +beaconed +beacons +bead +beaded +beadier +beadiest +beading +beadings +beadle +beadles +beads +beadwork +beady +beadyeyed +beagle +beagles +beak +beaked +beaker +beakers +beaks +beam +beamed +beaming +beams +beamy +bean +beanbag +beanery +beanie +beanpole +beans +beanstalk +beanstalks +beany +bear +bearable +bearably +beard +bearded +beardless +beards +bearer +bearers +bearing +bearings +bearish +bears +bearskin +bearskins +beast +beastliest +beastliness +beastly +beasts +beat +beaten +beater +beaters +beatific +beatification +beatifications +beatified +beatifies +beatify +beating +beatings +beatitude +beatitudes +beatnik +beatniks +beats +beatup +beau +beaus +beauteous +beautician +beauties +beautified +beautifier +beautifiers +beautifies +beautiful +beautifully +beautify +beauts +beauty +beaux +beaver +beavering +beavers +bebop +becalm +becalmed +became +because +beck +beckon +beckoned +beckoning +beckons +becks +become +becomes +becoming +bed +bedazzle +bedazzled +bedbug +bedbugs +bedchamber +bedclothes +bedcover +bedded +bedder +bedding +beddings +bedecked +bedecks +bedevil +bedevilled +bedevilment +bedevils +bedfellow +bedfellows +bedlam +bedlinen +bedmaker +bedmakers +bedouin +bedouins +bedpan +bedpans +bedpost +bedraggled +bedridden +bedrock +bedroom +bedrooms +beds +bedsheets +bedside +bedsit +bedsitter +bedsitters +bedsore +bedsores +bedspread +bedspreads +bedstead +bedsteads +bedtime +bedtimes +bee +beech +beeches +beechnut +beechwood +beef +beefburger +beefburgers +beefcake +beefeater +beefier +beefiest +beefs +beefy +beehive +beehives +beekeepers +beeline +beelines +been +beep +beeper +beeping +beeps +beer +beermat +beermats +beers +beery +bees +beeswax +beet +beetle +beetles +beetroot +beets +befall +befallen +befalling +befalls +befell +befit +befits +befitted +befitting +befog +before +beforehand +befoul +befriend +befriended +befriending +befriends +befuddle +befuddled +befuddling +beg +began +begat +beget +begets +begetting +beggar +beggared +beggarly +beggars +beggary +begged +begging +beggings +begin +beginner +beginners +beginning +beginnings +begins +begone +begonias +begot +begotten +begrudge +begrudged +begrudgingly +begs +beguile +beguiled +beguilement +beguiling +begun +behalf +behave +behaved +behaves +behaving +behaviour +behavioural +behaviourally +behaviourism +behaviourist +behaviourists +behaviours +behead +beheaded +beheading +beheld +behemoth +behest +behind +behindhand +behinds +behold +beholden +beholder +beholders +beholding +beholds +behoved +behoves +beige +beijing +being +beings +beirut +bejewel +bejewelled +bel +belabour +belated +belatedly +belatedness +belay +belayed +belays +belch +belched +belches +belching +beleaguered +belfast +belfries +belfry +belgian +belgians +belgium +belgrade +belie +belied +belief +beliefs +belies +believability +believable +believably +believe +believed +believer +believers +believes +believing +belike +belittle +belittled +belittles +belittling +bell +belladonna +bellbottoms +belle +belled +belles +bellicose +bellicosity +bellies +belligerence +belligerent +belligerently +belligerents +bellow +bellowed +bellowing +bellows +bells +belly +bellyful +belong +belonged +belonging +belongings +belongs +beloved +below +belt +belted +belting +beltings +belts +belying +bemoan +bemoaned +bemoaning +bemoans +bemuse +bemused +bemusedly +bemusement +ben +bench +benches +benchmark +benchmarking +benchmarks +bend +bendable +bended +bender +benders +bending +bendings +bends +beneath +benediction +benedictions +benefaction +benefactions +benefactor +benefactors +benefactress +benefice +beneficence +beneficent +beneficial +beneficially +beneficiaries +beneficiary +benefit +benefited +benefiting +benefits +benelux +benevolence +benevolent +benevolently +bengal +benighted +benightedly +benign +benignity +benignly +benjamin +bent +benzene +bequeath +bequeathed +bequeathing +bequest +bequests +berate +berated +berating +berber +bereave +bereaved +bereavement +bereavements +bereaving +bereft +beret +berets +bergs +berk +berlin +berliner +bermuda +bern +berries +berry +berserk +berth +berthed +berths +beryl +beryllium +beseech +beseeched +beseeches +beseeching +beseechingly +beset +besets +besetting +beside +besides +besiege +besieged +besieging +besmirch +besot +besotted +bespattered +bespeak +bespeaking +bespeaks +bespectacled +bespoke +best +bestial +bestiality +bestiary +bestir +bestirred +bestirring +bestknown +bestow +bestowal +bestowals +bestowed +bestowing +bestows +bestride +bestrode +bests +bestseller +bestsellers +bestselling +bet +beta +betel +betide +betimes +betoken +betokened +betokens +betray +betrayal +betrayals +betrayed +betrayer +betrayers +betraying +betrays +betroth +betrothal +betrothed +betroths +bets +betted +better +bettered +bettering +betterment +betters +betting +between +betwixt +bevel +bevelled +bevelling +bevels +beverage +beverages +bevvy +bevy +bewail +bewailed +bewailing +bewails +beware +bewhiskered +bewilder +bewildered +bewildering +bewilderingly +bewilderment +bewilders +bewitch +bewitched +bewitching +beyond +biannual +bias +biased +biases +biasing +biassed +biasses +biassing +bib +bible +bibles +biblical +biblically +biblicists +bibliographic +bibliographical +bibliographies +bibliography +bibliophile +bibs +bicameral +bicarb +bicarbonate +bicentenary +bicentennial +biceps +bicker +bickering +bickerings +bicycle +bicycled +bicycles +bicycling +bid +bidden +bidder +bidders +bidding +biddings +bide +bided +bides +bidet +biding +bidirectional +bids +biennial +biennials +bier +bifocal +bifocals +bifurcated +bifurcation +bifurcations +big +bigamist +bigamists +bigamous +bigamy +bigapple +bigben +bigger +biggest +biggish +bigheads +bigness +bigot +bigoted +bigotry +bigots +bijou +bijoux +bike +biker +bikes +biking +bikini +bikinis +bilabial +bilateral +bilaterally +bile +biles +bilge +bilges +bilharzia +biliary +bilingual +bilingualism +bilinguals +bilious +bill +billable +billboard +billboards +billed +billet +billeted +billeting +billets +billiard +billiards +billing +billings +billion +billionaire +billionaires +billions +billionth +billow +billowed +billowing +billows +billowy +billposters +bills +billy +biltong +bimbo +bimodal +bimonthly +bin +binaries +binary +bind +binder +binders +bindery +binding +bindings +binds +bindweed +bing +binge +bingo +binnacle +binocular +binoculars +binodal +binomial +bins +biochemical +biochemically +biochemist +biochemistry +biochemists +biodegradable +biodiversity +bioengineering +biofeedback +biogeographical +biographer +biographers +biographical +biographically +biographies +biography +biological +biologically +biologist +biologists +biology +biomass +biomedical +biometric +biometrics +biometry +biomorph +bionic +bionics +biophysical +biopsies +biopsy +biorhythm +biorhythms +bioscope +biosphere +biospheres +biosynthesis +biota +biotechnological +biotechnologist +biotechnologists +biotechnology +biotic +bipartisan +bipartite +biped +bipedal +bipedalism +bipeds +biplane +biplanes +bipolar +birch +birched +birches +bird +birdbath +birdbaths +birdcage +birdcages +birdie +birdies +birds +birdsong +birdtables +birdwatcher +birdwatchers +birdwatching +birefringence +birefringent +birth +birthday +birthdays +birthmark +birthmarks +birthplace +birthrate +birthright +birthrights +births +biscuit +biscuits +biscuity +bisect +bisected +bisecting +bisects +bisexual +bisexuality +bisexuals +bishop +bishopric +bishoprics +bishops +bismarck +bismuth +bison +bisons +bissau +bistable +bistro +bit +bitch +bitches +bitchiness +bitching +bitchy +bite +biter +biters +bites +biting +bitingly +bitmap +bits +bitten +bitter +bitterest +bitterly +bittern +bitterness +bitters +bittersweet +bittiness +bitts +bitty +bitumen +bituminous +bivalve +bivalves +bivouac +bivouacked +bivouacs +biweekly +biz +bizarre +bizarrely +bizarreness +blab +blabbed +blabber +blabbering +blabs +black +blackball +blackballed +blackballing +blackberries +blackberry +blackbird +blackbirds +blackboard +blackboards +blackcurrant +blackcurrants +blacked +blacken +blackened +blackening +blackens +blacker +blackest +blackfly +blackguard +blackhead +blackheads +blacking +blackish +blackjack +blackleg +blacklist +blacklisted +blacklisting +blacklists +blackly +blackmail +blackmailed +blackmailer +blackmailers +blackmailing +blackmails +blackness +blackout +blackouts +blacks +blacksea +blackshirts +blacksmith +blacksmiths +blackthorn +bladder +bladders +blade +bladed +blades +blah +blame +blameable +blamed +blameful +blameless +blamelessly +blamelessness +blames +blameworthy +blaming +blanch +blanched +blanching +blancmange +bland +blandest +blandishments +blandly +blandness +blank +blanked +blanker +blanket +blanketed +blanketing +blankets +blanking +blankly +blankness +blanks +blare +blared +blares +blaring +blase +blaspheme +blasphemed +blasphemer +blasphemers +blasphemies +blaspheming +blasphemous +blasphemously +blasphemy +blast +blasted +blaster +blasters +blasting +blasts +blat +blatancy +blatant +blatantly +blaze +blazed +blazer +blazers +blazes +blazing +bleach +bleached +bleacher +bleachers +bleaches +bleaching +bleak +bleaker +bleakest +bleakly +bleakness +blearily +bleary +blearyeyed +bleat +bleated +bleating +bleats +bled +bleed +bleeder +bleeders +bleeding +bleeds +bleep +bleeped +bleeper +bleeping +bleeps +blemish +blemished +blemishes +blench +blenched +blend +blended +blender +blenders +blending +blends +blesbok +bless +blessed +blessedness +blesses +blessing +blessings +blew +blight +blighted +blighting +blights +blimp +blimps +blind +blinded +blinder +blindest +blindfold +blindfolded +blindfolds +blinding +blindingly +blindly +blindness +blinds +blink +blinked +blinker +blinkered +blinkering +blinkers +blinking +blinks +blip +blips +bliss +blissful +blissfully +blister +blistered +blistering +blisteringly +blisters +blithe +blithely +blithering +blitz +blitzkrieg +blizzard +blizzards +bloat +bloated +bloating +blob +blobs +bloc +block +blockade +blockaded +blockades +blockading +blockage +blockages +blockbuster +blockbusters +blockbusting +blocked +blockers +blockhead +blockheads +blocking +blockish +blocks +blocky +blocs +bloke +blokes +blond +blonde +blonder +blondes +blondest +blondhaired +blonds +blood +bloodbath +bloodcurdling +blooded +bloodhound +bloodhounds +bloodied +bloodier +bloodies +bloodiest +bloodily +bloodless +bloodlessness +bloodletting +bloodline +bloodlust +bloodred +bloods +bloodshed +bloodshot +bloodsport +bloodsports +bloodstain +bloodstained +bloodstains +bloodstock +bloodstone +bloodstream +bloodsuckers +bloodthirstier +bloodthirstiest +bloodthirsty +bloodworm +bloody +bloodymindedness +bloom +bloomed +bloomer +bloomers +blooming +blooms +bloomy +blossom +blossomed +blossoming +blossoms +blot +blotch +blotched +blotches +blotchy +blots +blotted +blotter +blotting +blouse +blouses +blow +blowdried +blowdrying +blowed +blower +blowers +blowfly +blowing +blowlamp +blown +blowpipe +blowpipes +blows +blowtorch +blowtorches +blowup +blubber +blubbered +blubbering +bludgeon +bludgeoned +bludgeoning +bludgeons +blue +bluebell +bluebells +blueberries +blueberry +bluebird +bluebirds +blueblooded +bluebottle +bluebottles +bluecollar +blueish +bluemoon +blueness +bluenile +blueprint +blueprints +bluer +blues +bluest +bluesy +bluff +bluffed +bluffer +bluffers +bluffing +bluffs +bluish +blunder +blunderbuss +blundered +blundering +blunderings +blunders +blunt +blunted +blunter +bluntest +blunting +bluntly +bluntness +blunts +blur +blurb +blurbs +blurred +blurring +blurry +blurs +blurt +blurted +blurting +blurts +blush +blushed +blusher +blushers +blushes +blushing +blushingly +bluster +blustered +blustering +blusters +blustery +bmus +boa +boar +board +boarded +boarder +boarders +boardgames +boarding +boardings +boardroom +boardrooms +boards +boars +boas +boast +boasted +boaster +boasters +boastful +boastfully +boastfulness +boasting +boasts +boat +boated +boater +boaters +boathouse +boathouses +boating +boatload +boatman +boatmen +boats +boatswain +bob +bobbed +bobbies +bobbin +bobbing +bobbins +bobble +bobbles +bobby +bobcat +bobs +bobsled +bobtail +bobtails +bode +boded +bodes +bodice +bodices +bodied +bodies +bodiless +bodily +boding +bodkin +body +bodybuilding +bodyguard +bodyguards +bodywork +boer +boers +boerwar +boffin +boffins +bog +bogey +bogeyman +bogeymen +bogeys +bogged +boggiest +bogging +boggle +boggled +boggles +boggling +bogglingly +boggy +bogies +bogs +bogus +bogy +bohemian +boil +boiled +boiler +boilermakers +boilers +boiling +boils +boisterous +boisterously +bola +bold +bolder +boldest +boldface +boldly +boldness +bole +bolero +boleyn +bolivia +bollard +bollards +bologna +bolster +bolstered +bolstering +bolsters +bolt +bolted +bolting +bolts +bomb +bombard +bombarded +bombardier +bombarding +bombardment +bombardments +bombards +bombast +bombastic +bombasts +bombay +bombed +bomber +bombers +bombing +bombings +bombs +bombshell +bonanza +bonanzas +bonbon +bonbons +bond +bondage +bonded +bondholders +bonding +bondings +bonds +bone +boned +boneless +bonemeal +bones +boney +bonfire +bonfires +bong +bongs +bonier +boniest +bonn +bonnet +bonneted +bonnets +bonnie +bonniest +bonny +bonobo +bonsai +bonus +bonuses +bony +boo +boobies +booboo +booby +boobytrap +boobytrapped +boobytraps +booed +boohoo +booing +book +bookable +bookbinder +bookbinders +bookbinding +bookcase +bookcases +booked +bookends +bookers +bookie +bookies +booking +bookings +bookish +bookkeeper +bookkeeping +booklet +booklets +bookmaker +bookmakers +bookmaking +bookmark +bookmarks +books +bookseller +booksellers +bookshelf +bookshelves +bookshop +bookshops +bookstall +bookstalls +bookwork +bookworm +bookworms +boom +boomed +boomer +boomerang +boomeranging +boomerangs +booming +booms +boon +boons +boor +boorish +boorishly +boorishness +boors +boos +boost +boosted +booster +boosters +boosting +boosts +boot +booted +bootees +booth +booths +booting +bootlace +bootlaces +bootleg +bootless +bootprints +boots +bootstrap +bootstraps +booty +booze +boozed +boozer +boozers +boozes +bop +bops +boracic +borate +borates +borax +bordeaux +border +bordered +borderer +bordering +borderline +borders +bore +boreal +bored +boredom +borehole +boreholes +borer +borers +bores +boring +boringly +born +bornagain +borne +borneo +boron +borough +boroughs +borrow +borrowable +borrowed +borrower +borrowers +borrowing +borrowings +borrows +borstal +borstals +bosnia +bosom +bosoms +boson +bosons +boss +bossed +bosses +bossier +bossiest +bossiness +bossing +bossy +boston +bosun +botanic +botanical +botanically +botanist +botanists +botany +botch +botched +both +bother +bothered +bothering +bothers +bothersome +bothy +botswana +bottle +bottled +bottlefed +bottlefeed +bottleneck +bottlenecks +bottler +bottles +bottling +bottom +bottomed +bottoming +bottomless +bottommost +bottoms +botulism +boudoir +boudoirs +bouffant +bougainvillea +bough +boughs +bought +boulder +boulders +boulevard +boulevards +bounce +bounced +bouncer +bouncers +bounces +bouncier +bounciest +bouncing +bouncy +bound +boundaries +boundary +bounded +boundedness +bounder +bounders +bounding +boundless +bounds +bounteous +bounties +bountiful +bountifully +bounty +bouquet +bouquets +bourbon +bourbons +bourgeois +bourgeoisie +bout +boutique +boutiques +bouts +bovine +bow +bowdlerisation +bowdlerised +bowdlerising +bowed +bowel +bowels +bower +bowers +bowie +bowing +bowl +bowlder +bowled +bowler +bowlers +bowlines +bowling +bowls +bowman +bowmen +bows +bowsprit +bowstring +box +boxed +boxer +boxers +boxes +boxful +boxing +boxoffice +boxtops +boxwood +boxy +boy +boycott +boycotted +boycotting +boycotts +boyfriend +boyfriends +boyhood +boyish +boyishly +boys +boyscout +bra +brabble +brabbled +brabbles +brace +braced +bracelet +bracelets +bracer +braces +brachiopods +bracing +bracingly +bracken +bracket +bracketed +bracketing +brackets +brackish +bradawl +bradycardia +brag +braggart +braggarts +bragged +bragging +brags +brahman +brahms +braid +braided +braiding +braids +brail +braille +brain +braincell +braincells +brainchild +braindamaged +braindead +brainier +brainless +brainlessly +brainlessness +brainpower +brains +brainstorm +brainstorming +brainstorms +brainteasers +brainteasing +brainwash +brainwashed +brainwashing +brainwave +brainwaves +brainy +braise +braised +brake +brake +braked +brakes +braking +bramble +brambles +bran +branch +branched +branches +branching +branchy +brand +branded +brandies +branding +brandish +brandished +brandishes +brandishing +brands +brandy +brans +bras +brash +brasher +brashly +brashness +brasiers +brasil +brasilia +brass +brasserie +brasses +brassiere +brassy +brat +brats +bratty +bravado +brave +braved +bravely +braver +bravery +braves +bravest +braving +bravo +braw +brawl +brawled +brawler +brawling +brawls +brawn +brawnier +brawniest +brawny +bray +brayed +braying +brays +braze +brazen +brazened +brazenly +brazenness +brazier +braziers +brazil +brazing +breach +breached +breaches +breaching +bread +breadandbutter +breadboard +breadboards +breadcrumbs +breaded +breadfruit +breadline +breads +breadth +breadths +breadwinner +breadwinners +break +breakable +breakage +breakages +breakaway +breakaways +breakdown +breakdowns +breaker +breakers +breakfast +breakfasted +breakfasting +breakfasts +breakin +breaking +breakins +breakneck +breakout +breakpoint +breakpoints +breaks +breakthrough +breakthroughs +breakup +breakups +breakwater +breakwaters +bream +breast +breastbone +breasted +breastfeed +breastfeeding +breasting +breastplate +breasts +breaststroke +breath +breathable +breathalysed +breathalyser +breathalysers +breathe +breathed +breather +breathes +breathing +breathings +breathingspace +breathless +breathlessly +breathlessness +breaths +breathtaking +breathtakingly +breathy +breccias +brecciated +bred +breech +breeches +breed +breeder +breeders +breeding +breeds +breeze +breezed +breezes +breezier +breeziest +breezily +breezing +breezy +brethren +breton +breviary +brevity +brew +brewage +brewed +brewer +breweries +brewers +brewery +brewing +brews +briar +bribe +bribed +briber +bribers +bribery +bribes +bribing +bricabrac +brick +brickbat +brickbats +bricked +bricking +bricklayer +bricklayers +bricklaying +brickred +bricks +brickwork +bridal +bridals +bride +bridegroom +bridegrooms +brides +bridesmaid +bridesmaids +bridge +bridgebuilding +bridged +bridgehead +bridges +bridging +bridle +bridled +bridles +bridleway +bridleways +bridling +brief +briefcase +briefcases +briefed +briefer +briefest +briefing +briefings +briefly +briefs +briers +brig +brigade +brigades +brigadier +brigadiers +brigand +brigands +bright +brighten +brightened +brightening +brightens +brighter +brightest +brighteyed +brightly +brightness +brightnesses +brighton +brilliance +brilliancy +brilliant +brilliantly +brim +brimmed +brimming +brims +brimstone +brindled +brine +brines +bring +bringer +bringing +brings +brink +brinkmanship +brinks +briny +brio +brioche +briquettes +brisbane +brisk +brisker +briskest +briskly +briskness +bristle +bristled +bristles +bristling +bristly +brit +britain +british +britons +brittle +brittleness +broach +broached +broaches +broaching +broad +broadband +broadcast +broadcaster +broadcasters +broadcasting +broadcasts +broaden +broadened +broadening +broadens +broader +broadest +broadleaved +broadloom +broadly +broadminded +broadmindedness +broadness +broadsheet +broadsheets +broadside +broadsides +broadsword +broadswords +broadway +brocade +brocaded +broccoli +brochure +brochures +brogue +brogues +broil +broiled +broiler +broiling +broils +broke +broken +brokenhearted +brokenly +broker +brokerage +brokered +brokers +broking +bromide +bromides +bromine +bronchi +bronchial +bronchitis +bronco +brontosaurus +bronze +bronzed +bronzes +brooch +brooches +brood +brooded +broodiness +brooding +broodingly +broods +broody +brook +brooklyn +brooks +broom +brooms +broomstick +broomsticks +broth +brothel +brothels +brother +brotherhood +brotherinlaw +brotherly +brothers +brothersinlaw +broths +brought +brouhaha +brow +browbeat +browbeaten +browbeating +brown +browned +browner +brownest +brownie +brownies +browning +brownish +brownness +browns +brows +browse +browsed +browser +browsers +browses +browsing +bruise +bruised +bruiser +bruisers +bruises +bruising +brunch +brunches +brunei +brunet +brunets +brunette +brunettes +brunt +brunts +brush +brushed +brushes +brushing +brushoff +brushup +brushwood +brushwork +brushy +brusque +brusquely +brusqueness +brussels +brutal +brutalisation +brutalise +brutalised +brutalising +brutalism +brutalities +brutality +brutally +brute +brutes +brutish +brutishness +brutus +bub +bubble +bubbled +bubblegum +bubbles +bubblier +bubbliest +bubbling +bubbly +bubonic +buccaneer +buccaneering +buccaneers +buck +bucked +bucket +bucketful +bucketfuls +bucketing +buckets +bucking +buckle +buckled +buckler +bucklers +buckles +buckling +buckminsterfullerene +buckpassing +bucks +buckshot +buckskin +bucolic +bud +budapest +budded +buddhism +buddhist +buddies +budding +buddings +buddy +budge +budged +budgerigar +budget +budgetary +budgeted +budgeting +budgets +budgie +budgies +budging +buds +buff +buffalo +buffer +buffered +buffering +buffers +buffet +buffeted +buffeting +buffetings +buffets +buffing +buffoon +buffoonery +buffoons +buffs +bug +bugbear +bugbears +bugeyed +bugged +bugger +buggered +buggering +buggers +buggery +buggies +bugging +buggy +bugle +bugler +buglers +bugles +bugs +build +builder +builders +building +buildings +builds +buildup +buildups +built +builtin +builtup +bulb +bulbous +bulbs +bulgaria +bulge +bulged +bulges +bulging +bulgy +bulimia +bulimic +bulk +bulkhead +bulkheads +bulkier +bulkiest +bulks +bulky +bull +bulldog +bulldogs +bulldoze +bulldozed +bulldozer +bulldozers +bulldozing +bullet +bulletin +bulletins +bulletproof +bullets +bullfight +bullfighting +bullfinch +bullfrog +bullied +bullies +bullion +bullish +bullock +bullocks +bulls +bully +bullying +bulrushes +bulwark +bulwarks +bum +bumble +bumbled +bumbler +bumblers +bumbles +bumbling +bump +bumped +bumper +bumpers +bumpier +bumpiest +bumping +bumpkin +bumpkins +bumps +bumptious +bumpy +bums +bun +bunch +bunched +bunches +bunching +bundle +bundled +bundles +bundling +bung +bungalow +bungalows +bungee +bungle +bungled +bungler +bunglers +bungles +bungling +bunion +bunions +bunk +bunked +bunker +bunkered +bunkers +bunks +bunkum +bunnies +bunny +buns +bunting +bunyan +buoy +buoyancy +buoyant +buoyantly +buoyed +buoys +bur +burble +burbled +burbles +burbling +burden +burdened +burdening +burdens +burdensome +burdock +bureau +bureaucracies +bureaucracy +bureaucrat +bureaucratic +bureaucratically +bureaucratisation +bureaucrats +bureaus +bureaux +burette +burg +burgeon +burgeoned +burgeoning +burgeons +burger +burgers +burghers +burglar +burglaries +burglars +burglary +burgle +burgled +burgles +burgling +burgundy +burial +burials +buried +buries +burlesque +burlesquing +burlier +burliest +burly +burma +burmese +burn +burned +burner +burners +burning +burnings +burnished +burnishing +burns +burnt +burp +burped +burping +burps +burr +burrow +burrowed +burrowing +burrows +burs +bursar +bursaries +bursars +bursary +burst +bursted +bursting +bursts +burundi +bury +burying +bus +buses +bush +bushel +bushels +bushes +bushfire +bushier +bushiest +bushiness +bushing +bushland +bushman +bushmen +bushy +busied +busier +busies +busiest +busily +business +businesses +businesslike +businessman +businessmen +businesswoman +busk +busker +buskers +busking +busman +busmen +bussed +bussing +bust +bustard +bustards +busted +busters +bustier +busting +bustle +bustled +bustles +bustling +busts +busty +busy +busybodies +busybody +busying +but +butane +butcher +butchered +butchering +butchers +butchery +butler +butlers +buts +butt +butted +butter +buttercup +buttercups +buttered +butterfat +butterflies +butterfly +buttering +buttermilk +butters +butterscotch +buttery +butting +buttock +buttocks +button +buttoned +buttonhole +buttonholed +buttonholes +buttoning +buttons +buttress +buttressed +buttresses +buttressing +butts +buxom +buy +buyer +buyers +buying +buyout +buys +buzz +buzzard +buzzards +buzzed +buzzer +buzzers +buzzes +buzzing +buzzwords +by +bye +byebye +byelaw +byelaws +byelection +byelections +byes +bygone +bygones +bylaw +bylaws +byline +bypass +bypassed +bypasses +bypassing +bypath +bypaths +byproduct +byproducts +bystander +bystanders +byte +bytes +byway +byways +byword +cab +cabal +cabals +cabaret +cabarets +cabbage +cabbages +cabby +cabin +cabinet +cabinetmaker +cabinets +cabins +cable +cabled +cables +cableway +cabling +cabman +cabmen +caboodle +caboose +cabriolet +cabs +cacao +cache +cached +caches +cachet +caching +cackle +cackled +cackles +cackling +cacophonous +cacophony +cacti +cactus +cactuses +cad +cadaver +cadaverous +cadavers +caddie +caddied +caddies +caddy +caddying +cade +cadence +cadences +cadenza +cadenzas +cadet +cadets +cadge +cadged +cadger +cadges +cadmium +cads +caesar +cafe +cafes +cafeteria +cafeterias +caftan +caftans +cage +caged +cages +cagey +cagiest +caging +cagoule +cagoules +cagy +cahoots +caiman +caimans +cain +cairn +cairns +cairo +cajole +cajoled +cajoling +cake +caked +cakes +caking +calamities +calamitous +calamitously +calamity +calcareous +calcification +calcified +calcify +calcite +calcium +calculable +calculate +calculated +calculatedly +calculates +calculating +calculation +calculations +calculative +calculator +calculators +calculus +calcutta +caldera +caldron +caldrons +calendar +calendars +calf +calibrate +calibrated +calibrates +calibrating +calibration +calibrations +calibrator +calibrators +calibre +calico +calif +california +caliper +calipers +caliph +call +callable +called +caller +callers +callgirl +callgirls +calligrapher +calligraphic +calligraphy +calling +callings +calliper +callipers +callisthenics +callous +calloused +callously +callousness +callow +callowness +calls +callup +callus +calm +calmed +calmer +calmest +calming +calmly +calmness +calms +calorie +calories +calorific +calorimeter +calorimeters +calorimetry +calory +calumniate +calumnies +calumny +calvary +calve +calves +calvin +calving +calypso +cam +camaraderie +camber +cambodia +camcorder +camcorders +came +camel +camelhair +camelot +camels +cameo +camera +cameraman +cameramen +cameras +camerawork +camisole +camomile +camouflage +camouflaged +camouflages +camouflaging +camp +campaign +campaigned +campaigner +campaigners +campaigning +campaigns +campanile +campanological +campanologist +campanology +camped +camper +campers +campfire +campfires +camphor +camping +camps +campsite +campsites +campus +campuses +cams +camshaft +can +canaan +canada +canadian +canal +canalisation +canals +canape +canapes +canard +canaries +canary +canberra +cancan +cancel +cancellation +cancellations +cancelled +cancelling +cancels +cancer +cancerous +cancers +candelabra +candelas +candid +candidacy +candidate +candidates +candidature +candidatures +candidly +candies +candle +candlelight +candlelit +candlepower +candles +candlestick +candlesticks +candour +candy +cane +caned +canes +canine +canines +caning +canings +canister +canisters +cannabis +canned +cannel +cannery +cannes +cannibal +cannibalise +cannibalised +cannibalising +cannibalism +cannibalistic +cannibals +cannily +canning +cannon +cannonball +cannonballs +cannoned +cannoning +cannons +cannot +cannula +canny +canoe +canoed +canoeing +canoeist +canoeists +canoes +canon +canonic +canonical +canonically +canonisation +canonise +canonised +canonry +canons +canopener +canopied +canopies +canopy +cans +cant +cantaloupe +cantankerous +cantata +cantatas +canted +canteen +canteens +canter +cantered +cantering +canters +canticle +canticles +cantilever +cantilevered +canton +cantons +cantor +canvas +canvased +canvases +canvass +canvassed +canvasser +canvassers +canvasses +canvassing +canyon +canyons +cap +capabilities +capability +capable +capably +capacious +capacitance +capacities +capacitive +capacitor +capacitors +capacity +caparisoned +cape +caped +caper +capered +capering +capers +capes +capetown +capillaries +capillary +capita +capital +capitalisation +capitalise +capitalised +capitalises +capitalising +capitalism +capitalist +capitalistic +capitalists +capitally +capitals +capitate +capitation +capitol +capitulate +capitulated +capitulates +capitulating +capitulation +capped +capping +cappuccino +capri +caprice +caprices +capricious +capriciously +capriciousness +capriole +capris +caps +capsize +capsized +capsizes +capsizing +capstan +capstans +capsule +capsules +captain +captaincy +captained +captaining +captains +caption +captioned +captions +captious +captivate +captivated +captivating +captivation +captive +captives +captivity +captor +captors +capture +captured +captures +capturing +capybara +car +carabinieri +caracal +caracals +carafe +caramel +caramelised +caramels +carapace +carat +carats +caravan +caravanning +caravans +caravel +caraway +carbide +carbine +carbines +carbohydrate +carbohydrates +carbolic +carbon +carbonaceous +carbonate +carbonated +carbonates +carbonic +carboniferous +carbonise +carbons +carbonyl +carborundum +carboxyl +carbuncle +carbuncles +carburettor +carburettors +carcase +carcases +carcass +carcasses +carcinogen +carcinogenesis +carcinogenic +carcinogens +carcinoma +carcinomas +card +cardboard +carded +cardholders +cardiac +cardiff +cardigan +cardigans +cardinal +cardinality +cardinals +carding +cardioid +cardiologist +cardiology +cardiopulmonary +cardiovascular +cards +care +cared +career +careered +careering +careerism +careerist +careerists +careers +carefree +careful +carefully +carefulness +careless +carelessly +carelessness +carer +carers +cares +caress +caressed +caresses +caressing +caressingly +caretaker +caretakers +carets +careworn +cargo +caribou +caricature +caricatured +caricatures +caricaturisation +caries +caring +carmine +carnage +carnages +carnal +carnality +carnally +carnation +carnations +carnival +carnivals +carnivore +carnivores +carnivorous +carnivorousness +carol +carols +carotene +carotid +carotin +carouse +carousel +carousing +carp +carpal +carpenter +carpenters +carpentry +carpet +carpeted +carpeting +carpets +carping +carport +carports +carps +carrel +carriage +carriages +carriageway +carriageways +carried +carrier +carriers +carries +carrion +carrot +carrots +carroty +carry +carrycot +carrying +cars +carsick +cart +carted +cartel +cartels +carter +carthorses +cartilage +carting +cartload +cartloads +cartographer +cartographers +cartographic +cartography +carton +cartons +cartoon +cartoonist +cartoonists +cartoons +cartouche +cartridge +cartridges +carts +cartwheel +cartwheels +carve +carved +carver +carvers +carvery +carves +carving +carvings +caryatids +casanova +cascade +cascaded +cascades +cascading +cascara +case +casebook +cased +caseload +caseloads +casement +casements +cases +casework +cash +cashbox +cashed +cashes +cashew +cashier +cashiers +cashing +cashless +cashmere +casing +casings +casino +cask +casket +caskets +casks +cassava +casserole +casseroles +cassette +cassettes +cassock +cassocks +cassowary +cast +castanet +castanets +castaway +castaways +caste +castellated +caster +casters +castes +castigate +castigated +castigates +castigating +casting +castings +castiron +castle +castled +castles +castling +castoff +castoffs +castor +castors +castrate +castrated +castrating +castration +castrato +casts +casual +casually +casualness +casuals +casualties +casualty +casuistry +cat +cataclysm +cataclysmic +catacomb +catacombs +catalepsy +catalogue +catalogued +cataloguer +cataloguers +catalogues +cataloguing +catalyse +catalysed +catalyses +catalysing +catalysis +catalyst +catalysts +catalytic +catamaran +catamarans +catanddog +catapult +catapulted +catapulting +catapults +cataract +cataracts +catarrh +catastrophe +catastrophes +catastrophic +catastrophically +catatonic +catcalls +catch +catched +catcher +catchers +catches +catchier +catchiest +catching +catchment +catchphrase +catchphrases +catchword +catchwords +catchy +catechism +catechisms +catechist +catechists +categorical +categorically +categories +categorisation +categorisations +categorise +categorised +categorises +categorising +category +cater +catered +caterer +caterers +catering +caterpillar +caterpillars +caters +caterwaul +caterwauls +catfish +catgut +catguts +catharsis +cathartic +cathedral +cathedrals +catheter +catheterisation +catheters +cathode +cathodes +catholic +cation +cationic +cations +catlike +catnap +catnip +cats +catsuit +cattery +cattle +catwalk +catwalks +caucus +caucuses +caudal +caught +cauldron +cauldrons +cauliflower +cauliflowers +caulking +causal +causality +causally +causation +causative +cause +caused +causes +causeway +causeways +causing +caustic +caustically +caustics +cauterise +cauterising +caution +cautionary +cautioned +cautioning +cautions +cautious +cautiously +cautiousness +cavalcade +cavalier +cavalierly +cavaliers +cavalry +cavalryman +cavalrymen +cave +caveat +caveats +caved +cavein +caveman +cavemen +caver +cavern +cavernous +caverns +cavers +caves +caviar +caviare +caviars +caving +cavitation +cavities +cavity +cavort +cavorted +cavorting +cavorts +caw +cawing +cayman +caymans +cease +ceased +ceasefire +ceasefires +ceaseless +ceaselessly +ceases +ceasing +cedar +cedars +cedarwood +cede +ceded +cedilla +ceding +ceilidh +ceilidhs +ceiling +ceilings +celandine +celeb +celebrant +celebrants +celebrate +celebrated +celebrates +celebrating +celebration +celebrations +celebratory +celebrities +celebrity +celeriac +celery +celestial +celestially +celibacy +celibate +cell +cellar +cellars +cellist +cellists +cello +cellophane +cells +cellular +cellulite +celluloid +cellulose +celsius +celtic +cement +cemented +cementing +cements +cemeteries +cemetery +cenotaph +censer +censor +censored +censorial +censoring +censorious +censoriousness +censors +censorship +censure +censured +censures +censuring +census +censuses +cent +centaur +centaurs +centenarians +centenary +centennial +centigrade +centime +centimes +centimetre +centimetres +centipede +centipedes +central +centralisation +centralise +centralised +centraliser +centralisers +centralises +centralising +centralism +centralist +centrality +centrally +centre +centred +centrefold +centrefolds +centreing +centrepiece +centrepieces +centres +centric +centrifugal +centrifugally +centrifugation +centrifuge +centrifuged +centrifuges +centrifuging +centring +centripetal +centrist +centrists +centroid +centroids +cents +centuries +centurion +centurions +century +cephalopods +ceramic +ceramics +ceramist +cereal +cereals +cerebellum +cerebral +cerebrum +ceremonial +ceremonially +ceremonials +ceremonies +ceremonious +ceremoniously +ceremony +ceres +cerise +certain +certainly +certainties +certainty +certifiable +certifiably +certificate +certificated +certificates +certification +certified +certifies +certify +certifying +certitude +certitudes +cervical +cervix +cess +cessation +cessations +cession +cesspit +cesspool +cesspools +cetacean +ceylon +chacha +chad +chafe +chafed +chafes +chaff +chaffed +chaffinch +chaffinches +chaffing +chafing +chagrin +chagrined +chain +chained +chaining +chains +chainsaw +chainsaws +chainsmoke +chainsmoked +chainsmoking +chair +chaired +chairing +chairlift +chairman +chairmanship +chairmanships +chairmen +chairperson +chairpersons +chairs +chairwoman +chairwomen +chaldronxxxxxxxxxxxxxx +chalet +chalets +chalice +chalices +chalk +chalked +chalking +chalks +chalky +challenge +challenged +challenger +challengers +challenges +challenging +challengingly +chamber +chambered +chamberlain +chamberlains +chambermaid +chambermaids +chamberpot +chamberpots +chambers +chameleon +chameleons +chamfer +chamfered +chamois +chamomile +champ +champagne +champagnes +champing +champion +championed +championing +champions +championship +championships +champs +chance +chanced +chancel +chancellery +chancellor +chancellors +chancellorship +chancer +chancery +chances +chancier +chanciest +chancing +chancy +chandelier +chandeliers +chandler +change +changeability +changeable +changed +changeless +changeling +changeover +changeovers +changer +changers +changes +changing +channel +channelled +channelling +channels +chant +chanted +chanter +chanteuse +chanting +chantings +chantries +chantry +chants +chaos +chaotic +chaotically +chap +chapel +chapels +chaperon +chaperone +chaperoned +chaperones +chaplain +chaplaincy +chaplains +chaplainxxxxxxxx +chapman +chapped +chapping +chaps +chapter +chapters +char +charabanc +character +characterful +characterisation +characterisations +characterise +characterised +characterises +characterising +characteristic +characteristically +characteristics +characterless +characters +charade +charades +charcoal +charcuterie +chared +charge +chargeable +charged +charger +chargers +charges +charging +chariot +charioteer +charioteers +chariots +charisma +charismas +charismatic +charismatically +charismatics +charitable +charitably +charities +charity +charlady +charlatan +charlatans +charles +charlie +charm +charmed +charmer +charmers +charming +charmingly +charmless +charms +charon +charred +charring +chars +chart +charted +charter +chartered +chartering +charters +charting +chartists +charts +charwoman +chary +chase +chased +chaser +chasers +chases +chasing +chasm +chasms +chassis +chaste +chastely +chastened +chastening +chastise +chastised +chastisement +chastises +chastising +chastity +chat +chateau +chats +chatted +chattel +chattels +chatter +chatterbox +chattered +chatterer +chattering +chatters +chattily +chatting +chatty +chauffeur +chauffeured +chauffeurs +chauvinism +chauvinist +chauvinistic +chauvinists +cheap +cheapen +cheapened +cheapening +cheapens +cheaper +cheapest +cheapish +cheaply +cheapness +cheapskates +cheat +cheated +cheater +cheaters +cheating +cheats +check +checked +checker +checkered +checkering +checkers +checkin +checking +checklist +checklists +checkmate +checkout +checkouts +checkpoint +checkpoints +checks +checkup +checkups +cheddar +cheek +cheekbone +cheekbones +cheeked +cheekier +cheekiest +cheekily +cheeking +cheeks +cheeky +cheep +cheeping +cheer +cheered +cheerful +cheerfully +cheerfulness +cheerier +cheeriest +cheerily +cheering +cheerio +cheerleader +cheerleaders +cheerless +cheerlessness +cheers +cheery +cheese +cheeseboard +cheeseburger +cheeseburgers +cheesecake +cheesecloth +cheesemaking +cheeses +cheesy +cheetah +cheetahs +chef +chefs +chekov +chemic +chemical +chemically +chemicals +chemiluminescence +chemiluminescent +chemise +chemist +chemistry +chemists +chemosynthesis +chemotherapeutic +chemotherapy +cheque +chequebook +chequebooks +chequer +chequerboard +chequered +chequering +chequers +cheques +cherish +cherished +cherishes +cherishing +cheroot +cheroots +cherries +cherry +cherryred +cherub +cherubic +cherubim +cherubs +chess +chessboard +chessboards +chessmen +chest +chested +chester +chesterfield +chestnut +chestnuts +chests +chesty +chevalier +chevron +chevrons +chew +chewable +chewed +chewer +chewier +chewiest +chewing +chews +chewy +chic +chicago +chicane +chicanery +chick +chicken +chickens +chicks +chicory +chide +chided +chides +chiding +chief +chiefly +chiefs +chieftain +chieftains +chiffon +chihuahua +chihuahuas +chilblain +chilblains +child +childbearing +childbirth +childcare +childhood +childhoods +childish +childishly +childishness +childless +childlessness +childlike +childly +childminders +childproof +children +chilean +chili +chill +chilled +chiller +chillers +chilli +chillier +chillies +chilliest +chilliness +chilling +chillingly +chills +chilly +chimaera +chimaerical +chime +chimed +chimera +chimeras +chimerical +chimes +chiming +chimney +chimneys +chimp +chimpanzee +chimpanzees +chimps +chin +china +chinese +chink +chinked +chinking +chinks +chinless +chinoiserie +chins +chintz +chintzy +chip +chipboard +chipmunk +chipped +chipping +chippings +chips +chiral +chiropodist +chiropody +chiropractic +chiropractor +chiropractors +chirp +chirped +chirping +chirps +chirpy +chirruped +chisel +chiseled +chiselled +chiselling +chisels +chit +chits +chivalric +chivalrous +chivalrously +chivalry +chives +chivvied +chivvy +chivvying +chlamydia +chlorate +chloride +chlorinated +chlorination +chlorine +chlorofluorocarbon +chlorofluorocarbons +chloroform +chloroformed +chloroforming +chlorophyll +chloroquine +chock +chockablock +chockfull +chocks +chocolate +chocolates +choice +choices +choicest +choir +choirboy +choirboys +choirmaster +choirs +choke +choked +choker +chokes +choking +cholera +cholesterol +choline +chomp +chomped +chomping +chomps +choose +chooser +choosers +chooses +choosey +choosier +choosing +choosy +chop +chopin +chopped +chopper +choppers +choppier +choppiest +chopping +choppy +chops +chopsticks +choral +chorale +chorales +chorals +chord +chordal +chords +chore +chorea +choreographed +choreographer +choreographers +choreographic +choreographing +choreography +chores +chorister +choristers +chortle +chortled +chortles +chortling +chorus +chorused +choruses +chose +chosen +choughs +chow +christ +christen +christened +christening +christenings +christian +chroma +chromatic +chromaticism +chromatograph +chromatographic +chromatography +chrome +chromed +chromite +chromium +chromosomal +chromosome +chromosomes +chronic +chronically +chronicle +chronicled +chronicler +chroniclers +chronicles +chronicling +chronograph +chronological +chronologically +chronologies +chronology +chronometer +chronometric +chrysalis +chrysanthemum +chrysanthemums +chubbiness +chubby +chuck +chucked +chucking +chuckle +chuckled +chuckles +chuckling +chucks +chuff +chuffed +chug +chugged +chugging +chugs +chum +chump +chums +chunk +chunkier +chunks +chunky +chunnel +chuntering +church +churches +churchgoer +churchgoers +churchman +churchmen +churchwarden +churchwardens +churchyard +churchyards +churlish +churlishly +churlishness +churn +churned +churning +churns +chute +chutes +chutney +chutzpah +cicada +cicadas +cicero +cider +ciders +cigar +cigaret +cigarette +cigarettes +cigars +cilia +cilium +cinch +cinder +cinders +cine +cinema +cinemas +cinematic +cinematographer +cinematography +cinnamon +cipher +ciphered +ciphers +circa +circadian +circle +circled +circles +circlet +circlets +circling +circuit +circuitous +circuitry +circuits +circulant +circular +circularise +circularised +circularity +circularly +circulars +circulate +circulated +circulates +circulating +circulation +circulations +circulatory +circumcise +circumcised +circumcision +circumference +circumferences +circumferential +circumflex +circumflexes +circumlocution +circumlocutions +circumlocutory +circumnavigate +circumnavigated +circumnavigates +circumnavigation +circumnavigational +circumscribe +circumscribed +circumscribing +circumspect +circumspection +circumspectly +circumstance +circumstances +circumstantial +circumstantially +circumvent +circumventable +circumvented +circumventing +circumvention +circumventions +circumvents +circus +circuses +cirrhosis +cirrhotic +cirrus +cist +cistern +cisterns +citadel +citadels +citation +citations +cite +cited +cites +cithers +cities +citing +citizen +citizenry +citizens +citizenship +citrate +citrates +citric +citron +citrons +citrus +citruses +cittern +city +cityscape +civic +civics +civies +civil +civilian +civilians +civilisation +civilisations +civilise +civilised +civilising +civilities +civility +civilly +clacking +clad +cladding +claim +claimable +claimant +claimants +claimed +claiming +claims +clairvoyance +clairvoyant +clairvoyants +clam +clamber +clambered +clambering +clambers +clammed +clamming +clammy +clamorous +clamorously +clamour +clamoured +clamouring +clamours +clamp +clampdown +clamped +clamping +clamps +clams +clan +clandestine +clandestinely +clang +clanged +clangers +clanging +clank +clanked +clanking +clannish +clans +clansmen +clap +clapped +clapper +clappers +clapping +claps +claptrap +claret +clarets +clarification +clarifications +clarified +clarifies +clarify +clarifying +clarinet +clarinets +clarinettist +clarion +clarity +clash +clashed +clashes +clashing +clasp +clasped +clasper +clasping +clasps +class +classed +classes +classic +classical +classically +classicism +classicist +classicists +classics +classier +classiest +classifiable +classification +classifications +classificatory +classified +classifier +classifiers +classifies +classify +classifying +classing +classless +classlessness +classmate +classmates +classroom +classrooms +classy +clatter +clattered +clattering +clatters +clausal +clause +clauses +claustrophobia +claustrophobic +clavichord +clavicle +claw +clawed +clawing +claws +clay +clayey +claymore +claymores +clays +clean +cleancut +cleaned +cleaner +cleaners +cleanest +cleaning +cleanliness +cleanliving +cleanly +cleanness +cleans +cleanse +cleansed +cleanser +cleanses +cleanshaven +cleansing +cleanup +clear +clearance +clearances +clearcut +cleared +clearer +clearest +clearheaded +clearing +clearings +clearly +clearness +clears +clearsighted +clearup +clearups +clearway +cleat +cleavage +cleavages +cleave +cleaved +cleaver +cleavers +cleaves +cleaving +clef +cleft +clefts +cleg +clematis +clemency +clement +clench +clenched +clenches +clenching +clergies +clergy +clergyman +clergymen +cleric +clerical +clerically +clerics +clerk +clerks +clever +cleverer +cleverest +cleverly +cleverness +cliche +cliches +click +clicked +clicking +clicks +client +clientele +clients +cliff +cliffhanger +cliffs +climactic +climate +climates +climatic +climatically +climatological +climatologists +climatology +climax +climaxed +climaxes +climaxing +climb +climbable +climbdown +climbed +climber +climbers +climbing +climbs +climes +clinch +clinched +clinches +clinching +cling +clingers +clinging +clings +clinic +clinical +clinically +clinician +clinicians +clinics +clink +clinked +clinker +clinking +clip +clipboard +clipboards +clipped +clipper +clippers +clipping +clippings +clips +clique +cliques +cliquey +clitoral +clitoris +cloaca +cloak +cloakanddagger +cloaked +cloaking +cloakroom +cloakrooms +cloaks +clobber +clock +clocked +clocking +clockmaker +clocks +clockwise +clockwork +clod +clods +clog +clogged +clogging +clogs +cloister +cloistered +cloisters +clonal +clone +cloned +clones +cloning +closable +close +closed +closedcircuit +closeknit +closely +closeness +closer +closers +closes +closest +closet +closeted +closets +closeup +closeups +closing +closings +closure +closures +clot +cloth +clothe +clothed +clothes +clothespeg +clothespegs +clothier +clothiers +clothing +cloths +clots +clotted +clotting +cloud +cloudburst +cloudbursts +clouded +cloudier +cloudiest +cloudiness +clouding +cloudless +clouds +cloudscape +cloudscapes +cloudy +clout +clouted +clouts +clove +cloven +clover +cloves +clown +clowned +clowning +clownish +clowns +cloying +cloyingly +club +clubbed +clubbing +clubfooted +clubhouse +clubman +clubroom +clubs +cluck +clucked +clucking +clucks +clue +clued +cluedup +clueless +clues +clumber +clump +clumped +clumping +clumps +clumpy +clumsier +clumsiest +clumsily +clumsiness +clumsy +clung +cluster +clustered +clustering +clusters +clutch +clutched +clutches +clutching +clutter +cluttered +cluttering +clutters +coach +coached +coaches +coaching +coachload +coachloads +coachman +coachmen +coachwork +coacted +coaction +coacts +coagulate +coagulated +coagulation +coal +coalblack +coalesce +coalesced +coalescence +coalesces +coalescing +coalface +coalfield +coalfields +coalition +coalitions +coalminers +coals +coapts +coarse +coarsely +coarseness +coarsens +coarser +coarsest +coast +coastal +coasted +coaster +coasters +coastguard +coastguards +coasting +coastlands +coastline +coastlines +coasts +coat +coated +coathanger +coating +coatings +coats +coauthor +coauthored +coauthoring +coauthors +coax +coaxed +coaxes +coaxial +coaxing +coaxingly +cob +cobalt +cobble +cobbled +cobbler +cobblers +cobbles +cobblestones +cobbling +coble +cobra +cobras +cobs +cobweb +cobwebbed +cobwebby +cobwebs +coca +cocain +cocaine +cochlea +cochlear +cock +cockatoo +cockatoos +cockatrice +cockatrices +cockcrow +cocked +cockerel +cockerels +cockeyed +cockier +cockiest +cockiness +cocking +cockle +cockles +cockney +cockneys +cockpit +cockpits +cockroach +cockroaches +cocks +cockshies +cocksure +cocktail +cocktails +cocky +cocoa +coconut +coconuts +cocoon +cocooned +cocoons +cod +coda +coddle +coddling +code +codebreaker +coded +codeine +codename +codenamed +coder +coders +codes +codeword +codewords +codex +codfish +codices +codicil +codicils +codification +codifications +codified +codifies +codify +codifying +coding +codling +codpiece +cods +coefficient +coefficients +coelenterates +coerce +coerced +coercer +coerces +coercible +coercing +coercion +coercions +coercive +coercively +coeval +coexist +coexisted +coexistence +coexistent +coexisting +coexists +coextensive +coffee +coffees +coffer +cofferdam +cofferdams +coffers +coffin +coffins +cog +cogency +cogent +cogently +cogitate +cogitated +cogitating +cogitation +cogitations +cogitative +cognac +cognacs +cognate +cognates +cognisance +cognisant +cognition +cognitive +cognitively +cognizance +cognizant +cognoscenti +cogs +cohabit +cohabitation +cohabitees +cohabiting +cohere +cohered +coherence +coherency +coherent +coherently +coheres +cohesion +cohesive +cohesively +cohesiveness +cohort +cohorts +coiffure +coil +coiled +coiling +coils +coin +coinage +coinages +coincide +coincided +coincidence +coincidences +coincident +coincidental +coincidentally +coincides +coinciding +coined +coiner +coiners +coining +coins +coital +coitus +coke +col +cola +colander +colas +cold +coldblooded +coldbloodedly +colder +coldest +coldhearted +coldish +coldly +coldness +colds +coldwar +cole +coleslaw +colitis +collaborate +collaborated +collaborates +collaborating +collaboration +collaborationist +collaborations +collaborative +collaboratively +collaborator +collaborators +collage +collagen +collages +collapse +collapsed +collapses +collapsible +collapsing +collar +collarbone +collared +collaring +collarless +collars +collate +collated +collateral +collaterally +collates +collating +collation +colleague +colleagues +collect +collectability +collectable +collectables +collected +collecting +collection +collections +collective +collectively +collectives +collectivisation +collectivism +collectivist +collectivity +collector +collectors +collects +college +colleges +collegial +collegiate +collide +collided +collides +colliding +collie +collier +collieries +colliers +colliery +collies +collimation +collimator +collinear +collins +collision +collisional +collisions +collocated +collocation +collocational +collocations +colloid +colloidal +colloids +colloquia +colloquial +colloquialism +colloquialisms +colloquially +colloquium +collude +colluded +colluding +collusion +colobus +cologne +colon +colonel +colonels +colonial +colonialism +colonialist +colonialists +colonials +colonic +colonies +colonisation +colonisations +colonise +colonised +colonisers +colonising +colonist +colonists +colonnade +colonnaded +colonnades +colons +colony +colossal +colossally +colossus +colostomies +colostomy +colour +colourant +colourants +colouration +colourblind +coloure +colourful +colourfully +colouring +colourings +colourisation +colourise +colourised +colourising +colourless +colours +coloury +cols +colt +colts +columbus +column +columnar +columned +columnist +columnists +columns +coma +comas +comatose +comb +combat +combatant +combatants +combated +combating +combative +combativeness +combats +combed +comber +combination +combinations +combinatorial +combine +combined +combines +combing +combining +combs +combusted +combustible +combustibles +combustion +combusts +come +comeback +comedian +comedians +comedies +comedown +comedy +comeliness +comely +comer +comers +comes +comestible +comestibles +comet +cometary +comets +comfort +comfortable +comfortably +comforted +comforter +comforters +comforting +comfortingly +comforts +comfy +comic +comical +comically +comics +coming +comings +comity +comma +command +commandant +commanded +commandeer +commandeered +commandeering +commander +commanders +commanding +commandingly +commandment +commandments +commando +commands +commas +commemorate +commemorated +commemorates +commemorating +commemoration +commemorations +commemorative +commence +commenced +commencement +commences +commencing +commend +commendable +commendably +commendation +commendations +commended +commending +commends +commensurate +commensurately +comment +commentaries +commentary +commentate +commentating +commentator +commentators +commented +commenter +commenting +comments +commerce +commercial +commercialisation +commercialise +commercialised +commercialism +commercially +commercials +commiserate +commiserated +commiserating +commiseration +commiserations +commissar +commissariat +commissars +commission +commissionaire +commissioned +commissioner +commissioners +commissioning +commissions +commit +commitment +commitments +commits +committal +committed +committee +committees +committing +commode +commodes +commodious +commodities +commodity +commodore +commodores +common +commonalities +commonality +commoner +commoners +commonest +commonlaw +commonly +commonness +commonplace +commonplaces +commons +commonsense +commonsensical +commonwealth +commotion +commotions +communal +communality +communally +commune +communed +communes +communicable +communicant +communicants +communicate +communicated +communicates +communicating +communication +communications +communicative +communicativeness +communicator +communicators +communing +communion +communions +communique +communiques +communism +communist +communists +communitarian +communities +community +commutation +commutative +commutativity +commutator +commute +commuted +commuter +commuters +commutes +commuting +compact +compacted +compacting +compaction +compactions +compactly +compactness +compacts +companies +companion +companionable +companionably +companions +companionship +company +comparability +comparable +comparably +comparative +comparatively +comparatives +comparator +comparators +compare +compared +compares +comparing +comparison +comparisons +compartment +compartmentalisation +compartmentalised +compartmentalising +compartments +compass +compassed +compasses +compassion +compassionate +compassionately +compatibilities +compatibility +compatible +compatibles +compatibly +compatriot +compatriots +compel +compelled +compelling +compellingly +compels +compendia +compendium +compendiums +compensate +compensated +compensates +compensating +compensation +compensations +compensator +compensatory +compere +compete +competed +competence +competences +competencies +competency +competent +competently +competes +competing +competition +competitions +competitive +competitively +competitiveness +competitor +competitors +compilable +compilation +compilations +compile +compiled +compiler +compilers +compiles +compiling +complacency +complacent +complacently +complain +complainant +complainants +complained +complainer +complaining +complainingly +complains +complaint +complaints +complaisant +complement +complementarity +complementary +complemented +complementing +complements +completable +complete +completed +completely +completeness +completes +completing +completion +completions +complex +complexes +complexion +complexioned +complexions +complexities +complexity +complexly +compliance +compliant +complicate +complicated +complicates +complicating +complication +complications +complicit +complicity +complied +complies +compliment +complimentary +complimented +complimenting +compliments +complot +comply +complying +component +components +comport +compose +composed +composedly +composer +composers +composes +composing +composite +composites +composition +compositional +compositions +compositor +compositors +compost +composts +composure +compound +compounded +compounding +compounds +comprehend +comprehended +comprehending +comprehends +comprehensibility +comprehensible +comprehensibly +comprehension +comprehensive +comprehensively +comprehensiveness +comprehensives +compress +compressed +compresses +compressibility +compressible +compressing +compression +compressional +compressions +compressive +compressor +compressors +comprise +comprised +comprises +comprising +compromise +compromised +compromises +compromising +comptroller +compulsion +compulsions +compulsive +compulsively +compulsorily +compulsory +compunction +computability +computable +computably +computation +computational +computationally +computations +compute +computed +computer +computerisation +computerise +computerised +computerising +computerliterate +computers +computes +computing +comrade +comradeinarms +comradely +comrades +comradeship +con +conakry +concatenate +concatenated +concatenates +concatenating +concatenation +concatenations +concave +concavity +conceal +concealed +concealing +concealment +conceals +concede +conceded +concedes +conceding +conceit +conceited +conceits +conceivability +conceivable +conceivably +conceive +conceived +conceives +conceiving +concentrate +concentrated +concentrates +concentrating +concentration +concentrations +concentrator +concentrators +concentric +concept +conception +conceptions +concepts +conceptual +conceptualisation +conceptualisations +conceptualise +conceptualised +conceptualising +conceptually +concern +concerned +concernedly +concerning +concerns +concert +concerted +concertgoers +concerti +concertina +concerto +concerts +concession +concessional +concessionary +concessions +concierge +conciliar +conciliate +conciliating +conciliation +conciliator +conciliatory +concise +concisely +conciseness +conclave +conclaves +conclude +concluded +concludes +concluding +conclusion +conclusions +conclusive +conclusively +concoct +concocted +concocting +concoction +concoctions +concocts +concomitant +concomitantly +concord +concordance +concordances +concordant +concordat +concords +concourse +concourses +concrete +concreted +concretely +concreteness +concretes +concreting +concretions +concubine +concubines +concur +concurred +concurrence +concurrency +concurrent +concurrently +concurring +concurs +concuss +concussed +concussion +condemn +condemnable +condemnation +condemnations +condemnatory +condemned +condemning +condemns +condensate +condensation +condensations +condense +condensed +condenser +condensers +condenses +condensing +condescend +condescended +condescending +condescendingly +condescends +condescension +condiment +condiments +condition +conditional +conditionality +conditionally +conditionals +conditioned +conditioner +conditioners +conditioning +conditions +condole +condoled +condolence +condolences +condoles +condonable +condone +condoned +condones +condoning +condor +condors +conducive +conduct +conductance +conducted +conducting +conduction +conductive +conductivities +conductivity +conductor +conductors +conductress +conducts +conduit +conduits +cone +coned +cones +confabulate +confection +confectioner +confectioners +confectionery +confectionist +confections +confederacy +confederate +confederates +confederation +confederations +confer +conference +conferences +conferencing +conferment +conferred +conferring +confers +confess +confessed +confesses +confessing +confession +confessional +confessionals +confessions +confessor +confessors +confetti +confidant +confidante +confidantes +confidants +confide +confided +confidence +confidences +confident +confidential +confidentiality +confidentially +confidently +confides +confiding +confidingly +configurable +configuration +configurations +configure +configured +configures +configuring +confine +confined +confinement +confinements +confines +confining +confirm +confirmation +confirmations +confirmatory +confirmed +confirming +confirms +confiscate +confiscated +confiscates +confiscating +confiscation +confiscations +confiscatory +conflagration +conflagrations +conflated +conflates +conflating +conflation +conflict +conflicted +conflicting +conflictingly +conflicts +conflictual +confluence +confluent +confocal +conform +conformable +conformal +conformance +conformation +conformational +conformed +conforming +conformism +conformist +conformists +conformity +conforms +confound +confounded +confoundedly +confounding +confounds +confront +confrontation +confrontational +confrontations +confronted +confronting +confronts +confusable +confuse +confused +confusedly +confuser +confuses +confusing +confusingly +confusion +confusions +conga +congeal +congealed +congealing +congeals +congenial +congeniality +congenital +congenitally +conger +congest +congested +congesting +congestion +congestive +conglomerate +conglomerated +conglomerates +conglomeration +congo +congratulate +congratulated +congratulates +congratulating +congratulation +congratulations +congratulatory +congregate +congregated +congregating +congregation +congregational +congregations +congress +congresses +congressional +congressman +congressmen +congruence +congruences +congruency +congruent +congruential +congruity +conic +conical +conics +conifer +coniferous +conifers +conjectural +conjecture +conjectured +conjectures +conjecturing +conjoin +conjoined +conjoining +conjoint +conjugacy +conjugal +conjugate +conjugated +conjugates +conjugating +conjugation +conjugations +conjunct +conjunction +conjunctions +conjunctive +conjunctivitis +conjunctures +conjure +conjured +conjurer +conjurers +conjures +conjuring +conjuror +conjurors +conjury +conk +conker +conkers +conman +conmen +connect +connected +connectedness +connecting +connection +connectionless +connections +connective +connectives +connectivity +connector +connectors +connects +conned +connexion +connexions +connivance +connive +connived +conniving +connoisseur +connoisseurs +connoisseurship +connotation +connotations +connote +connoted +connotes +connoting +conquer +conquerable +conquered +conquering +conqueror +conquerors +conquers +conquest +conquests +conquistador +conquistadores +cons +consanguineous +consanguinity +conscience +consciences +consciencestricken +conscientious +conscientiously +conscientiousness +conscionable +conscious +consciously +consciousness +consciousnesses +conscript +conscripted +conscripting +conscription +conscripts +consecrate +consecrated +consecrating +consecration +consecutive +consecutively +consensual +consensually +consensus +consent +consented +consenting +consents +consequence +consequences +consequent +consequential +consequentially +consequently +conservation +conservationist +conservationists +conservations +conservatism +conservative +conservatively +conservativeness +conservatives +conservatoire +conservator +conservatories +conservators +conservatory +conserve +conserved +conserves +conserving +consider +considerable +considerably +considerate +considerately +consideration +considerations +considered +considering +considers +consign +consigned +consignee +consigning +consignment +consignments +consigns +consist +consisted +consistencies +consistency +consistent +consistently +consisting +consists +consolation +consolations +console +consoled +consoles +consolidate +consolidated +consolidates +consolidating +consolidation +consolidations +consoling +consolingly +consonance +consonant +consonantal +consonants +consort +consorted +consortia +consorting +consortium +consorts +conspecific +conspicuous +conspicuously +conspicuousness +conspiracies +conspiracy +conspirator +conspiratorial +conspiratorially +conspirators +conspire +conspired +conspires +conspiring +constable +constables +constabularies +constabulary +constancy +constant +constantly +constants +constellation +constellations +consternating +consternation +constipated +constipation +constituencies +constituency +constituent +constituents +constitute +constituted +constitutes +constituting +constitution +constitutional +constitutionalism +constitutionalists +constitutionality +constitutionally +constitutions +constitutive +constitutively +constrain +constrained +constraining +constrains +constraint +constraints +constrict +constricted +constricting +constriction +constrictions +constrictive +constrictor +constrictors +constricts +construct +constructable +constructed +constructing +construction +constructional +constructions +constructive +constructively +constructivism +constructivist +constructor +constructors +constructs +construe +construed +construes +construing +consul +consular +consulate +consulates +consuls +consult +consultancies +consultancy +consultant +consultants +consultation +consultations +consultative +consulted +consulting +consults +consumable +consumables +consume +consumed +consumer +consumerism +consumerist +consumers +consumes +consuming +consummate +consummated +consummately +consummation +consumption +consumptions +consumptive +contact +contactable +contacted +contacting +contacts +contagion +contagious +contain +containable +contained +container +containers +containing +containment +contains +contaminant +contaminants +contaminate +contaminated +contaminates +contaminating +contamination +contemplate +contemplated +contemplates +contemplating +contemplation +contemplations +contemplative +contemporaneity +contemporaneous +contemporaneously +contemporaries +contemporary +contempt +contemptible +contemptibly +contemptuous +contemptuously +contend +contended +contender +contenders +contending +contends +content +contented +contentedly +contenting +contention +contentions +contentious +contentiously +contentment +contents +contest +contestable +contestant +contestants +contested +contesting +contests +context +contexts +contextual +contextualisation +contextually +contiguity +contiguous +contiguously +continence +continent +continental +continentals +continents +contingencies +contingency +contingent +contingently +contingents +continua +continuable +continual +continually +continuance +continuation +continuations +continue +continued +continues +continuing +continuities +continuity +continuous +continuously +continuum +contort +contorted +contorting +contortion +contortionist +contortions +contorts +contour +contoured +contouring +contours +contra +contraband +contraception +contraceptive +contraceptives +contract +contracted +contractible +contractile +contracting +contraction +contractions +contractor +contractors +contracts +contractual +contractually +contradict +contradicted +contradicting +contradiction +contradictions +contradictorily +contradictory +contradicts +contradistinction +contraflow +contraflows +contraindication +contraindications +contralto +contraption +contraptions +contrapuntal +contrarily +contrariness +contrariwise +contrary +contras +contrast +contrasted +contrasting +contrastingly +contrastive +contrasts +contrasty +contravene +contravened +contravenes +contravening +contravention +contraventions +contretemps +contribute +contributed +contributes +contributing +contribution +contributions +contributor +contributors +contributory +contrite +contritely +contrition +contrivance +contrivances +contrive +contrived +contrives +contriving +control +controllable +controlled +controller +controllers +controlling +controls +controversial +controversially +controversies +controversy +controvert +controverted +contumely +contuse +contusion +contusions +conundrum +conundrums +conurbation +conurbations +convalesce +convalescence +convalescent +convalescing +convect +convected +convecting +convection +convectional +convective +convector +convects +convene +convened +convener +convenes +convenience +conveniences +convenient +conveniently +convening +convenor +convenors +convent +conventicle +convention +conventional +conventionalism +conventionalist +conventionality +conventionally +conventions +convents +converge +converged +convergence +convergences +convergent +converges +converging +conversant +conversation +conversational +conversationalist +conversationalists +conversationally +conversations +conversazione +converse +conversed +conversely +converses +conversing +conversion +conversions +convert +converted +converter +converters +convertibility +convertible +convertibles +converting +convertor +convertors +converts +convex +convexity +convey +conveyance +conveyancing +conveyed +conveying +conveyor +conveyors +conveys +convict +convicted +convicting +conviction +convictions +convicts +convince +convinced +convinces +convincing +convincingly +convivial +conviviality +convocation +convocations +convoluted +convolution +convolutions +convolve +convolved +convoy +convoys +convulse +convulsed +convulses +convulsing +convulsion +convulsions +convulsive +convulsively +cony +coo +cooed +cooing +cook +cookbook +cookbooks +cooked +cooker +cookers +cookery +cookies +cooking +cooks +cookware +cool +coolant +coolants +cooled +cooler +coolers +coolest +cooling +coolness +cools +coon +coons +coop +cooped +cooper +cooperate +cooperated +cooperates +cooperating +cooperation +cooperative +cooperatively +cooperatives +coopers +coops +coordinate +coordinated +coordinates +coordinating +coordination +coordinator +coordinators +coos +cop +cope +coped +copes +copied +copier +copiers +copies +copilot +coping +copious +copiously +coplanar +copout +copouts +copper +copperplate +coppers +coppery +coppice +coppiced +coppices +coppicing +copra +coprocessor +coprocessors +coproduced +coprolite +coprophagous +cops +copse +copses +copulate +copulating +copulation +copulations +copulatory +copy +copyable +copycat +copycats +copying +copyist +copyists +copyright +copyrightable +copyrighted +copyrighting +copyrights +copywriter +coquette +coquettes +coquettish +coquettishly +cor +coracle +coral +coralline +corals +cord +cordage +cordate +corded +cordial +cordiality +cordially +cordials +cordillera +cordite +cordless +cordon +cordoned +cordons +cords +corduroy +corduroys +core +cores +corespondent +corgi +corgis +coriander +corinth +cork +corkage +corked +corks +corkscrew +corkscrews +corky +cormorant +cormorants +corn +corncrake +cornea +corneal +corneas +corned +corner +cornered +cornering +corners +cornerstone +cornerstones +cornet +cornets +cornfield +cornfields +cornflake +cornflakes +cornflour +cornflower +cornflowers +cornice +cornices +cornish +cornmeal +corns +cornucopia +corny +corollaries +corollary +corona +coronal +coronaries +coronary +coronas +coronation +coronations +coroner +coroners +coronet +coronets +corpora +corporal +corporals +corporate +corporately +corporates +corporation +corporations +corporatism +corporatist +corporeal +corporeally +corps +corpse +corpses +corpulent +corpus +corpuscle +corpuscles +corpuscular +corral +corralled +corrals +correct +correctable +corrected +correcting +correction +correctional +corrections +corrective +correctly +correctness +corrector +correctors +corrects +correlate +correlated +correlates +correlating +correlation +correlations +correlative +correspond +corresponded +correspondence +correspondences +correspondent +correspondents +corresponding +correspondingly +corresponds +corridor +corridors +corrigenda +corroborate +corroborated +corroborates +corroborating +corroboration +corroborative +corroboratory +corrode +corroded +corrodes +corroding +corrosion +corrosive +corrugated +corrugations +corrupt +corrupted +corruptible +corrupting +corruption +corruptions +corruptly +corrupts +corsage +corse +corset +corsets +corsica +corslet +cortege +cortex +cortical +corticosteroid +corticosteroids +cortisol +cortisone +coruscates +corvette +corvettes +cosier +cosiest +cosily +cosine +cosines +cosiness +cosmetic +cosmetically +cosmetics +cosmic +cosmical +cosmically +cosmological +cosmologically +cosmologies +cosmologist +cosmologists +cosmology +cosmonaut +cosmonauts +cosmopolitan +cosmopolitans +cosmos +cossacks +cosset +cosseted +cossets +cost +costar +costarred +costarring +costars +costcutting +costed +costeffective +costeffectiveness +costefficient +costing +costings +costive +costless +costlier +costliest +costliness +costly +costs +costume +costumed +costumes +cosy +cot +coterie +coterminous +cots +cottage +cottages +cotton +cottoned +cottons +couch +couched +couches +couching +cougar +cougars +cough +coughed +coughing +coughs +could +couloir +coulomb +coulombs +council +councillor +councillors +councils +counsel +counselled +counselling +counsellor +counsellors +counsels +count +countability +countable +countably +countdown +counted +countenance +countenanced +countenances +countenancing +counter +counteract +counteracted +counteracting +counteracts +counterattack +counterattacked +counterattacks +counterbalance +counterbalanced +counterbalancing +countered +counterfeit +counterfeited +counterfeiters +counterfeiting +counterfeits +counterfoil +counterfoils +countering +counterintelligence +counterintuitive +countermanded +countermeasures +counteroffensive +counterpane +counterpart +counterparts +counterpoint +counterpointed +counterpoints +counterpoise +counterproductive +counterrevolution +counterrevolutionaries +counterrevolutionary +counters +countersign +countersigned +countersigns +countess +countesses +counties +counting +countless +countries +country +countryman +countrymen +countryside +countrywide +counts +county +coup +coupe +coupes +couple +coupled +coupler +couplers +couples +couplet +couplets +coupling +couplings +coupon +coupons +coups +courage +courageous +courageously +courgette +courgettes +courier +couriers +course +coursebook +coursed +courses +coursework +coursing +court +courted +courteous +courteously +courtesan +courtesans +courtesies +courtesy +courthouse +courtier +courtiers +courting +courtly +courtmartial +courtroom +courtrooms +courts +courtship +courtships +courtyard +courtyards +couscous +cousin +cousinly +cousins +couther +couture +couturier +couturiers +covalent +covalently +covariance +covariances +cove +coven +covenant +covenanted +covenanters +covenants +covens +cover +coverage +coverages +coveralls +covered +covering +coverings +coverlet +coverlets +covers +coversheet +covert +covertly +coverts +coverup +coverups +coves +covet +coveted +coveting +covetous +covetousness +covets +cow +coward +cowardice +cowardly +cowards +cowboy +cowboys +cowed +cower +cowered +cowering +cowers +cowgirl +cowgirls +cowhand +cowherd +cowing +cowl +cowled +cowling +coworker +coworkers +cowriter +cowritten +cows +cowshed +cowsheds +cowslip +cowslips +cox +coxcomb +coxcombs +coxed +coxes +coxing +coxswain +coy +coyly +coyness +coyote +coyotes +cozier +crab +crabby +crabs +crack +crackable +crackdown +crackdowns +cracked +cracker +crackers +cracking +crackle +crackled +crackles +crackling +crackly +crackpot +crackpots +cracks +cradle +cradled +cradles +cradling +craft +crafted +crafter +craftier +craftiest +craftily +crafting +crafts +craftsman +craftsmanship +craftsmen +craftspeople +crafty +crag +craggy +crags +cram +crammed +crammer +cramming +cramp +cramped +cramping +crampon +crampons +cramps +crams +cran +cranberries +cranberry +crane +craned +cranes +cranial +craning +cranium +crank +cranked +cranking +cranks +crankshaft +cranky +crannies +cranny +crap +crash +crashed +crasher +crashers +crashes +crashing +crashingly +crashland +crashlanded +crashlanding +crass +crasser +crassly +crassness +crate +crateful +crater +cratered +craters +crates +cravat +cravats +crave +craved +craven +cravenly +craves +craving +cravings +crawl +crawled +crawler +crawlers +crawling +crawls +craws +crayfish +crayon +crayoned +crayons +craze +crazed +crazes +crazier +craziest +crazily +craziness +crazy +creak +creaked +creakier +creakiest +creaking +creaks +creaky +cream +creamed +creamer +creamery +creamier +creamiest +creaming +creams +creamy +crease +creased +creases +creasing +creatable +create +created +creates +creating +creation +creationism +creationist +creationists +creations +creative +creatively +creativeness +creativity +creator +creators +creature +creatures +creche +creches +credence +credentials +credibility +credible +credibly +credit +creditability +creditable +creditably +credited +crediting +creditor +creditors +credits +creditworthiness +creditworthy +credo +credulity +credulous +creed +creeds +creek +creeks +creel +creep +creeper +creepers +creeping +creeps +creepy +cremate +cremated +cremates +cremation +cremations +crematoria +crematorium +creme +crenellated +crenellation +crenellations +creole +creoles +creosote +crepe +crept +crepuscular +crescendo +crescent +crescents +cress +crest +crested +crestfallen +cresting +crests +cretaceous +cretan +cretans +crete +cretin +cretinous +cretins +crevasse +crevasses +crevice +crevices +crew +crewed +crewing +crewman +crewmen +crews +crib +cribbage +cribbed +cribbing +cribs +crick +cricket +cricketer +cricketers +cricketing +crickets +cried +crier +cries +crim +crime +crimea +crimes +criminal +criminalisation +criminalise +criminalised +criminalising +criminality +criminally +criminals +criminological +criminologist +criminologists +criminology +crimp +crimped +crimping +crimson +cringe +cringed +cringes +cringing +crinkle +crinkled +crinkling +crinkly +crinoline +cripple +crippled +cripples +crippling +cripplingly +crises +crisis +crisp +crisped +crisper +crispier +crispiest +crisply +crispness +crisps +crispy +crisscrossed +crisscrosses +criteria +criterion +critic +critical +critically +criticise +criticised +criticises +criticising +criticism +criticisms +critics +critique +critiques +critter +croak +croaked +croakier +croakiest +croaking +croaks +croatia +croatian +crochet +crocheted +crochets +crock +crockery +crocks +crocodile +crocodiles +crocus +crocuses +croft +crofter +crofters +crofting +crofts +croissant +croissants +crone +crones +cronies +crony +crook +crooked +crookedly +crookedness +crooking +crooks +croon +crooned +crooner +crooners +crooning +croons +crop +cropped +cropper +croppers +cropping +crops +croquet +croqueted +croqueting +croquette +crores +crosier +crosiers +cross +crossbar +crossbars +crossbones +crossbow +crossbows +crossbred +crosscheck +crosschecked +crosschecking +crosschecks +crosscountry +crossed +crosser +crosses +crossexamination +crossexamine +crossexamined +crossexamines +crossexamining +crossfertilisation +crossfire +crossing +crossings +crossly +crossness +crossover +crossovers +crossreference +crossreferenced +crossreferences +crossreferencing +crossroads +crosssection +crosssectional +crosssections +crosstalk +crossways +crosswind +crosswinds +crossword +crosswords +crotch +crotchet +crotchetiness +crotchety +crotchless +crouch +crouched +crouches +crouching +croup +croupier +croutons +crow +crowbar +crowbars +crowd +crowded +crowding +crowds +crowed +crowing +crown +crowned +crowning +crowns +crows +crozier +croziers +crucial +crucially +cruciate +crucible +crucibles +crucifiable +crucified +crucifix +crucifixes +crucifixion +crucifixions +cruciform +crucify +crucifying +crude +crudely +crudeness +cruder +crudest +crudities +crudity +cruel +crueler +cruelest +crueller +cruellest +cruelly +cruelness +cruelties +cruelty +cruise +cruised +cruiser +cruisers +cruises +cruising +cruller +crumb +crumbing +crumble +crumbled +crumbles +crumblier +crumbliest +crumbling +crumbly +crumbs +crumby +crummy +crumpet +crumpets +crumple +crumpled +crumples +crumpling +crunch +crunched +cruncher +crunchers +crunches +crunchier +crunchiest +crunching +crunchy +crusade +crusaded +crusader +crusaders +crusades +crusading +crush +crushed +crusher +crushers +crushes +crushing +crushingly +crust +crustacean +crustaceans +crustal +crusted +crustier +crustiest +crusts +crusty +crutch +crutches +crux +cruxes +cry +crying +cryings +cryogenic +cryogenics +cryostat +crypt +cryptanalysis +cryptanalyst +cryptanalytic +cryptic +cryptically +cryptogram +cryptographer +cryptographers +cryptographic +cryptographically +cryptography +cryptology +crypts +crystal +crystalclear +crystalline +crystallisation +crystallise +crystallised +crystallises +crystallising +crystallographer +crystallographers +crystallographic +crystallography +crystals +cub +cuba +cuban +cubans +cube +cubed +cubes +cubic +cubical +cubically +cubicle +cubicles +cubing +cubism +cubist +cubistic +cubists +cubit +cubits +cuboid +cubs +cuckold +cuckolded +cuckoo +cuckoos +cucumber +cucumbers +cud +cuddle +cuddled +cuddles +cuddlier +cuddliest +cuddliness +cuddling +cuddly +cudgel +cudgels +cuds +cue +cued +cueing +cues +cuff +cuffed +cuffing +cuffs +cuing +cuirass +cuisine +culdesac +culinary +cull +culled +culling +culls +culminate +culminated +culminates +culminating +culmination +culpability +culpable +culpably +culprit +culprits +cult +cultivable +cultivar +cultivate +cultivated +cultivates +cultivating +cultivation +cultivations +cultivator +cultivators +cults +cultural +culturally +culture +cultured +cultures +culturing +cultus +culvert +cumbersome +cumbersomely +cumlaude +cummerbund +cumulative +cumulatively +cumulus +cuneiform +cunnilingus +cunning +cunningly +cup +cupboard +cupboards +cupful +cupid +cupidinously +cupidity +cupola +cupolas +cupped +cupping +cuprous +cups +cur +curable +curare +curate +curated +curates +curative +curator +curatorial +curators +curatorships +curb +curbed +curbing +curbs +curd +curdle +curdled +curdles +curdling +curds +cure +cured +curer +cures +curfew +curfews +curia +curial +curie +curies +curing +curio +curiosities +curiosity +curious +curiously +curl +curled +curlers +curlew +curlews +curlicues +curlier +curliest +curliness +curling +curls +curly +curmudgeons +currant +currants +currencies +currency +current +currently +currents +curricle +curricula +curricular +curriculum +curried +curries +curry +currying +curs +curse +cursed +curses +cursing +cursive +cursor +cursorily +cursors +cursory +curt +curtail +curtailed +curtailing +curtailment +curtailments +curtails +curtain +curtained +curtaining +curtains +curtilage +curtly +curtness +curtsey +curtseyed +curtseying +curtseys +curtsied +curtsies +curtsy +curtsying +curvaceous +curvature +curvatures +curve +curved +curves +curvilinear +curving +curvy +cushion +cushioned +cushioning +cushions +cusp +cusps +cuss +cussedness +custard +custards +custodial +custodian +custodians +custodianship +custody +custom +customarily +customary +customer +customers +customisable +customisation +customisations +customise +customised +customising +customs +cut +cutback +cutbacks +cute +cutely +cuteness +cutest +cuticle +cuticles +cutlass +cutlasses +cutler +cutlery +cutlet +cutlets +cutout +cutouts +cutprice +cutrate +cuts +cutter +cutters +cutthroat +cutting +cuttingly +cuttings +cuttle +cuttlefish +cyan +cyanide +cyanogen +cybernetic +cybernetics +cyberpunk +cyberspace +cyborg +cycad +cycads +cycle +cycled +cycles +cycleway +cycleways +cyclic +cyclical +cyclically +cycling +cyclist +cyclists +cycloid +cyclone +cyclones +cyclops +cyclotron +cyclotrons +cygnet +cygnets +cylinder +cylinders +cylindrical +cylindrically +cymbal +cymbals +cynic +cynical +cynically +cynicism +cynics +cypher +cyphers +cypress +cypresses +cyprian +cyprians +cypriot +cypriots +cyprus +cyst +cysteine +cystic +cystine +cystitis +cysts +cytochrome +cytogenetic +cytological +cytology +cytoplasm +cytoplasmic +cytosine +cytotoxic +czar +czars +czech +czechs +dab +dabbed +dabbing +dabble +dabbled +dabbler +dabbles +dabbling +dabs +dace +dacha +dachau +dachshund +dactyl +dactylic +dactyls +dad +daddies +daddy +daddylonglegs +dado +dads +daemon +daemonic +daemons +daffodil +daffodils +daffy +daft +dafter +daftest +daftness +dagama +dagga +dagger +daggers +dahlia +dahlias +dahomey +dailies +daily +daintier +daintiest +daintily +daintiness +dainty +dairies +dairy +dairying +dairyman +dairymen +dais +daisies +daisy +dakar +dakoits +dale +dales +dallas +dalliance +dallied +dally +dallying +dam +damage +damaged +damages +damaging +damagingly +damascus +damask +dame +dames +dammed +damming +damn +damnable +damnably +damnation +damned +damnify +damning +damningly +damns +damp +damped +dampen +dampened +dampening +dampens +damper +dampers +dampest +damping +dampish +damply +dampness +damps +dams +damsel +damsels +damson +damsons +dan +dance +danceable +danced +dancer +dancers +dances +dancing +dandelion +dandelions +dandies +dandruff +dandy +dane +danes +danger +dangerous +dangerously +dangerousness +dangers +dangle +dangled +dangles +dangling +daniel +danish +dank +dankest +dante +danube +danzig +dapper +dapple +dappled +dapples +dare +dared +daredevil +dares +daring +daringly +dark +darken +darkened +darkening +darkens +darker +darkest +darkish +darkly +darkness +darkroom +darkrooms +darling +darlings +darn +darned +darning +darns +dart +dartboard +dartboards +darted +darter +darters +darting +darts +darwin +dash +dashboard +dashed +dashes +dashing +dassie +dassies +dastardly +data +database +databases +datable +date +dated +dateline +dates +dating +dative +datum +daub +daubed +dauber +daubing +daughter +daughterinlaw +daughters +daughtersinlaw +daunt +daunted +daunting +dauntingly +dauntless +daunts +dauphin +dauphins +david +davinci +dawdle +dawdled +dawdling +dawn +dawned +dawning +dawns +day +daybreak +daycare +daydream +daydreaming +daydreams +daylight +daylights +daylong +dayold +days +daytime +daze +dazed +dazedly +dazing +dazzle +dazzled +dazzler +dazzles +dazzling +dazzlingly +dday +deacon +deaconess +deaconesses +deacons +deactivate +deactivated +deactivates +deactivating +deactivation +dead +deadbeat +deaden +deadend +deadened +deadening +deadens +deader +deadlier +deadliest +deadline +deadlines +deadlock +deadlocked +deadlocking +deadlocks +deadly +deadness +deadon +deadpan +deadsea +deaf +deafanddumb +deafen +deafened +deafening +deafeningly +deafens +deafer +deafest +deafness +deal +dealer +dealers +dealership +dealerships +dealing +dealings +deals +dealt +dean +deanery +deans +dear +dearer +dearest +dearie +dearies +dearly +dearness +dears +dearth +deary +death +deathbed +deathless +deathly +deaths +deb +debacle +debacles +debar +debark +debarred +debars +debase +debased +debasement +debaser +debasing +debatable +debate +debated +debater +debaters +debates +debating +debauch +debauched +debauchery +debenture +debentures +debilitate +debilitated +debilitating +debility +debit +debited +debiting +debits +debonair +debone +deboned +debones +debrief +debriefed +debriefing +debris +debt +debtor +debtors +debts +debug +debugged +debugger +debuggers +debugging +debugs +debunk +debunks +debut +debutant +debutante +debutantes +debutants +debuts +decade +decadence +decadent +decades +decaf +decaffeinate +decaffeinated +decagon +decagons +decamp +decamped +decant +decanted +decanter +decanters +decanting +decants +decapitate +decapitated +decapitates +decapitating +decapitation +decapitations +decapod +decathlon +decay +decayed +decaying +decays +decease +deceased +deceases +deceit +deceitful +deceitfulness +deceits +deceive +deceived +deceiver +deceives +deceiving +decelerate +decelerated +decelerates +decelerating +deceleration +decelerations +december +decency +decent +decently +decentralisation +decentralise +decentralised +decentralising +deception +deceptions +deceptive +deceptively +decibel +decibels +decidability +decidable +decide +decided +decidedly +decider +decides +deciding +deciduous +decile +deciles +decilitre +decimal +decimalisation +decimalise +decimals +decimate +decimated +decimating +decimation +decimetres +decipher +decipherable +deciphered +deciphering +decipherment +decipherments +decision +decisions +decisive +decisively +decisiveness +deck +deckchair +deckchairs +decked +decker +decking +decks +declaim +declaimed +declaiming +declaims +declamation +declamatory +declaration +declarations +declarative +declaratory +declare +declared +declarer +declarers +declares +declaring +declassification +declassified +declension +declensions +declination +declinations +decline +declined +declines +declining +declivity +deco +decode +decoded +decoder +decoders +decodes +decoding +decoke +decolonisation +decommission +decommissioned +decommissioning +decomposable +decompose +decomposed +decomposes +decomposing +decomposition +decompositions +decompress +decompressed +decompressing +decompression +decongestants +deconstruct +deconstructed +deconstructing +deconstruction +deconstructionist +deconstructive +decontaminated +decontaminating +decontamination +deconvolution +deconvolve +decor +decorate +decorated +decorates +decorating +decoration +decorations +decorative +decoratively +decorator +decorators +decorous +decorously +decors +decorum +decouple +decoupled +decoupling +decoy +decoyed +decoying +decoys +decrease +decreased +decreases +decreasing +decreasingly +decree +decreed +decreeing +decrees +decrement +decremental +decremented +decrementing +decrements +decrepit +decrepitude +decried +decries +decriminalisation +decriminalise +decriminalised +decriminalising +decry +decrying +decrypt +decrypted +decrypting +decryption +decrypts +decustomised +dedicate +dedicated +dedicates +dedicating +dedication +dedications +deduce +deduced +deduces +deducible +deducing +deduct +deducted +deductible +deducting +deduction +deductions +deductive +deductively +deducts +dee +deed +deeds +deejay +deem +deemed +deeming +deems +deep +deepen +deepened +deepening +deepens +deeper +deepest +deepfreeze +deepfreezing +deepfried +deepfrozen +deepish +deeply +deepness +deeprooted +deeps +deepsea +deepseated +deer +deerstalker +deerstalkers +deerstalking +deface +defaced +defaces +defacing +defacto +defamation +defamatory +defame +defamed +defamer +defames +defaming +default +defaulted +defaulter +defaulters +defaulting +defaults +defeat +defeated +defeater +defeating +defeatism +defeatist +defeats +defecate +defecating +defect +defected +defecting +defection +defections +defective +defectiveness +defectives +defector +defectors +defects +defence +defenceless +defencelessness +defences +defend +defendant +defendants +defended +defender +defenders +defending +defends +defenestrate +defenestrated +defenestration +defenses +defensibility +defensible +defensive +defensively +defensiveness +defer +deference +deferential +deferentially +deferment +deferral +deferred +deferring +defers +defiance +defiant +defiantly +defibrillator +defibrillators +deficiencies +deficiency +deficient +deficit +deficits +defied +defier +defies +defile +defiled +defilement +defiles +defiling +definable +definably +define +defined +definer +defines +defining +definite +definitely +definiteness +definition +definitional +definitions +definitive +definitively +definitiveness +deflatable +deflate +deflated +deflates +deflating +deflation +deflationary +deflect +deflected +deflecting +deflection +deflections +deflector +deflectors +deflects +deflower +deflowering +defoliants +defoliation +deforestation +deforested +deform +deformable +deformation +deformations +deformed +deforming +deformities +deformity +deforms +defragmentation +defraud +defrauded +defrauding +defrauds +defray +defrayed +defrost +defrosted +defrosting +defrosts +deft +defter +deftly +deftness +defunct +defuse +defused +defuses +defusing +defy +defying +degas +degauss +degaussed +degaussing +degeneracies +degeneracy +degenerate +degenerated +degenerates +degenerating +degeneration +degenerative +degradable +degradation +degradations +degrade +degraded +degrades +degrading +degrease +degree +degrees +dehorn +dehumanised +dehumanises +dehumanising +dehumidifier +dehydrate +dehydrated +dehydrating +dehydration +deification +deified +deifies +deify +deifying +deism +deist +deists +deities +deity +deject +dejected +dejectedly +dejection +dejects +deklerk +delate +delay +delayed +delaying +delays +delectable +delectation +delegate +delegated +delegates +delegating +delegation +delegations +deletable +delete +deleted +deleter +deleterious +deleteriously +deletes +deleting +deletion +deletions +delhi +deli +deliberate +deliberated +deliberately +deliberating +deliberation +deliberations +deliberative +delible +delicacies +delicacy +delicate +delicately +delicatessen +delicatessens +delicious +deliciously +delict +delight +delighted +delightedly +delightful +delightfully +delighting +delights +delilah +delimit +delimited +delimiter +delimiters +delimiting +delimits +delineate +delineated +delineates +delineating +delineation +delinquency +delinquent +delinquents +deliquesced +deliquescent +delirious +deliriously +delirium +deliver +deliverable +deliverance +delivered +deliverer +deliverers +deliveries +delivering +delivers +delivery +dell +dells +delphi +delphiniums +delta +deltas +deltoid +deltoids +delude +deluded +deludes +deluding +deluge +deluged +deluges +deluging +delusion +delusional +delusions +delusive +deluxe +delve +delved +delves +delving +demagnetisation +demagnetise +demagog +demagogic +demagogue +demagoguery +demagogues +demagogy +demand +demanded +demander +demanding +demands +demarcate +demarcated +demarcating +demarcation +demarcations +dematerialise +dematerialised +dematerialises +demean +demeaned +demeaning +demeanour +demeans +dement +demented +dementedly +dementia +demerge +demerit +demigod +demigods +demijohns +demilitarisation +demilitarised +demise +demised +demises +demist +demists +demo +demobilisation +demobilised +demobs +democracies +democracy +democrat +democratic +democratically +democratisation +democratising +democrats +demodulator +demographer +demographers +demographic +demographically +demographics +demography +demolish +demolished +demolisher +demolishes +demolishing +demolition +demolitions +demon +demonic +demonise +demonology +demons +demonstrable +demonstrably +demonstrate +demonstrated +demonstrates +demonstrating +demonstration +demonstrations +demonstrative +demonstratively +demonstratives +demonstrator +demonstrators +demoralisation +demoralise +demoralised +demoralising +demote +demoted +demotes +demotic +demotion +demount +demountable +demounted +demounting +demur +demure +demurely +demurred +demurring +demurs +demystification +demystify +demystifying +den +denationalisation +denatured +denaturing +dendrites +dendritic +dendrochronological +dendrochronology +deniable +denial +denials +denied +denier +deniers +denies +denigrate +denigrated +denigrates +denigrating +denigration +denigrations +denim +denims +denizen +denizens +denmark +denominated +denomination +denominational +denominations +denominator +denominators +denotation +denotational +denotations +denote +denoted +denotes +denoting +denouement +denounce +denounced +denouncements +denounces +denouncing +dens +dense +densely +denseness +denser +densest +densities +densitometry +density +dent +dental +dented +dentin +dentine +denting +dentist +dentistry +dentists +dentition +dents +denture +dentures +denudation +denude +denuded +denudes +denunciation +denunciations +denver +deny +denying +deodorant +deodorants +deodorised +depart +departed +departer +departing +department +departmental +departmentally +departments +departs +departure +departures +depend +dependability +dependable +dependant +dependants +depended +dependence +dependencies +dependency +dependent +depending +depends +depersonalisation +depersonalising +depict +depicted +depicting +depiction +depictions +depicts +deplete +depleted +depleting +depletion +deplorable +deplorably +deplore +deplored +deplores +deploring +deploy +deployed +deploying +deployment +deployments +deploys +depolarisation +depolarisations +depoliticisation +deponent +depopulated +depopulation +deport +deportation +deportations +deported +deportee +deportees +deporting +deportment +deports +depose +deposed +deposing +deposit +depositary +deposited +depositing +deposition +depositional +depositions +depositories +depositors +depository +deposits +depot +depots +deprave +depraved +depraves +depraving +depravity +deprecate +deprecated +deprecates +deprecating +deprecatingly +deprecation +deprecations +deprecatory +depreciate +depreciated +depreciating +depreciation +depredation +depredations +depress +depressant +depressants +depressed +depresses +depressing +depressingly +depression +depressions +depressive +depressives +deprivation +deprivations +deprive +deprived +deprives +depriving +depth +depths +deputation +deputations +depute +deputed +deputes +deputies +deputise +deputised +deputises +deputising +deputy +derail +derailed +derailing +derailment +derails +derange +deranged +derangement +derate +derated +derates +derbies +derby +deregulate +deregulated +deregulating +deregulation +derelict +dereliction +derelictions +deride +derided +deriders +derides +deriding +derision +derisive +derisively +derisory +derivable +derivation +derivations +derivative +derivatively +derivatives +derive +derived +derives +deriving +dermal +dermatitis +dermatological +dermatologist +dermatologists +dermatology +dermic +dermis +derogate +derogation +derogations +derogatory +derrick +dervishes +desalination +desalt +desaturated +descant +descend +descendant +descendants +descended +descendent +descender +descenders +descending +descends +descent +descents +describable +describe +described +describer +describers +describes +describing +description +descriptions +descriptive +descriptively +descriptiveness +descriptivism +descriptor +descriptors +desecrate +desecrated +desecrates +desecrating +desecration +desegregation +deselected +desensitising +desert +deserted +deserter +deserters +desertification +deserting +desertion +desertions +deserts +deserve +deserved +deservedly +deserves +deserving +desiccated +desiccation +desiccator +desiderata +desideratum +design +designable +designate +designated +designates +designating +designation +designational +designations +designator +designators +designed +designedly +designer +designers +designing +designs +desirabilia +desirability +desirable +desirableness +desirably +desire +desired +desires +desiring +desirous +desist +desisted +desisting +desk +deskilling +desks +desktop +desktops +desolate +desolated +desolating +desolation +desorption +despair +despaired +despairing +despairingly +despairs +despatch +despatched +despatches +despatching +desperado +desperate +desperately +desperation +despicable +despicably +despisal +despise +despised +despises +despising +despite +despoil +despoiled +despoiling +despond +despondency +despondent +despondently +despot +despotic +despotism +despots +dessert +desserts +dessicated +dessication +destabilisation +destabilise +destabilised +destabilising +destination +destinations +destine +destined +destinies +destiny +destitute +destitution +destroy +destroyable +destroyed +destroyer +destroyers +destroying +destroys +destruct +destruction +destructive +destructively +destructiveness +desuetude +desultorily +desultoriness +desultory +detach +detachable +detached +detaches +detaching +detachment +detachments +detail +detailed +detailing +details +detain +detained +detainee +detainees +detainer +detaining +detains +detect +detectability +detectable +detectably +detected +detecting +detection +detections +detective +detectives +detector +detectors +detects +detent +detente +detention +detentions +deter +detergent +detergents +deteriorate +deteriorated +deteriorates +deteriorating +deterioration +determinable +determinacy +determinant +determinants +determinate +determinately +determination +determinations +determinative +determine +determined +determinedly +determiner +determines +determining +determinism +determinist +deterministic +deterministically +deterred +deterrence +deterrent +deterrents +deterring +deters +detest +detestable +detestably +detestation +detested +detester +detesters +detesting +detests +dethrone +dethroned +detonate +detonated +detonates +detonating +detonation +detonations +detonator +detonators +detour +detoured +detours +detox +detoxification +detoxify +detract +detracted +detracting +detraction +detractor +detractors +detracts +detriment +detrimental +detrimentally +detrital +detritus +detroit +deuce +deuced +deuces +deuterium +deuteron +devaluation +devaluations +devalue +devalued +devalues +devaluing +devastate +devastated +devastating +devastatingly +devastation +develop +developed +developer +developers +developing +development +developmental +developmentally +developments +develops +deviance +deviancy +deviant +deviants +deviate +deviated +deviates +deviating +deviation +deviations +device +devices +devil +devilish +devilishly +devilled +devilment +devilry +devils +devious +deviously +deviousness +devisal +devise +devised +deviser +devises +devising +devoice +devoid +devoir +devolution +devolve +devolved +devolving +devote +devoted +devotedly +devotedness +devotee +devotees +devotes +devoting +devotion +devotional +devotions +devour +devoured +devourer +devourers +devouring +devours +devout +devoutly +devoutness +dew +dewdrop +dewdrops +dews +dewy +dexterity +dexterous +dexterously +dextral +dextrose +dextrous +dextrously +dhow +diabetes +diabetic +diabetics +diabolic +diabolical +diabolically +diabolism +diachronic +diaconal +diacritical +diacriticals +diacritics +diadem +diadems +diagnosable +diagnose +diagnosed +diagnoses +diagnosing +diagnosis +diagnostic +diagnostically +diagnostician +diagnostics +diagonal +diagonalise +diagonalised +diagonalises +diagonalising +diagonally +diagonals +diagram +diagrammatic +diagrammatically +diagrams +dial +dialect +dialectal +dialectic +dialectical +dialectically +dialectics +dialects +dialing +dialled +dialler +dialling +dialog +dialogue +dialogues +dials +dialysis +diamante +diameter +diameters +diametric +diametrically +diamond +diamonds +diana +diapason +diaper +diapers +diaphanous +diaphragm +diaphragmatic +diaphragms +diaries +diarist +diarrhea +diarrhoea +diarrhoeal +diary +diaspora +diastolic +diathermy +diatom +diatomic +diatoms +diatonic +diatribe +diatribes +dice +diced +dices +dicey +dichloride +dichotomies +dichotomous +dichotomy +diciest +dicing +dickens +dictate +dictated +dictates +dictating +dictation +dictator +dictatorial +dictatorially +dictators +dictatorship +dictatorships +diction +dictionaries +dictionary +dictions +dictum +did +didactic +didnt +die +died +diehard +diehards +dielectric +dielectrics +dies +diesel +dieselelectric +diesels +diet +dietary +dieted +dieter +dietetic +dietician +dieticians +dieting +dietitian +dietitians +diets +differ +differed +difference +differences +differencing +different +differentiability +differentiable +differential +differentially +differentials +differentiate +differentiated +differentiates +differentiating +differentiation +differentiations +differentiators +differently +differing +differs +difficult +difficulties +difficulty +diffidence +diffident +diffidently +diffract +diffracted +diffracting +diffraction +diffracts +diffuse +diffused +diffuser +diffusers +diffuses +diffusing +diffusion +diffusional +diffusive +diffusivity +dig +digest +digested +digester +digestible +digesting +digestion +digestions +digestive +digestives +digests +digger +diggers +digging +diggings +digit +digital +digitalis +digitally +digitisation +digitise +digitised +digitiser +digitisers +digitising +digits +dignified +dignify +dignifying +dignitaries +dignitary +dignities +dignity +digraphs +digress +digressed +digressing +digression +digressions +digs +dihedral +dikes +diktat +diktats +dilapidated +dilapidation +dilatation +dilate +dilated +dilates +dilating +dilation +dilator +dilatory +dildo +dilemma +dilemmas +dilettante +dilettantes +diligence +diligent +diligently +dill +dilly +diluent +dilute +diluted +diluter +dilutes +diluting +dilution +dilutions +dim +dime +dimension +dimensional +dimensionality +dimensionally +dimensioned +dimensioning +dimensionless +dimensions +dimer +dimers +dimes +diminish +diminishable +diminished +diminishes +diminishing +diminuendo +diminution +diminutive +diminutives +dimly +dimmed +dimmer +dimmers +dimmest +dimming +dimness +dimorphic +dimorphism +dimple +dimpled +dimples +dims +dimwit +din +dinar +dinars +dine +dined +diner +diners +dines +ding +dingdong +dinged +dinghies +dinghy +dingier +dingiest +dinginess +dingle +dingo +dingy +dining +dinky +dinner +dinners +dinosaur +dinosaurs +dint +dints +diocesan +diocese +diode +diodes +dioptre +dioptres +dioxide +dioxides +dioxin +dioxins +dip +diphtheria +diphthong +diphthongs +diplexers +diploid +diploma +diplomacy +diplomas +diplomat +diplomatic +diplomatically +diplomats +dipolar +dipole +dipoles +dipped +dipper +dipping +dips +dipsomania +dipsomaniac +dipsomaniacs +dipstick +dipsticks +dire +direct +directed +directing +direction +directional +directionality +directionally +directionless +directions +directive +directives +directly +directness +director +directorate +directorates +directorial +directories +directors +directorship +directorships +directory +directs +direly +direness +direst +dirge +dirges +dirigible +dirigiste +dirt +dirtied +dirtier +dirties +dirtiest +dirtily +dirtiness +dirts +dirty +dirtying +disabilities +disability +disable +disabled +disablement +disables +disabling +disabuse +disabused +disadvantage +disadvantaged +disadvantageous +disadvantageously +disadvantages +disaffected +disaffection +disaffiliate +disaffiliated +disaffiliating +disaffiliation +disaggregate +disaggregated +disaggregation +disagree +disagreeable +disagreeably +disagreed +disagreeing +disagreement +disagreements +disagrees +disallow +disallowed +disallowing +disallows +disambiguate +disambiguated +disambiguating +disambiguation +disappear +disappearance +disappearances +disappeared +disappearing +disappears +disappoint +disappointed +disappointing +disappointingly +disappointment +disappointments +disappoints +disapprobation +disapproval +disapprove +disapproved +disapproves +disapproving +disapprovingly +disarm +disarmament +disarmed +disarmer +disarming +disarmingly +disarms +disarranging +disarray +disarrayed +disassemble +disassembled +disassembler +disassembles +disassembling +disassembly +disassociate +disassociated +disassociating +disassociation +disaster +disasters +disastrous +disastrously +disavow +disavowal +disavowed +disavowing +disband +disbanded +disbanding +disbandment +disbands +disbars +disbelief +disbelieve +disbelieved +disbeliever +disbelievers +disbelieving +disbelievingly +disburse +disbursed +disbursement +disbursements +disc +discant +discard +discarded +discarding +discards +discern +discerned +discernible +discernibly +discerning +discernment +discerns +discharge +discharged +discharges +discharging +disciple +disciples +discipleship +disciplinarian +disciplinarians +disciplinary +discipline +disciplined +disciplines +disciplining +disclaim +disclaimed +disclaimer +disclaimers +disclaiming +disclaims +disclose +disclosed +discloses +disclosing +disclosure +disclosures +disco +discography +discolour +discolouration +discoloured +discolours +discomfit +discomfited +discomfiture +discomfort +discomforting +discomforts +disconcert +disconcerted +disconcerting +disconcertingly +disconnect +disconnected +disconnecting +disconnection +disconnections +disconnects +disconsolate +disconsolately +disconsolation +discontent +discontented +discontentedly +discontents +discontinuance +discontinuation +discontinue +discontinued +discontinues +discontinuing +discontinuities +discontinuity +discontinuous +discontinuously +discord +discordance +discordant +discords +discotheque +discotheques +discount +discountability +discountable +discounted +discounting +discounts +discourage +discouraged +discouragement +discouragements +discourages +discouraging +discouragingly +discourse +discoursed +discourses +discoursing +discourteous +discourteously +discourtesy +discover +discoverable +discovered +discoverer +discoverers +discoveries +discovering +discovers +discovery +discredit +discreditable +discredited +discrediting +discredits +discreet +discreetly +discreetness +discrepancies +discrepancy +discrepant +discrete +discretely +discretion +discretionary +discriminant +discriminants +discriminate +discriminated +discriminates +discriminating +discrimination +discriminative +discriminator +discriminators +discriminatory +discs +discursive +discursively +discus +discuss +discussable +discussed +discusses +discussing +discussion +discussions +disdain +disdained +disdainful +disdainfully +disdaining +disease +diseased +diseases +disembark +disembarkation +disembarked +disembarking +disembodied +disembodiment +disembowel +disembowelled +disembowelment +disembowels +disenchanted +disenchantment +disenfranchise +disenfranchised +disenfranchisement +disenfranchises +disenfranchising +disengage +disengaged +disengagement +disengaging +disentangle +disentangled +disentangles +disentangling +disequilibrium +disestablish +disestablished +disestablishing +disestablishment +disfavour +disfigure +disfigured +disfigurement +disfigurements +disfigures +disfiguring +disfranchise +disgorge +disgorged +disgorging +disgrace +disgraced +disgraceful +disgracefully +disgraces +disgracing +disgruntled +disgruntlement +disguise +disguised +disguises +disguising +disgust +disgusted +disgustedly +disgusting +disgustingly +disgusts +dish +disharmonious +disharmony +dishcloth +disheartened +disheartening +dished +dishes +dishevelled +dishier +dishing +dishonest +dishonestly +dishonesty +dishonour +dishonourable +dishonourably +dishonoured +dishpan +dishwasher +dishwashers +dishwater +dishy +disillusion +disillusioned +disillusioning +disillusionment +disincentive +disincentives +disinclination +disinclined +disinfect +disinfectant +disinfectants +disinfected +disinfecting +disinfection +disinformation +disingenuous +disingenuously +disinherit +disinherited +disintegrate +disintegrated +disintegrates +disintegrating +disintegration +disinter +disinterest +disinterested +disinterestedly +disinterestedness +disinterred +disinvest +disinvestment +disjoin +disjoint +disjointed +disjointedly +disjointness +disjunct +disjunction +disjunctions +disjunctive +diskette +diskettes +dislike +disliked +dislikes +disliking +dislocate +dislocated +dislocates +dislocating +dislocation +dislocations +dislodge +dislodged +dislodges +dislodging +disloyal +disloyalty +dismal +dismally +dismantle +dismantled +dismantles +dismantling +dismay +dismayed +dismaying +dismays +dismember +dismembered +dismembering +dismemberment +dismembers +dismiss +dismissal +dismissals +dismissed +dismisses +dismissible +dismissing +dismissive +dismissively +dismount +dismounted +dismounting +dismounts +disobedience +disobedient +disobey +disobeyed +disobeying +disobeys +disorder +disordered +disorderly +disorders +disorganisation +disorganise +disorganised +disorganising +disorient +disorientated +disorientating +disorientation +disoriented +disown +disowned +disowning +disowns +disparage +disparaged +disparagement +disparaging +disparagingly +disparate +disparities +disparity +dispassionate +dispassionately +dispatch +dispatched +dispatcher +dispatchers +dispatches +dispatching +dispel +dispelled +dispelling +dispels +dispensable +dispensaries +dispensary +dispensation +dispensations +dispense +dispensed +dispenser +dispensers +dispenses +dispensing +dispersal +dispersant +disperse +dispersed +disperser +dispersers +disperses +dispersing +dispersion +dispersions +dispersive +dispersively +dispirited +dispiritedly +dispiriting +displace +displaced +displacement +displacements +displacer +displaces +displacing +display +displayable +displayed +displaying +displays +displease +displeased +displeasing +displeasure +disporting +disposable +disposables +disposal +disposals +dispose +disposed +disposer +disposers +disposes +disposing +disposition +dispositions +dispossess +dispossessed +dispossession +disproof +disproofs +disproportional +disproportionally +disproportionate +disproportionately +disprovable +disprove +disproved +disproves +disproving +disputable +disputant +disputants +disputation +disputatious +dispute +disputed +disputes +disputing +disqualification +disqualifications +disqualified +disqualifies +disqualify +disqualifying +disquiet +disquieting +disquietude +disquisition +disquisitions +disregard +disregarded +disregarding +disregards +disrepair +disreputable +disrepute +disrespect +disrespectful +disrespectfully +disrespects +disrobe +disrobing +disrupt +disrupted +disrupting +disruption +disruptions +disruptive +disruptively +disruptor +disrupts +dissatisfaction +dissatisfactions +dissatisfied +dissatisfies +dissatisfy +dissatisfying +dissect +dissected +dissecting +dissection +dissections +dissector +dissects +dissemble +dissembled +dissembling +disseminate +disseminated +disseminating +dissemination +dissension +dissensions +dissent +dissented +dissenter +dissenters +dissenting +dissertation +dissertations +disservice +dissidence +dissident +dissidents +dissimilar +dissimilarities +dissimilarity +dissimulation +dissipate +dissipated +dissipates +dissipating +dissipation +dissipative +dissociate +dissociated +dissociating +dissociation +dissociative +dissociatively +dissolute +dissolution +dissolve +dissolved +dissolves +dissolving +dissonance +dissonances +dissonant +dissuade +dissuaded +dissuades +dissuading +distaff +distal +distally +distance +distanced +distances +distancing +distant +distantly +distaste +distasteful +distastefully +distemper +distempered +distempers +distended +distension +distil +distillate +distillation +distillations +distilled +distiller +distilleries +distillers +distillery +distilling +distils +distinct +distinction +distinctions +distinctive +distinctively +distinctiveness +distinctly +distinctness +distinguish +distinguishable +distinguishably +distinguished +distinguishes +distinguishing +distort +distorted +distorter +distorting +distortion +distortions +distorts +distract +distracted +distractedly +distractedness +distracting +distractingly +distraction +distractions +distracts +distraught +distress +distressed +distresses +distressing +distressingly +distributable +distribute +distributed +distributes +distributing +distribution +distributional +distributions +distributive +distributivity +distributor +distributors +district +districts +distrust +distrusted +distrustful +distrustfully +distrusting +distrusts +disturb +disturbance +disturbances +disturbed +disturbing +disturbingly +disturbs +disulphide +disunion +disunite +disunity +disuse +disused +disyllabic +disyllable +ditch +ditched +ditches +ditching +dither +dithered +dithering +dithers +ditties +ditto +ditty +diuresis +diuretic +diuretics +diurnal +diva +divan +divans +divas +dive +divebombing +dived +diver +diverge +diverged +divergence +divergences +divergent +diverges +diverging +divers +diverse +diversely +diversification +diversified +diversifies +diversify +diversifying +diversion +diversionary +diversions +diversities +diversity +divert +diverted +diverticular +diverting +diverts +dives +divest +divested +divesting +divide +divided +dividend +dividends +divider +dividers +divides +dividing +divination +divine +divined +divinely +diviner +divines +divinest +diving +divining +divinities +divinity +divisibility +divisible +division +divisional +divisions +divisive +divisiveness +divisor +divisors +divorce +divorced +divorcee +divorcees +divorces +divorcing +divot +divots +divulge +divulged +divulges +divulging +dizzier +dizziest +dizzily +dizziness +dizzy +dizzying +dizzyingly +do +doberman +doc +docile +docilely +docility +dock +dockage +docked +docker +dockers +docket +dockets +docking +dockland +docklands +docks +dockside +dockyard +dockyards +docs +doctor +doctoral +doctorate +doctorates +doctored +doctoring +doctors +doctrinaire +doctrinal +doctrinally +doctrine +doctrines +document +documentaries +documentary +documentation +documented +documenting +documents +dodecahedra +dodecahedral +dodecahedron +dodge +dodged +dodgem +dodgems +dodger +dodgers +dodges +dodgier +dodging +dodgy +dodo +doe +doer +doers +does +doesnt +doffed +doffing +dog +dogdays +doge +dogeared +doges +dogfight +dogfights +dogfish +dogged +doggedly +doggedness +doggerel +dogging +doggy +doglike +dogma +dogmas +dogmatic +dogmatically +dogmatism +dogmatist +dogmatists +dogood +dogooder +dogooders +dogs +dogsbody +dogtag +dogy +doh +dohs +doily +doing +doings +doityourself +doldrums +dole +doled +doleful +dolefully +dolerite +doles +doling +doll +dollar +dollars +dolled +dollies +dollop +dolls +dolly +dolman +dolmen +dolomite +dolorous +dolphin +dolphinarium +dolphins +dolt +domain +domains +dome +domed +domes +domestic +domestically +domesticated +domestication +domesticity +domestics +domicile +domiciled +domiciliary +dominance +dominant +dominantly +dominate +dominated +dominates +dominating +domination +domineer +domineered +domineering +dominion +dominions +domino +don +donate +donated +donates +donating +donation +donations +done +dong +donga +donjuan +donkey +donkeys +donned +donning +donor +donors +dons +dont +donut +doodle +doodled +doodles +doodling +doom +doomed +dooming +dooms +doomsday +door +doorbell +doorbells +doorhandles +doorkeeper +doorkeepers +doorknob +doorknobs +doorman +doormat +doormats +doormen +doornail +doorpost +doors +doorstep +doorsteps +doorstop +doorstops +doorway +doorways +dopamine +dope +doped +dopes +dopey +dopier +doping +dopy +dor +dorado +dormancy +dormant +dormer +dormers +dormice +dormitories +dormitory +dormouse +dorsal +dorsally +dosage +dosages +dose +dosed +doses +dosing +dossier +dossiers +dot +dotage +dote +doted +dotes +doting +dots +dotted +dottiness +dotting +dotty +double +doublebarrelled +doublecross +doublecrossing +doubled +doubledealing +doubledecker +doubledeckers +doubles +doublet +doubletalk +doublets +doubling +doubly +doubt +doubted +doubter +doubters +doubtful +doubtfully +doubting +doubtingly +doubtless +doubtlessly +doubts +douche +douching +dough +doughnut +doughnuts +doughs +doughty +dour +dourly +dourness +douse +doused +dousing +dove +dovecot +dovecote +dover +doves +dovetail +dovetails +dowager +dowagers +dowdier +dowdiest +dowdy +dowel +dowelling +dowels +down +downbeat +downcast +downed +downfall +downgrade +downgraded +downgrades +downgrading +downhearted +downhill +downing +downland +downlands +download +downloaded +downloading +downloads +downpipe +downpipes +downplay +downplayed +downpour +downpours +downright +downs +downside +downsize +downsized +downsizing +downstage +downstairs +downstream +downswing +downtoearth +downtrodden +downturn +downturns +downward +downwardly +downwards +downwind +downy +dowries +dowry +dowse +dowser +dowsers +dowsing +doyen +doyenne +doyens +doze +dozed +dozen +dozens +dozes +dozier +dozing +dozy +dr +drab +drabness +drachm +drachma +drachmas +dracone +draconian +dracula +draft +drafted +draftee +draftees +drafter +drafters +draftier +drafting +drafts +draftsman +drafty +drag +dragged +dragging +dragnet +dragon +dragonflies +dragonfly +dragons +dragoon +dragooned +dragoons +drags +drain +drainage +drained +drainer +draining +drainpipe +drainpipes +drains +drake +drakes +dram +drama +dramas +dramatic +dramatically +dramatics +dramatisation +dramatisations +dramatise +dramatised +dramatising +dramatist +dramatists +dramaturgical +drank +drape +draped +draper +draperies +drapers +drapery +drapes +draping +drastic +drastically +drat +draught +draughtier +draughtiest +draughts +draughtsman +draughtsmanship +draughtsmen +draughty +draw +drawable +drawback +drawbacks +drawbridge +drawbridges +drawcord +drawees +drawer +drawers +drawing +drawings +drawl +drawled +drawling +drawls +drawn +draws +dray +drays +dread +dreaded +dreadful +dreadfully +dreadfulness +dreading +dreadlocks +dreadnought +dreads +dream +dreamed +dreamer +dreamers +dreamier +dreamiest +dreamily +dreaming +dreamland +dreamless +dreamlike +dreams +dreamt +dreamy +drear +drearier +dreariest +drearily +dreariness +dreary +dredge +dredged +dredger +dredges +dredging +dregs +drench +drenched +drenches +drenching +dress +dressage +dressed +dresser +dressers +dresses +dressing +dressings +dressmaker +dressmakers +dressmaking +dressy +drew +dribble +dribbled +dribbler +dribbles +dribbling +dried +drier +driers +dries +driest +drift +drifted +drifter +drifters +drifting +drifts +driftwood +drill +drilled +driller +drilling +drills +drily +drink +drinkable +drinker +drinkers +drinking +drinks +drip +dripdry +dripped +dripping +drippy +drips +drivable +drive +drive +drivein +driveins +drivel +drivelled +drivelling +drivels +driven +driver +driverless +drivers +drives +driveway +driveways +driving +drizzle +drizzled +drizzles +drizzling +drizzly +droll +droller +drollery +drollest +dromedaries +dromedary +drone +droned +drones +droning +drool +drooled +drooling +drools +droop +drooped +droopier +droopiest +drooping +droopingly +droops +droopy +drop +droplet +droplets +dropout +dropouts +dropped +dropper +dropping +droppings +drops +dropsy +dross +drought +droughts +drove +drover +drovers +droves +droving +drown +drowned +drowning +drownings +drowns +drowse +drowsed +drowses +drowsier +drowsiest +drowsily +drowsiness +drowsy +drub +drubbed +drubbing +drudge +drudgery +drudges +drug +drugged +drugging +druggist +drugs +druid +druids +drum +drumbeat +drumbeats +drummed +drummer +drummers +drumming +drums +drumsticks +drunk +drunkard +drunkards +drunken +drunkenly +drunkenness +drunker +drunks +dry +drycleaned +drycleaning +dryer +dryers +dryeyed +drying +dryish +dryly +dryness +drystone +dual +dualism +dualisms +dualist +dualistic +dualities +duality +dually +duals +dub +dubbed +dubbing +dubious +dubiously +dubiousness +dublin +dubs +duce +duchess +duchesses +duchies +duchy +duck +duckbill +duckbilled +duckboards +ducked +ducking +duckings +duckling +ducklings +duckpond +ducks +duct +ducted +ductile +ducting +ducts +dud +dude +dudes +dudgeon +duds +due +duel +duelled +dueller +duellers +duelling +duellist +duels +dues +duet +duets +duff +duffel +dug +dugout +dugouts +duiker +duke +dukedom +dukedoms +dukes +dulcet +dulcimer +dull +dullard +dullards +dulled +duller +dullest +dulling +dullness +dulls +dully +dulness +duly +dumb +dumbbell +dumber +dumbest +dumbfound +dumbfounded +dumbfounding +dumbfounds +dumbly +dumbness +dumbstruck +dumfound +dumfounded +dumfounding +dumfounds +dummied +dummies +dummy +dump +dumped +dumper +dumping +dumpling +dumplings +dumps +dumpy +dun +dunce +dunces +dune +dunes +dung +dungarees +dungbeetle +dungeon +dungeons +dunghill +dunked +dunking +dunkirk +duo +duodenal +duodenum +duologue +duomo +duopoly +dupe +duped +dupes +duplex +duplicability +duplicate +duplicated +duplicates +duplicating +duplication +duplications +duplicator +duplicators +duplicities +duplicitous +duplicity +durability +durable +durables +durance +duration +durations +durban +duress +during +dusk +duskier +dusky +dust +dustbin +dustbins +dustcart +dusted +duster +dusters +dustier +dustily +dusting +dustman +dustmen +dustpan +dusts +dusty +dutch +dutchman +dutchmen +duties +dutiful +dutifully +dutifulness +duty +dutyfree +duvet +duvets +dux +dwarf +dwarfed +dwarfing +dwarfish +dwarfs +dwarves +dwell +dwelled +dweller +dwellers +dwelling +dwellings +dwells +dwelt +dwindle +dwindled +dwindles +dwindling +dyad +dyadic +dye +dyed +dyeing +dyeings +dyer +dyers +dyes +dyestuff +dyestuffs +dying +dyke +dykes +dynamic +dynamical +dynamically +dynamics +dynamism +dynamite +dynamited +dynamo +dynast +dynastic +dynasties +dynasts +dynasty +dyne +dysentery +dysfunction +dysfunctional +dysfunctions +dyslexia +dyslexic +dyslexically +dyslexics +dyspepsia +dyspeptic +dystrophy +each +eager +eagerly +eagerness +eagle +eagles +eaglet +eaglets +ear +earache +earaches +eardrop +eardrops +eardrum +eardrums +eared +earful +earholes +earl +earldom +earldoms +earlier +earliest +earlobe +earlobes +earls +early +earmark +earmarked +earmarking +earn +earned +earner +earners +earnest +earnestly +earnestness +earning +earnings +earns +earphone +earphones +earpiece +earpieces +earplug +earplugs +earring +earrings +ears +earshot +earsplitting +earth +earthbound +earthed +earthen +earthenware +earthiness +earthing +earthling +earthlings +earthly +earthquake +earthquakes +earths +earthshaking +earthshattering +earthwards +earthwork +earthworks +earthworm +earthworms +earthy +earwax +earwig +earwigs +ease +eased +easel +easels +easement +easements +eases +easier +easiest +easily +easiness +easing +east +eastbound +easter +easterly +eastern +easterners +easternmost +easting +eastward +eastwards +easy +easygoing +eat +eatable +eatage +eaten +eater +eaters +eatery +eating +eatings +eats +eaves +eavesdrop +eavesdropped +eavesdropper +eavesdroppers +eavesdropping +eavesdrops +ebb +ebbed +ebbing +ebbs +ebbtide +ebony +ebullience +ebullient +eccentric +eccentrically +eccentricities +eccentricity +eccentrics +ecclesiastic +ecclesiastical +ecclesiastically +echelon +echelons +echidna +echidnas +echinoderm +echinoderms +echo +echoed +echoic +echoing +eclair +eclairs +eclectic +eclecticism +eclipse +eclipsed +eclipses +eclipsing +ecliptic +ecological +ecologically +ecologist +ecologists +ecology +econometric +econometrics +economic +economical +economically +economics +economies +economisation +economise +economised +economises +economising +economist +economists +economy +ecosystem +ecosystems +ecstasies +ecstasy +ecstatic +ecstatically +ectopic +ectoplasm +ecuador +ecumenical +ecumenically +ecumenism +eczema +eddied +eddies +eddy +eddying +edema +eden +edge +edged +edgeless +edges +edgeways +edgewise +edgier +edgily +edginess +edging +edgings +edgy +edibility +edible +edibles +edict +edicts +edification +edifice +edifices +edified +edifies +edify +edifying +edison +edit +editable +edited +editing +edition +editions +editor +editorial +editorialised +editorially +editorials +editors +editorship +editorships +edits +educate +educated +educates +educating +education +educational +educationalist +educationalists +educationally +educationist +educationists +educations +educative +educator +educators +eduction +eel +eels +eelworm +eelworms +eerie +eerier +eeriest +eerily +eeriness +eery +efface +effaced +effacing +effect +effected +effecting +effective +effectively +effectiveness +effector +effectors +effects +effectual +effectually +effeminacy +effeminate +efferent +effervescence +effervescent +effete +efficacious +efficacy +efficiencies +efficiency +efficient +efficiently +effigies +effigy +effluent +effluents +effluvia +effluxion +effort +effortless +effortlessly +efforts +effrontery +effulgence +effulgent +effusion +effusions +effusive +effusively +eg +egalitarian +egalitarianism +egalitarians +egg +egged +eggheads +egging +eggs +eggshell +eggshells +ego +egocentric +egocentricity +egoism +egoist +egoistic +egoists +egomania +egomaniac +egomaniacs +egotism +egotist +egotistic +egotistical +egotistically +egotists +egregious +egress +egret +egrets +egypt +egyptian +eh +eider +eiderdown +eidetic +eigenfunction +eigenfunctions +eigenstate +eigenstates +eigenvalue +eigenvalues +eight +eighteen +eighteenth +eightfold +eighth +eighties +eightieth +eightpence +eights +eighty +einstein +eire +eisteddfod +either +eject +ejected +ejecting +ejection +ejections +ejector +ejectors +ejects +eke +eked +eking +elaborate +elaborated +elaborately +elaborateness +elaborates +elaborating +elaboration +elaborations +elal +elan +eland +elands +elapse +elapsed +elapses +elapsing +elastic +elastically +elasticated +elasticities +elasticity +elastics +elastin +elastodynamics +elate +elated +elates +elation +elbe +elbow +elbowed +elbowing +elbows +elder +elderberries +elderberry +elderflower +elderly +elders +eldest +eldorado +elect +electability +electable +elected +electing +election +electioneering +elections +elective +elector +electoral +electorally +electorate +electorates +electors +electric +electrical +electrically +electrician +electricians +electricity +electrics +electrification +electrified +electrify +electrifying +electro +electrocardiogram +electrocardiographic +electrochemical +electrochemically +electrocute +electrocuted +electrocutes +electrocuting +electrocution +electrode +electrodes +electrodynamic +electrodynamics +electroencephalogram +electroluminescent +electrolyse +electrolysed +electrolysing +electrolysis +electrolyte +electrolytes +electrolytic +electrolytically +electromagnet +electromagnetic +electromagnetically +electromagnetism +electromechanical +electromechanics +electromotive +electron +electronegative +electronic +electronically +electronics +electrons +electrophoresis +electrostatic +electrostatics +electrotechnical +elects +elegance +elegant +elegantly +elegiac +elegies +elegy +element +elemental +elementally +elementarily +elementary +elements +elephant +elephantiasis +elephantine +elephants +elevate +elevated +elevates +elevating +elevation +elevations +elevator +elevators +eleven +eleventh +elf +elfin +elflike +elgreco +elicit +elicitation +elicited +eliciting +elicits +elide +elided +elides +eliding +eligibility +eligible +eligibly +elijah +eliminate +eliminated +eliminates +eliminating +elimination +eliminations +eliminator +elision +elisions +elite +elites +elitism +elitist +elitists +elixir +elixirs +elk +elks +ell +ellipse +ellipses +ellipsis +ellipsoid +ellipsoidal +ellipsoids +elliptic +elliptical +elliptically +ells +elm +elms +elnino +elocution +elongate +elongated +elongates +elongating +elongation +elongations +elope +eloped +elopement +elopes +eloping +eloquence +eloquent +eloquently +els +else +elsewhere +elucidate +elucidated +elucidates +elucidating +elucidation +elude +eluded +eludes +eluding +elusion +elusions +elusive +elusively +elusiveness +eluted +elution +elven +elves +elvish +elysee +em +emaciate +emaciated +emaciation +email +emailed +emanate +emanated +emanates +emanating +emanation +emanations +emancipate +emancipated +emancipates +emancipating +emancipation +emancipator +emancipatory +emasculate +emasculated +emasculating +emasculation +embalm +embalmed +embalmer +embalmers +embalming +embalms +embank +embankment +embankments +embargo +embargoed +embark +embarkation +embarked +embarking +embarks +embarrass +embarrassed +embarrassedly +embarrasses +embarrassing +embarrassingly +embarrassment +embarrassments +embassies +embassy +embattle +embattled +embed +embeddable +embedded +embedding +embeddings +embeds +embellish +embellished +embellishing +embellishment +embellishments +ember +embers +embezzle +embezzled +embezzlement +embezzler +embezzlers +embezzling +embitter +embittered +embittering +embitterment +emblazoned +emblem +emblematic +emblems +embodied +embodies +embodiment +embodiments +embody +embodying +embolden +emboldened +emboldening +emboldens +embolism +embosom +emboss +embossed +embrace +embraced +embraces +embracing +embrasure +embrocation +embroider +embroidered +embroiderers +embroideries +embroidering +embroidery +embroil +embroiled +embroiling +embryo +embryological +embryology +embryonal +embryonic +emendation +emendations +emended +emerald +emeralds +emerge +emerged +emergence +emergencies +emergency +emergent +emerges +emerging +emeritus +emersion +emery +emetic +emigrant +emigrants +emigrate +emigrated +emigrating +emigration +emigre +emigres +eminence +eminences +eminent +eminently +emir +emirate +emirates +emirs +emissaries +emissary +emission +emissions +emissivities +emissivity +emit +emits +emitted +emitter +emitters +emitting +emollient +emolument +emoluments +emotion +emotional +emotionalism +emotionality +emotionally +emotionless +emotions +emotive +emotively +empathetic +empathetical +empathic +empathise +empathising +empathy +emperor +emperors +emphases +emphasis +emphasise +emphasised +emphasises +emphasising +emphatic +emphatically +emphysema +empire +empires +empiric +empirical +empirically +empiricism +empiricist +empiricists +emplacement +emplacements +employ +employability +employable +employed +employee +employees +employer +employers +employing +employment +employments +employs +emporia +emporium +empower +empowered +empowering +empowerment +empowers +empress +emptied +emptier +empties +emptiest +emptily +emptiness +empty +emptyhanded +emptying +ems +emu +emulate +emulated +emulates +emulating +emulation +emulations +emulator +emulators +emulsifies +emulsion +emulsions +emus +enable +enabled +enables +enabling +enact +enacted +enacting +enactment +enactments +enacts +enamel +enamelled +enamels +enamoured +encage +encamp +encamped +encampment +encampments +encapsulate +encapsulated +encapsulates +encapsulating +encapsulation +encapsulations +encase +encased +encases +encashment +encasing +encephalitis +encephalopathy +enchain +enchant +enchanted +enchanter +enchanters +enchanting +enchantingly +enchantment +enchantments +enchantress +enchants +enchiladas +enciphering +encircle +encircled +encirclement +encirclements +encircles +encircling +enclasp +enclave +enclaves +enclose +enclosed +encloses +enclosing +enclosure +enclosures +encode +encoded +encoder +encoders +encodes +encoding +encomium +encompass +encompassed +encompasses +encompassing +encore +encored +encores +encounter +encountered +encountering +encounters +encourage +encouraged +encouragement +encouragements +encourager +encourages +encouraging +encouragingly +encroach +encroached +encroaches +encroaching +encroachment +encroachments +encrust +encrustation +encrusted +encrusting +encrypt +encrypted +encrypting +encryption +encrypts +encumber +encumbered +encumbering +encumbrance +encumbrances +encyclical +encyclopaedia +encyclopaedias +encyclopaedic +encyclopedia +encyclopedias +encyclopedic +end +endanger +endangered +endangering +endangers +endear +endeared +endearing +endearingly +endearment +endearments +endears +endeavour +endeavoured +endeavouring +endeavours +ended +endemic +endemically +endgame +ending +endings +endive +endless +endlessly +endlessness +endocrine +endogenous +endogenously +endometrial +endometriosis +endometrium +endomorphism +endomorphisms +endoplasmic +endorphins +endorse +endorsed +endorsement +endorsements +endorser +endorses +endorsing +endoscope +endoscopic +endoscopy +endothermic +endotoxin +endow +endowed +endowing +endowment +endowments +endows +endpapers +ends +endued +endues +endungeoned +endurable +endurance +endure +endured +endures +enduring +enema +enemas +enemies +enemy +energetic +energetically +energetics +energies +energise +energised +energiser +energisers +energising +energy +enervate +enervated +enervating +enfeeble +enfeebled +enfeeblement +enfold +enfolded +enfolding +enfolds +enforce +enforceability +enforceable +enforced +enforcement +enforcements +enforcer +enforcers +enforces +enforcing +enfranchise +enfranchised +enfranchisement +enfranchiser +enfranchising +engage +engaged +engagement +engagements +engages +engaging +engagingly +engarde +engels +engender +engendered +engendering +engenders +engine +engined +engineer +engineered +engineering +engineers +engines +england +english +engorge +engorged +engrained +engrave +engraved +engraver +engravers +engraves +engraving +engravings +engross +engrossed +engrossing +engulf +engulfed +engulfing +engulfs +enhance +enhanceable +enhanced +enhancement +enhancements +enhancer +enhancers +enhances +enhancing +enharmonic +enigma +enigmas +enigmatic +enigmatically +enjoin +enjoined +enjoining +enjoins +enjoy +enjoyability +enjoyable +enjoyably +enjoyed +enjoyer +enjoying +enjoyment +enjoyments +enjoys +enlace +enlarge +enlarged +enlargement +enlargements +enlarger +enlarges +enlarging +enlighten +enlightened +enlightening +enlightenment +enlightens +enlist +enlisted +enlisting +enlistment +enlists +enliven +enlivened +enlivening +enlivens +enmasse +enmeshed +enmities +enmity +enneads +ennoble +ennobled +ennobles +ennobling +ennui +enormities +enormity +enormous +enormously +enough +enounced +enounces +enquire +enquired +enquirer +enquirers +enquires +enquiries +enquiring +enquiringly +enquiry +enrage +enraged +enrages +enraging +enraptured +enrich +enriched +enriches +enriching +enrichment +enrichments +enrobe +enrobed +enrol +enroll +enrolled +enrolling +enrolls +enrolment +enrolments +enrols +enroute +ensconce +ensconced +ensemble +ensembles +enshrine +enshrined +enshrines +enshrining +enshroud +enshrouded +ensign +ensigns +enslave +enslaved +enslavement +enslaves +enslaving +ensnare +ensnared +ensnaring +ensnarl +ensue +ensued +ensues +ensuing +ensure +ensured +ensures +ensuring +entablature +entail +entailed +entailing +entailment +entails +entangle +entangled +entanglement +entanglements +entangler +entangles +entangling +entente +enter +entered +entering +enteritis +enterprise +enterprises +enterprising +enters +entertain +entertained +entertainer +entertainers +entertaining +entertainingly +entertainment +entertainments +entertains +enthalpies +enthalpy +enthralled +enthralling +enthrone +enthroned +enthronement +enthuse +enthused +enthuses +enthusiasm +enthusiasms +enthusiast +enthusiastic +enthusiastically +enthusiasts +enthusing +entice +enticed +enticement +enticements +entices +enticing +enticingly +entire +entirely +entires +entirety +entities +entitle +entitled +entitlement +entitlements +entitles +entitling +entity +entomb +entombed +entombment +entombs +entomological +entomologist +entomologists +entomology +entourage +entrails +entrain +entrained +entrainment +entrance +entranced +entrances +entrancing +entrant +entrants +entrap +entrapment +entrapped +entrapping +entreat +entreated +entreaties +entreating +entreatingly +entreats +entreaty +entree +entrench +entrenched +entrenching +entrenchment +entrepreneur +entrepreneurial +entrepreneurs +entrepreneurship +entries +entropic +entropy +entrust +entrusted +entrusting +entrusts +entry +entwine +entwined +entwines +entwining +enumerable +enumerate +enumerated +enumerates +enumerating +enumeration +enumerations +enumerator +enumerators +enunciate +enunciated +enunciating +enunciation +envelop +envelope +enveloped +enveloper +envelopers +envelopes +enveloping +envelops +enviable +enviably +envied +envies +envious +enviously +environ +environment +environmental +environmentalism +environmentalist +environmentalists +environmentally +environments +environs +envisage +envisaged +envisages +envisaging +envision +envisioned +envoy +envoys +envy +envying +enwrap +enzymatic +enzyme +enzymes +eon +eons +eosin +epaulettes +ephemera +ephemeral +ephemeris +ephor +epic +epically +epicarp +epicentre +epics +epicure +epicurean +epicycles +epicycloid +epidemic +epidemics +epidemiological +epidemiologist +epidemiologists +epidemiology +epidermal +epidermis +epidural +epigenetic +epigon +epigones +epigram +epigrammatic +epigrams +epigraph +epigraphical +epigraphy +epilepsy +epileptic +epileptics +epilogue +epinephrine +epiphanies +epiphenomena +epiphenomenon +episcopacy +episcopal +episcopalian +episcopate +episode +episodes +episodic +episodically +epistemic +epistemological +epistemology +epistle +epistles +epistolary +epitap +epitaph +epitaphs +epitaxial +epitaxy +epithelial +epithelium +epithet +epithetic +epithets +epitome +epitomise +epitomised +epitomises +epoch +epochal +epochs +epoxies +epoxy +epsilon +equable +equably +equal +equalisation +equalise +equalised +equaliser +equalisers +equalising +equalities +equality +equalled +equalling +equally +equals +equanimity +equate +equated +equates +equating +equation +equations +equator +equatorial +equerry +equestrian +equestrianism +equiangular +equidistant +equilateral +equilibrating +equilibration +equilibria +equilibrium +equine +equinoctial +equinox +equinoxes +equip +equipartition +equipment +equipments +equipped +equipping +equips +equitable +equitably +equities +equity +equivalence +equivalences +equivalent +equivalently +equivalents +equivocal +equivocated +equivocating +equivocation +equivocations +era +eradicate +eradicated +eradicating +eradication +eras +erasable +erase +erased +eraser +erasers +erases +erasing +erasure +erasures +erbium +ere +erect +erected +erecter +erectile +erecting +erection +erections +erectly +erects +erg +ergo +ergodic +ergonomic +ergonomically +ergonomics +ergophobia +ergot +ergs +erica +ericas +eritrea +ermine +erode +eroded +erodes +eroding +erogenous +eros +erose +erosion +erosional +erosions +erosive +erotic +erotica +erotically +eroticism +err +errand +errands +errant +errata +erratic +erratically +erratum +erred +erring +erroneous +erroneously +error +errors +errs +ersatz +erst +erstwhile +erudite +erudition +erupt +erupted +erupting +eruption +eruptions +eruptive +erupts +erysipelas +esau +escalade +escalate +escalated +escalates +escalating +escalation +escalator +escalators +escapade +escapades +escape +escaped +escapee +escapees +escapement +escapes +escaping +escapism +escapist +escapology +escarp +escarpment +escarpments +escarps +eschatological +eschatology +eschew +eschewed +eschewing +eschews +escort +escorted +escorting +escorts +escudo +eskimo +esoteric +esoterica +esoterically +espadrilles +especial +especially +espied +espionage +esplanade +espousal +espouse +espoused +espouses +espousing +espresso +esprit +espy +espying +esquire +esquires +essay +essayed +essayist +essayists +essays +essen +essence +essences +essential +essentialism +essentialist +essentially +essentials +est +establish +established +establishes +establishing +establishment +establishments +estate +estates +esteem +esteemed +esteems +ester +esters +esthete +esthetic +estimable +estimate +estimated +estimates +estimating +estimation +estimations +estimator +estimators +estonia +estranged +estrangement +estrangements +estuaries +estuarine +estuary +eta +etal +etcetera +etch +etched +etcher +etchers +etches +etching +etchings +eternal +eternally +eternity +ethane +ethanol +ether +ethereal +ethereally +etherised +ethic +ethical +ethically +ethicist +ethics +ethiopia +ethnic +ethnical +ethnically +ethnicity +ethnocentric +ethnographer +ethnographers +ethnographic +ethnography +ethnological +ethnology +ethological +ethologist +ethologists +ethology +ethos +ethyl +ethylene +etiquette +etna +etudes +etui +etymological +etymologically +etymologies +etymologist +etymologists +etymology +eucalyptus +eugenic +eugenics +eukaryote +eukaryotes +eukaryotic +eulogies +eulogise +eulogises +eulogising +eulogistic +eulogy +eunuch +eunuchs +euphemism +euphemisms +euphemistic +euphemistically +euphonious +euphonium +euphoniums +euphony +euphoria +euphoric +eurasia +eurasian +eureka +eurekas +euro +europe +european +eurydice +eutectic +euthanasia +evacuate +evacuated +evacuating +evacuation +evacuations +evacuee +evacuees +evadable +evade +evaded +evader +evaders +evades +evading +evaluable +evaluate +evaluated +evaluates +evaluating +evaluation +evaluational +evaluations +evaluative +evaluator +evaluators +evanescent +evangelical +evangelicalism +evangelicals +evangelisation +evangelise +evangelising +evangelism +evangelist +evangelistic +evangelists +evaporate +evaporated +evaporates +evaporating +evaporation +evaporator +evasion +evasions +evasive +evasively +evasiveness +eve +even +evened +evener +evenhanded +evening +evenings +evenly +evenness +evens +evensong +event +eventful +eventide +eventing +events +eventual +eventualities +eventuality +eventually +ever +everchanging +everest +evergreen +evergreens +everincreasing +everlasting +everlastingly +everliving +evermore +everpresent +eversion +everting +every +everybody +everyday +everyone +everything +everywhere +eves +evict +evicted +evicting +eviction +evictions +evicts +evidence +evidenced +evidences +evident +evidential +evidently +evil +evildoer +evilly +evilness +evils +evince +evinced +evinces +evincing +eviscerate +evocation +evocations +evocative +evocatively +evoke +evoked +evokes +evoking +evolute +evolution +evolutionarily +evolutionary +evolutionism +evolutionist +evolutionists +evolutions +evolve +evolved +evolves +evolving +ewe +ewes +exacerbate +exacerbated +exacerbates +exacerbating +exacerbation +exact +exacted +exacting +exaction +exactitude +exactly +exactness +exacts +exaggerate +exaggerated +exaggeratedly +exaggerates +exaggerating +exaggeration +exaggerations +exalt +exaltation +exalted +exalting +exalts +exam +examinable +examination +examinations +examine +examined +examinees +examiner +examiners +examines +examining +example +examples +exams +exasperate +exasperated +exasperatedly +exasperating +exasperation +excavate +excavated +excavating +excavation +excavations +excavator +excavators +exceed +exceeded +exceeding +exceedingly +exceeds +excel +excelled +excellence +excellencies +excellency +excellent +excellently +excelling +excels +excelsior +except +excepted +excepting +exception +exceptionable +exceptional +exceptionally +exceptions +excepts +excerpt +excerpted +excerpts +excess +excesses +excessive +excessively +exchange +exchangeable +exchanged +exchanger +exchangers +exchanges +exchanging +exchequer +excise +excised +excising +excision +excitability +excitable +excitation +excitations +excite +excited +excitedly +excitement +excitements +excites +exciting +excitingly +exciton +exclaim +exclaimed +exclaiming +exclaims +exclamation +exclamations +exclamatory +exclude +excluded +excludes +excluding +exclusion +exclusionary +exclusions +exclusive +exclusively +exclusiveness +exclusivist +exclusivity +excommunicate +excommunicated +excommunicating +excommunication +excrete +excruciating +excruciatingly +excruciation +excursion +excursionists +excursions +excursus +excusable +excuse +excused +excuses +excusing +executable +execute +executed +executes +executing +execution +executioner +executioners +executions +executive +executives +executor +executors +exegesis +exegetical +exemplar +exemplars +exemplary +exemplification +exemplified +exemplifies +exemplify +exemplifying +exempt +exempted +exempting +exemption +exemptions +exempts +exercisable +exercise +exercised +exerciser +exercises +exercising +exert +exerted +exerting +exertion +exertions +exerts +exes +exeunt +exfoliation +exhalation +exhalations +exhale +exhaled +exhales +exhaling +exhaust +exhausted +exhaustible +exhausting +exhaustion +exhaustive +exhaustively +exhausts +exhibit +exhibited +exhibiting +exhibition +exhibitioner +exhibitioners +exhibitionism +exhibitionist +exhibitionists +exhibitions +exhibitor +exhibitors +exhibits +exhilarate +exhilarated +exhilarating +exhilaration +exhort +exhortation +exhortations +exhorted +exhorting +exhorts +exhumation +exhume +exhumed +exhumes +exhuming +exhusband +exigencies +exigency +exigent +exiguous +exile +exiled +exiles +exiling +exist +existed +existence +existences +existent +existential +existentialism +existentialist +existentialistic +existentially +existing +exists +exit +exited +exiting +exits +exmember +exmembers +exocrine +exoderm +exodus +exogenous +exogenously +exonerate +exonerated +exonerates +exonerating +exoneration +exorbitant +exorbitantly +exorcise +exorcised +exorcising +exorcism +exorcisms +exorcist +exoskeleton +exothermic +exothermically +exotic +exotica +exotically +exoticism +expand +expandability +expandable +expanded +expander +expanding +expands +expanse +expanses +expansible +expansion +expansionary +expansionism +expansionist +expansions +expansive +expansively +expansiveness +expatriate +expatriated +expatriates +expect +expectancies +expectancy +expectant +expectantly +expectation +expectational +expectations +expected +expecting +expectorate +expectorated +expectoration +expects +expedience +expediency +expedient +expedients +expedite +expedited +expedites +expediting +expedition +expeditionary +expeditions +expeditious +expeditiously +expel +expelled +expelling +expels +expend +expendable +expended +expending +expenditure +expenditures +expends +expense +expenses +expensive +expensively +experience +experienced +experiences +experiencing +experiential +experiment +experimental +experimentalist +experimentalists +experimentally +experimentation +experimented +experimenter +experimenters +experimenting +experiments +expert +expertise +expertly +expertness +experts +expiate +expiation +expiatory +expiration +expiratory +expire +expired +expires +expiring +expiry +explain +explainable +explained +explaining +explains +explanation +explanations +explanatory +expletive +expletives +explicable +explicate +explicated +explication +explicative +explicit +explicitly +explicitness +explode +exploded +exploder +exploders +explodes +exploding +exploit +exploitable +exploitation +exploitations +exploitative +exploited +exploiter +exploiters +exploiting +exploits +explorable +exploration +explorations +exploratory +explore +explored +explorer +explorers +explores +exploring +explosion +explosions +explosive +explosively +explosiveness +explosives +expo +exponent +exponential +exponentially +exponentiation +exponents +export +exportability +exportable +exported +exporter +exporters +exporting +exports +expose +exposed +exposes +exposing +exposition +expositions +expository +expostulate +expostulated +expostulating +expostulation +expostulations +exposure +exposures +expound +expounded +expounding +expounds +express +expressed +expresses +expressible +expressing +expression +expressionism +expressionist +expressionistic +expressionists +expressionless +expressionlessly +expressions +expressive +expressively +expressiveness +expressly +expropriate +expropriated +expropriation +expropriations +expulsion +expulsions +expunge +expunged +expunges +expunging +expurgate +expurgated +expurgating +exquisite +exquisitely +exquisiteness +ext +extend +extendability +extendable +extended +extender +extenders +extendible +extending +extends +extensibility +extensible +extension +extensional +extensionally +extensions +extensive +extensively +extensiveness +extensors +extent +extents +extenuate +extenuated +extenuating +extenuation +exterior +exteriors +exterminate +exterminated +exterminates +exterminating +extermination +exterminations +exterminator +exterminators +extern +external +externalised +externally +externals +externs +extinct +extinction +extinctions +extinguish +extinguished +extinguisher +extinguishers +extinguishes +extinguishing +extinguishment +extirpate +extirpation +extol +extolled +extolling +extols +extort +extorted +extorting +extortion +extortionate +extortionately +extortionists +extorts +extra +extracellular +extract +extractable +extracted +extracting +extraction +extractions +extractive +extractor +extracts +extraditable +extradite +extradited +extraditing +extradition +extragalactic +extrajudicial +extralinguistic +extramarital +extramural +extraneous +extraordinarily +extraordinary +extrapolate +extrapolated +extrapolating +extrapolation +extrapolations +extras +extrasolar +extraterrestrial +extraterrestrials +extraterritorial +extravagance +extravagances +extravagant +extravagantly +extravaganza +extravaganzas +extrema +extremal +extreme +extremely +extremes +extremest +extremism +extremist +extremists +extremities +extremity +extricate +extricated +extricating +extrication +extrinsic +extrinsically +extroversion +extrovert +extroverts +extrude +extruded +extrusion +extrusions +exuberance +exuberant +exuberantly +exudate +exude +exuded +exudes +exuding +exult +exultant +exultantly +exultation +exulted +exulting +exultingly +exults +exwife +exwives +eye +eyeball +eyeballs +eyebrow +eyebrows +eyecatching +eyed +eyeful +eyeglass +eyeglasses +eyeing +eyelash +eyelashes +eyeless +eyelet +eyelets +eyelevel +eyelid +eyelids +eyelike +eyeliner +eyepatch +eyepiece +eyes +eyeshadow +eyesight +eyesore +eyesores +eyeteeth +eyetooth +eyewash +eyewitness +eyewitnesses +fab +fable +fabled +fables +fabric +fabricate +fabricated +fabricates +fabricating +fabrication +fabrications +fabricator +fabrics +fabulists +fabulous +fabulously +facade +facades +face +faced +faceless +facelift +faceplate +facer +facers +faces +facet +faceted +faceting +facetious +facetiously +facetiousness +facets +facia +facial +facials +facile +facilitate +facilitated +facilitates +facilitating +facilitation +facilitative +facilitator +facilitators +facilities +facility +facing +facings +facsimile +facsimiles +fact +faction +factional +factionalism +factions +factious +factitious +factor +factored +factorial +factorials +factories +factoring +factorisable +factorisation +factorisations +factorise +factorised +factorises +factorising +factors +factory +factotum +facts +factual +factually +faculties +faculty +fad +fade +faded +fadeout +fades +fading +fads +faecal +faeces +fag +faggot +faggots +fagot +fags +fail +failed +failing +failings +fails +failure +failures +faint +fainted +fainter +faintest +fainthearted +fainting +faintly +faintness +faints +fair +fairer +fairest +fairground +fairgrounds +fairies +fairing +fairish +fairly +fairness +fairs +fairsex +fairway +fairways +fairy +fairytale +faith +faithful +faithfully +faithfulness +faithless +faithlessness +faiths +fake +faked +fakers +fakery +fakes +faking +falcon +falconer +falconry +falcons +fall +fallacies +fallacious +fallacy +fallen +faller +fallers +fallguy +fallibility +fallible +falling +fallopian +fallout +fallow +falls +false +falsebay +falsehood +falsehoods +falsely +falseness +falser +falsetto +falsifiability +falsifiable +falsification +falsifications +falsified +falsifier +falsifiers +falsifies +falsify +falsifying +falsities +falsity +falter +faltered +faltering +falteringly +falters +fame +famed +familial +familiar +familiarisation +familiarise +familiarised +familiarising +familiarities +familiarity +familiarly +families +family +famine +famines +famish +famished +famous +famously +fan +fanatic +fanatical +fanatically +fanaticism +fanatics +fanbelt +fanciable +fancied +fancier +fanciers +fancies +fanciest +fanciful +fancifully +fancy +fancying +fandango +fanfare +fanfares +fang +fangs +fanlight +fanned +fanning +fanny +fans +fantail +fantails +fantasia +fantastic +far +farad +faraday +faraway +farce +farces +farcical +fare +fared +fares +farewell +farewells +farfetched +farflung +faring +farm +farmed +farmer +farmers +farmhouse +farmhouses +farming +farmings +farmland +farms +farmstead +farmsteads +farmyard +farmyards +faroff +farout +farrago +farreaching +farrier +farriers +farrow +farseeing +farsighted +farther +farthest +farthing +farthings +fascia +fascias +fascinate +fascinated +fascinates +fascinating +fascinatingly +fascination +fascinations +fascism +fascist +fascists +fashion +fashionable +fashionably +fashioned +fashioning +fashions +fast +fasted +fasten +fastened +fastener +fasteners +fastening +fastenings +fastens +faster +fastest +fastidious +fastidiously +fastidiousness +fasting +fastings +fastness +fastnesses +fasts +fat +fatal +fatalism +fatalist +fatalistic +fatalistically +fatalities +fatality +fatally +fatcat +fate +fated +fateful +fates +fatheadedness +father +fathered +fatherhood +fathering +fatherinlaw +fatherland +fatherless +fatherly +fathers +fathersinlaw +fathom +fathomed +fathoming +fathomless +fathoms +fatigue +fatigued +fatigues +fatiguing +fatless +fatness +fats +fatted +fatten +fattened +fattening +fattens +fatter +fattest +fattier +fattiest +fatty +fatuity +fatuous +fatuously +fatwa +faucet +faucets +fault +faulted +faulting +faultless +faultlessly +faults +faulty +faun +fauna +faunal +faunas +fauns +faust +faustus +favour +favourable +favourably +favoured +favouring +favourite +favourites +favouritism +favours +fawn +fawned +fawning +fawningly +fawns +fax +faxed +faxes +faxing +fealty +fear +feared +fearful +fearfully +fearfulness +fearing +fearless +fearlessly +fearlessness +fears +fearsome +fearsomely +fearsomeness +feasibility +feasible +feasibly +feast +feasted +feasting +feasts +feat +feather +feathered +feathering +featherlight +feathers +featherweight +feathery +feats +feature +featured +featureless +features +featuring +febrile +february +feckless +fecklessness +fecund +fecundity +fed +federal +federalism +federalist +federalists +federally +federate +federated +federation +federations +fedora +feds +fedup +fee +feeble +feebleminded +feebleness +feebler +feeblest +feebly +feed +feedback +feeder +feeders +feeding +feedings +feeds +feedstock +feedstuffs +feel +feeler +feelers +feeling +feelingly +feelings +feels +fees +feet +feign +feigned +feigning +feigns +feint +feinted +feinting +feints +feldspar +feldspars +felicia +felicitation +felicitations +felicities +felicitous +felicity +feline +felines +fell +fellatio +felled +feller +felling +fellow +fellows +fellowship +fellowships +fells +felon +felonious +felons +felony +felt +feltpen +female +femaleness +females +feminine +femininely +femininity +feminism +feminist +feminists +femur +femurs +fen +fence +fenced +fencepost +fencer +fencers +fences +fencing +fencings +fend +fended +fender +fenders +fending +fends +fenland +fennel +fens +feral +ferment +fermentation +fermented +fermenting +ferments +fermion +fermions +fern +ferns +ferny +ferocious +ferociously +ferociousness +ferocity +ferret +ferreted +ferreting +ferrets +ferric +ferried +ferries +ferrite +ferromagnetic +ferrous +ferrule +ferry +ferrying +ferryman +fertile +fertilisation +fertilise +fertilised +fertiliser +fertilisers +fertilises +fertilising +fertility +fervent +fervently +fervid +fervidly +fervour +fescue +fest +festal +fester +festered +festering +festers +festival +festivals +festive +festivities +festivity +festoon +festooned +festooning +festoons +fetal +fetch +fetched +fetches +fetching +fete +feted +fetes +fetid +fetish +fetishes +fetishism +fetishist +fetishistic +fetishists +fetlock +fetlocks +fetter +fettered +fetters +fettle +fetus +feud +feudal +feudalism +feuded +feuding +feudist +feuds +fever +fevered +feverish +feverishly +fevers +few +fewer +fewest +fewness +fez +fiance +fiancee +fiasco +fiat +fib +fibbed +fibber +fibbers +fibbing +fibers +fibre +fibreboard +fibred +fibreglass +fibres +fibrillating +fibrillation +fibroblast +fibroblasts +fibrosis +fibrous +fibs +fibula +fiche +fiches +fickle +fickleness +fiction +fictional +fictions +fictitious +fictive +ficus +fiddle +fiddled +fiddler +fiddlers +fiddles +fiddlesticks +fiddling +fiddlings +fiddly +fidelity +fidget +fidgeted +fidgeting +fidgets +fidgety +fiduciary +fief +fiefdom +fiefdoms +fiefs +field +fielded +fielder +fielders +fielding +fields +fieldwork +fieldworker +fieldworkers +fiend +fiendish +fiendishly +fiends +fierce +fiercely +fierceness +fiercer +fiercest +fierier +fieriest +fierily +fiery +fiesta +fiestas +fife +fifes +fifteen +fifteenth +fifth +fifthly +fifths +fifties +fiftieth +fifty +fig +fight +fightback +fighter +fighters +fighting +fights +figleaf +figment +figments +figs +figtree +figural +figuration +figurative +figuratively +figure +figured +figurehead +figureheads +figurer +figures +figurine +figurines +figuring +fiji +fijians +filament +filamentary +filamentous +filaments +filch +filched +file +filed +filer +filers +files +filet +filial +filibuster +filigree +filing +filings +fill +filled +filler +fillers +fillet +fillets +fillies +filling +fillings +fillip +fills +filly +film +filmed +filmic +filming +filmmakers +films +filmset +filmy +filter +filtered +filtering +filters +filth +filthier +filthiest +filthily +filthy +filtrate +filtration +fin +final +finale +finales +finalisation +finalise +finalised +finalising +finalist +finalists +finality +finally +finals +finance +financed +finances +financial +financially +financier +financiers +financing +finch +finches +find +findable +finder +finders +finding +findings +finds +fine +fined +finely +fineness +finer +finery +fines +finesse +finest +finetune +finetuned +finetunes +finetuning +finger +fingerboard +fingered +fingering +fingerings +fingerless +fingermarks +fingernail +fingernails +fingerprint +fingerprinted +fingerprinting +fingerprints +fingers +fingertip +fingertips +finial +finicky +fining +finis +finish +finished +finisher +finishers +finishes +finishing +finite +finitely +finiteness +finland +finn +finned +finnish +fins +fiord +fiords +fir +fire +firearm +firearms +fireball +fireballs +firebomb +firebombed +firebombing +firebombs +firebox +firebrand +firecontrol +fired +firefight +firefighter +firefighters +firefighting +fireflies +firefly +fireguard +firelight +firelighters +fireman +firemen +fireplace +fireplaces +firepower +fireproof +fireproofed +firer +fires +fireside +firesides +firewood +firework +fireworks +firing +firings +firkin +firm +firmament +firmed +firmer +firmest +firming +firmly +firmness +firms +firmware +firs +first +firstaid +firstborn +firstborns +firsthand +firstly +firsts +firth +fiscal +fiscally +fish +fished +fisher +fisheries +fisherman +fishermen +fishers +fishery +fishes +fishhook +fishhooks +fishier +fishiest +fishing +fishings +fishlike +fishmonger +fishmongers +fishnet +fishwife +fishy +fissile +fission +fissions +fissure +fissured +fissures +fist +fisted +fistful +fisticuffs +fists +fistula +fit +fitful +fitfully +fitfulness +fitly +fitment +fitments +fitness +fits +fitted +fitter +fitters +fittest +fitting +fittingly +fittings +five +fivefold +fiver +fivers +fives +fix +fixable +fixate +fixated +fixates +fixation +fixations +fixative +fixed +fixedly +fixer +fixers +fixes +fixing +fixings +fixture +fixtures +fizz +fizzed +fizzes +fizzier +fizziest +fizzing +fizzle +fizzled +fizzles +fizzy +fjord +fjords +flab +flabbergasted +flabbier +flabbiest +flabby +flabs +flaccid +flaccidity +flack +flag +flagella +flagellate +flagellation +flagged +flagging +flagon +flagons +flagpole +flagrant +flagrantly +flags +flagship +flagships +flair +flak +flake +flaked +flakes +flakiest +flaking +flaky +flamboyance +flamboyant +flamboyantly +flame +flamed +flamenco +flameproof +flames +flaming +flamingo +flammability +flammable +flan +flange +flanged +flanges +flank +flanked +flanker +flanking +flanks +flannel +flannelette +flannels +flans +flap +flapjack +flapped +flapper +flappers +flapping +flaps +flare +flared +flares +flareup +flareups +flaring +flash +flashback +flashbacks +flashbulb +flashed +flasher +flashes +flashier +flashiest +flashily +flashing +flashlight +flashlights +flashpoint +flashpoints +flashy +flask +flasks +flat +flatfish +flatly +flatmate +flatmates +flatness +flats +flatten +flattened +flattening +flattens +flatter +flattered +flatterer +flatterers +flattering +flatteringly +flatters +flattery +flattest +flattish +flatulence +flatulent +flatus +flatworms +flaunt +flaunted +flaunting +flaunts +flautist +flavour +flavoured +flavouring +flavourings +flavours +flaw +flawed +flawless +flawlessly +flaws +flax +flaxen +flay +flayed +flayer +flayers +flaying +flea +fleabites +fleas +fleck +flecked +flecks +fled +fledge +fledged +fledgeling +fledges +fledgling +fledglings +flee +fleece +fleeced +fleeces +fleecing +fleecy +fleeing +flees +fleet +fleeted +fleeter +fleeting +fleetingly +fleetly +fleets +flemish +flesh +fleshed +flesher +fleshes +fleshier +fleshiest +fleshing +fleshless +fleshly +fleshpots +fleshy +flew +flex +flexed +flexes +flexibilities +flexibility +flexible +flexibly +flexile +flexing +flexion +flexor +flick +flicked +flicker +flickered +flickering +flickers +flickery +flicking +flicks +flier +fliers +flies +flight +flighted +flightless +flightpath +flights +flighty +flimsier +flimsiest +flimsily +flimsiness +flimsy +flinch +flinched +flinching +fling +flinging +flings +flint +flintlock +flintlocks +flints +flinty +flip +flipflop +flipflops +flippable +flippancy +flippant +flippantly +flipped +flipper +flippers +flipping +flips +flirt +flirtation +flirtations +flirtatious +flirtatiously +flirted +flirting +flirts +flit +fliting +flits +flitted +flitting +float +floated +floater +floaters +floating +floats +floaty +flock +flocked +flocking +flocks +floe +flog +flogged +flogger +floggers +flogging +floggings +flogs +flood +flooded +floodgates +flooding +floodlight +floodlighting +floodlights +floodlit +floods +floor +floorboard +floorboards +floored +flooring +floors +floorspace +floozie +floozies +floozy +flop +flopped +flopper +floppier +floppies +floppiest +flopping +floppy +flops +flora +floral +floras +floreat +florence +floret +florid +florida +floridly +florin +florins +florist +florists +floss +flosses +flossing +flossy +flotation +flotations +flotilla +flotillas +flotsam +flounce +flounced +flounces +flouncing +flounder +floundered +floundering +flounders +flour +floured +flourish +flourished +flourishes +flourishing +flours +floury +flout +flouted +flouting +flouts +flow +flowed +flower +flowered +flowering +flowerless +flowerpot +flowerpots +flowers +flowery +flowing +flown +flows +flub +flubbed +fluctuate +fluctuated +fluctuates +fluctuating +fluctuation +fluctuations +flue +fluency +fluent +fluently +flues +fluff +fluffed +fluffier +fluffiest +fluffing +fluffs +fluffy +fluid +fluidised +fluidity +fluidly +fluids +fluke +flukes +flukey +flukier +flukiest +flumes +flumped +flung +flunked +fluor +fluoresce +fluorescence +fluorescent +fluoresces +fluorescing +fluoridation +fluoride +fluorine +fluorocarbon +fluorocarbons +flurried +flurries +flurry +flush +flushed +flusher +flushes +flushing +fluster +flustered +flute +fluted +flutes +fluting +flutist +flutter +fluttered +fluttering +flutters +fluttery +fluvial +flux +fluxes +fly +flyaway +flyer +flyers +flyhalf +flying +flyover +flyovers +flypaper +flypast +flyway +flyways +flyweight +flywheel +foal +foaled +foaling +foals +foam +foamed +foamier +foamiest +foaming +foams +foamy +fob +fobbed +fobbing +fobs +focal +focally +foci +focus +focused +focuses +focusing +focussed +focusses +focussing +fodder +fodders +foe +foehns +foes +foetal +foetid +foetus +foetuses +fog +fogbank +fogey +fogged +foggier +foggiest +fogging +foggy +foghorn +foghorns +fogs +fogy +foible +foibles +foil +foiled +foiling +foils +foist +foisted +foisting +fold +folded +folder +folders +folding +folds +foliage +foliate +foliated +folio +folk +folkart +folkish +folklore +folklorist +folklorists +folks +folktale +follicle +follicles +follicular +follies +follow +followable +followed +follower +followers +following +followings +follows +folly +foment +fomented +fomenting +fond +fondant +fonder +fondest +fondle +fondled +fondles +fondling +fondly +fondness +fondue +fondues +font +fontanel +fonts +food +foodless +foods +foodstuff +foodstuffs +fool +fooled +foolery +foolhardily +foolhardiness +foolhardy +fooling +foolish +foolishly +foolishness +foolproof +fools +foolscap +foot +footage +footages +football +footballer +footballers +footballing +footballs +footbath +footbridge +footed +footfall +footfalls +footgear +foothill +foothills +foothold +footholds +footing +footings +footless +footlights +footloose +footman +footmarks +footmen +footnote +footnotes +footpads +footpath +footpaths +footplate +footprint +footprints +footrest +foots +footsie +footsore +footstep +footsteps +footstool +footstools +footway +footwear +footwork +fop +fops +for +forage +foraged +foragers +forages +foraging +foramen +foray +forays +forbad +forbade +forbear +forbearance +forbearing +forbears +forbid +forbidden +forbidding +forbiddingly +forbids +forbore +force +forced +forcefeed +forcefeeding +forceful +forcefully +forcefulness +forceps +forces +forcible +forcibly +forcing +ford +forded +fording +fords +fore +forearm +forearmed +forearms +forebear +forebears +foreboded +foreboding +forebodings +forebrain +forecast +forecaster +forecasters +forecasting +forecasts +foreclose +foreclosed +foreclosure +forecourt +forecourts +foredeck +forefather +forefathers +forefinger +forefingers +forefront +foregather +foregathered +forego +foregoing +foregone +foreground +foregrounded +foregrounding +foregrounds +forehand +forehead +foreheads +foreign +foreigner +foreigners +foreignness +foreknowledge +foreland +foreleg +forelegs +forelimbs +forelock +foreman +foremen +foremost +forename +forenames +forensic +forensically +forepaw +forepaws +foreplay +forerunner +forerunners +foresail +foresaw +foresee +foreseeability +foreseeable +foreseeing +foreseen +foresees +foreshadow +foreshadowed +foreshadowing +foreshadows +foreshore +foreshores +foreshortened +foreshortening +foresight +foreskin +foreskins +forest +forestall +forestalled +forestalling +forestalls +forested +forester +foresters +forestry +forests +foretaste +foretastes +foretell +foretelling +forethought +foretold +forever +forewarn +forewarned +forewarning +foreword +forewords +forfeit +forfeited +forfeiting +forfeits +forfeiture +forgave +forge +forged +forger +forgeries +forgers +forgery +forges +forget +forgetful +forgetfulness +forgetmenot +forgetmenots +forgets +forgettable +forgetting +forging +forgings +forgivable +forgive +forgiven +forgiveness +forgives +forgiving +forgo +forgoing +forgone +forgot +forgotten +fork +forked +forking +forks +forlorn +forlornly +forlornness +form +formal +formaldehyde +formalin +formalisation +formalisations +formalise +formalised +formalises +formalising +formalism +formalisms +formalist +formalistic +formalities +formality +formally +formant +format +formated +formation +formations +formative +formats +formatted +formatting +formed +former +formerly +formers +formic +formidable +formidably +forming +formless +formlessness +formosa +forms +formula +formulae +formulaic +formulary +formulas +formulate +formulated +formulates +formulating +formulation +formulations +formulator +fornicate +fornicated +fornicates +fornicating +fornication +fornicator +fornicators +forsake +forsaken +forsakes +forsaking +forsook +forswear +forswearing +forswore +forsworn +forsythia +fort +forte +forth +forthcoming +forthright +forthrightly +forthrightness +forthwith +forties +fortieth +fortification +fortifications +fortified +fortify +fortifying +fortissimo +fortitude +fortknox +fortnight +fortnightly +fortnights +fortress +fortresses +forts +fortuitous +fortuitously +fortunate +fortunately +fortune +fortunes +fortuneteller +fortunetellers +fortunetelling +forty +forum +forums +forward +forwarded +forwarder +forwarding +forwardlooking +forwardly +forwardness +forwards +fossa +fossil +fossiliferous +fossilise +fossilised +fossilising +fossils +foster +fostered +fostering +fosters +fought +foul +fouled +fouler +foulest +fouling +foully +foulmouthed +foulness +fouls +foulup +foulups +found +foundation +foundational +foundations +founded +founder +foundered +foundering +founders +founding +foundling +foundries +foundry +founds +fount +fountain +fountains +founts +four +fourfold +fours +foursome +fourteen +fourteenth +fourth +fourthly +fourths +fowl +fowls +fox +foxed +foxes +foxhole +foxholes +foxhounds +foxhunt +foxhunting +foxhunts +foxier +foxiest +foxily +foxiness +foxing +foxtrot +foxtrots +foxy +foyer +foyers +fracas +fractal +fractals +fraction +fractional +fractionally +fractionate +fractionated +fractionating +fractionation +fractions +fractious +fracture +fractured +fractures +fracturing +fragile +fragility +fragment +fragmentary +fragmentation +fragmented +fragmenting +fragments +fragrance +fragrances +fragrant +frail +frailer +frailest +frailly +frailties +frailty +frame +framed +framer +framers +frames +frameup +framework +frameworks +framing +franc +france +franchise +franchised +franchisee +franchisees +franchises +franchising +franchisor +francophone +francs +frangipani +frank +franked +franker +frankest +frankfurter +frankincense +franking +frankly +frankness +franks +frantic +frantically +fraternal +fraternise +fraternising +fraternities +fraternity +fratricidal +fratricide +fraud +frauds +fraudster +fraudsters +fraudulent +fraudulently +fraught +fray +frayed +fraying +frays +frazzle +frazzled +freak +freaked +freakish +freaks +freaky +freckle +freckled +freckles +free +freebie +freebooters +freed +freedom +freedoms +freefall +freefalling +freeforall +freehand +freehold +freeholder +freeholders +freeholds +freeing +freelance +freelancer +freelancers +freelances +freelancing +freely +freeman +freemasonry +freemen +freer +freerange +frees +freesia +freesias +freestanding +freestyle +freeway +freewheeling +freewheels +freeze +freezer +freezers +freezes +freezing +freight +freighted +freighter +freighters +freights +french +frenetic +frenetically +frenzied +frenziedly +frenzies +frenzy +freon +freons +frequencies +frequency +frequent +frequented +frequenting +frequently +frequents +fresco +fresh +freshen +freshened +freshener +fresheners +freshening +freshens +fresher +freshers +freshest +freshly +freshman +freshmen +freshness +freshwater +fret +fretboard +fretful +fretfully +fretfulness +fretless +frets +fretsaw +fretsaws +fretted +fretting +fretwork +freud +freya +friable +friar +friars +friary +fricative +fricatives +friction +frictional +frictionless +frictions +friday +fridays +fridge +fridges +fried +friend +friendless +friendlessness +friendlier +friendlies +friendliest +friendlily +friendliness +friendly +friends +friendship +friendships +friers +fries +frieze +friezes +frigate +frigates +fright +frighted +frighten +frightened +frighteners +frightening +frighteningly +frightens +frightful +frightfully +frights +frigid +frigidity +frigidly +frijole +frill +frilled +frillier +frilliest +frills +frilly +fringe +fringed +fringes +fringing +fringy +frippery +frisk +frisked +friskier +friskiest +friskily +frisking +frisks +frisky +frisson +fritter +frittered +frittering +fritters +frivol +frivolities +frivolity +frivolous +frivolously +frivols +frizzle +frizzles +frizzy +fro +frock +frocks +frog +froggy +frogman +frogmarched +frogmen +frogs +frolic +frolicked +frolicking +frolics +frolicsome +from +frond +fronds +front +frontage +frontages +frontal +frontally +frontals +fronted +frontier +frontiers +fronting +frontispiece +frontispieces +frontline +frontpage +fronts +frost +frostbite +frostbitten +frosted +frostier +frostiest +frostily +frosting +frosts +frosty +froth +frothed +frothier +frothiest +frothing +froths +frothy +froward +frown +frowned +frowning +frowningly +frowns +froze +frozen +fructose +frugal +frugality +frugally +fruit +fruitcake +fruitcakes +fruited +fruiter +fruitful +fruitfully +fruitfulness +fruitier +fruitiest +fruitiness +fruiting +fruition +fruitless +fruitlessly +fruitlessness +fruits +fruity +frumps +frumpy +frustrate +frustrated +frustratedly +frustrates +frustrating +frustratingly +frustration +frustrations +frustum +fry +fryer +fryers +frying +fryings +fuchsia +fuchsias +fuddle +fuddled +fuddles +fudge +fudged +fudges +fudging +fuel +fuelled +fuelling +fuels +fug +fugal +fugitive +fugitives +fugue +fugues +fuhrer +fulcrum +fulfil +fulfilled +fulfilling +fulfilment +fulfils +full +fullback +fullbacks +fullblooded +fullblown +fullbodied +fullcolour +fuller +fullest +fullgrown +fulling +fullish +fulllength +fullmoon +fullness +fullpage +fullscale +fullstop +fullstops +fulltime +fulltimer +fulltimers +fully +fulminant +fulminate +fulminating +fulmination +fulminations +fulsome +fulsomely +fumarole +fumaroles +fumble +fumbled +fumbles +fumbling +fume +fumed +fumes +fumigate +fumigating +fumigation +fuming +fumingly +fun +function +functional +functionalism +functionalist +functionalities +functionality +functionally +functionaries +functionary +functioned +functioning +functionless +functions +fund +fundamental +fundamentalism +fundamentalist +fundamentalists +fundamentally +fundamentals +funded +fundholders +fundholding +funding +fundings +fundraiser +fundraisers +fundraising +funds +funeral +funerals +funerary +funereal +funfair +fungal +fungi +fungicidal +fungicide +fungicides +fungoid +fungous +fungus +funguses +funicular +funk +funked +funkier +funky +funnel +funnelled +funnelling +funnels +funnier +funnies +funniest +funnily +funny +fur +furbished +furbishing +furies +furious +furiously +furled +furling +furlong +furlongs +furlough +furls +furnace +furnaces +furnish +furnished +furnishers +furnishes +furnishing +furnishings +furniture +furore +furores +furred +furrier +furriers +furriest +furriness +furring +furrow +furrowed +furrows +furry +furs +further +furtherance +furthered +furthering +furthermore +furthers +furthest +furtive +furtively +furtiveness +fury +furze +fuse +fused +fuselage +fuses +fusible +fusilier +fusiliers +fusillade +fusing +fusion +fusions +fuss +fussed +fusses +fussier +fussiest +fussily +fussiness +fussing +fussy +fustian +fusty +futile +futilely +futility +futon +future +futures +futurism +futurist +futuristic +futurists +futurity +futurologists +fuzz +fuzzed +fuzzes +fuzzier +fuzziest +fuzzily +fuzziness +fuzzy +gab +gabble +gabbled +gabbles +gabbling +gaberdine +gable +gabled +gables +gabon +gad +gadded +gadding +gadfly +gadget +gadgetry +gadgets +gaff +gaffe +gaffes +gag +gaga +gage +gagged +gagging +gaggle +gaggled +gaging +gags +gagster +gaiety +gaijin +gaily +gain +gained +gainer +gainers +gainful +gainfully +gaining +gainly +gains +gainsay +gainsaying +gait +gaiter +gaiters +gaits +gal +gala +galactic +galas +galaxies +galaxy +gale +galena +gales +galilean +galileo +gall +gallant +gallantly +gallantries +gallantry +gallants +galled +galleon +galleons +galleried +galleries +gallery +galley +galleys +gallic +galling +gallium +gallivanted +gallivanting +gallon +gallons +gallop +galloped +galloping +gallops +gallows +galls +gallstones +galop +galore +galoshes +gals +galvanic +galvanise +galvanised +galvanising +galvanometer +galvanometric +gambia +gambian +gambit +gambits +gamble +gambled +gambler +gamblers +gambles +gambling +gambol +gambolling +gambols +game +gamed +gamekeeper +gamekeepers +gamely +gamers +games +gamesmanship +gamesmen +gamete +gametes +gaming +gamma +gammon +gamut +gamy +gander +ganders +gandhi +gang +ganged +ganger +gangers +ganges +ganging +gangland +ganglia +gangling +ganglion +ganglionic +gangly +gangplank +gangrene +gangrenous +gangs +gangster +gangsterism +gangsters +gangway +gangways +gannet +gannets +gantries +gantry +gaol +gaoled +gaoler +gaolers +gaols +gap +gape +gaped +gapes +gaping +gapingly +gaps +garage +garaged +garages +garb +garbage +garbed +garble +garbled +garbles +garbling +garbs +garden +gardener +gardeners +gardening +gardens +gargantuan +gargle +gargled +gargles +gargling +gargoyle +gargoyles +garish +garishly +garland +garlanded +garlands +garlic +garment +garments +garner +garnered +garnering +garnet +garnets +garnish +garnished +garnishing +garotte +garotted +garottes +garotting +garret +garrets +garrison +garrisoned +garrisons +garrotte +garrotted +garrottes +garrotting +garrulous +garter +garters +gas +gaseous +gases +gash +gashed +gashes +gashing +gasholder +gasify +gasket +gaskets +gaslight +gasometer +gasp +gasped +gasper +gasping +gasps +gassed +gasses +gassier +gassiest +gassing +gassy +gastrectomy +gastric +gastritis +gastroenteritis +gastrointestinal +gastronomic +gastronomy +gastropod +gastropods +gasworks +gate +gateau +gateaus +gateaux +gatecrash +gatecrashed +gatecrasher +gatecrashers +gatecrashing +gated +gatehouse +gatehouses +gatekeeper +gatekeepers +gatepost +gateposts +gates +gateway +gateways +gather +gathered +gatherer +gatherers +gathering +gatherings +gathers +gating +gauche +gaucheness +gaucherie +gaud +gaudiest +gaudily +gaudiness +gaudy +gauge +gauged +gauges +gauging +gaul +gauls +gaunt +gaunter +gauntlet +gauntlets +gauntly +gauze +gave +gavel +gavial +gavials +gavotte +gawk +gawking +gawky +gawpin +gay +gayest +gays +gaze +gazebo +gazed +gazelle +gazelles +gazes +gazette +gazetteer +gazettes +gazing +gdansk +gear +gearbox +gearboxes +geared +gearing +gears +gearstick +gecko +geek +geeks +geese +geezer +geiger +geisha +geishas +gel +gelatin +gelatine +gelatinous +gelding +geldings +gelignite +gelled +gels +gem +gemini +gemmed +gems +gemsbok +gemstone +gemstones +gen +gender +gendered +genderless +genders +gene +genealogical +genealogies +genealogist +genealogy +genera +general +generalisable +generalisation +generalisations +generalise +generalised +generalises +generalising +generalist +generalists +generalities +generality +generally +generals +generalship +generate +generated +generates +generating +generation +generational +generations +generative +generator +generators +generic +generically +generosities +generosity +generous +generously +genes +genesis +genetic +genetically +geneticist +geneticists +genetics +genets +geneva +genial +geniality +genially +genie +genii +genital +genitalia +genitals +genitive +genitives +genius +geniuses +genoa +genocidal +genocide +genome +genomes +genomic +genotype +genotypes +genre +genres +gent +genteel +genteelest +genteelly +gentians +gentile +gentiles +gentility +gentle +gentlefolk +gentleman +gentlemanly +gentlemen +gentleness +gentler +gentlest +gentling +gently +gentrification +gentrified +gentrifying +gentry +gents +genuflect +genuflections +genuine +genuinely +genuineness +genus +geocentric +geochemical +geochemistry +geodesic +geodesics +geographer +geographers +geographic +geographical +geographically +geography +geologic +geological +geologically +geologist +geologists +geology +geomagnetic +geomagnetically +geomagnetism +geometer +geometers +geometric +geometrical +geometrically +geometries +geometry +geomorphological +geomorphologists +geomorphology +geophysical +geophysicist +geophysicists +geophysics +geopolitical +george +georgia +geoscientific +geostationary +geosynchronous +geothermal +geranium +geraniums +gerbil +gerbils +geriatric +geriatrics +germ +german +germane +germanic +germanium +germans +germany +germicidal +germicides +germinal +germinate +germinated +germinating +germination +germs +gerontocracy +gerontologist +gerontology +gerrymander +gerrymandered +gerund +gerundive +gestalt +gestapo +gestate +gestating +gestation +gestational +gesticulate +gesticulated +gesticulating +gesticulation +gesticulations +gestural +gesture +gestured +gestures +gesturing +get +getable +getaway +getrichquick +gets +gettable +getter +getting +geyser +geysers +ghana +ghanian +ghastlier +ghastliest +ghastliness +ghastly +gherkin +gherkins +ghetto +ghost +ghosted +ghosting +ghostlier +ghostliest +ghostlike +ghostly +ghosts +ghoul +ghoulish +ghouls +giant +giantess +giantism +giantkiller +giantkillers +giants +gibber +gibbered +gibbering +gibberish +gibbet +gibbets +gibbon +gibbons +gibbous +gibed +gibes +giblets +giddier +giddiest +giddily +giddiness +giddy +gift +gifted +gifting +gifts +giftware +gig +gigabytes +gigantic +gigantically +gigavolt +giggle +giggled +giggles +giggling +giggly +gigolo +gilded +gilders +gilding +gilds +gill +gillie +gills +gilt +giltedged +gilts +gimcrack +gimlet +gimlets +gimmick +gimmickry +gimmicks +gimmicky +gin +ginger +gingerbread +gingerly +gingers +gingery +gingham +gingivitis +gins +ginseng +gipsies +gipsy +giraffe +giraffes +gird +girded +girder +girders +girding +girdle +girdled +girdles +girdling +girl +girlfriend +girlfriends +girlhood +girlie +girlish +girlishly +girlishness +girls +giro +girt +girth +girths +gist +give +giveaway +given +giver +givers +gives +giving +givings +gizzard +glace +glacial +glacially +glaciated +glaciation +glaciations +glacier +glaciers +glaciological +glaciologist +glaciologists +glaciology +glad +gladden +gladdened +gladdening +gladdens +gladder +gladdest +glade +glades +gladiator +gladiatorial +gladiators +gladioli +gladiolus +gladly +gladness +glamorous +glamour +glance +glanced +glances +glancing +gland +glands +glandular +glans +glare +glared +glares +glaring +glaringly +glasgow +glasnost +glass +glassed +glasses +glassful +glasshouse +glasshouses +glassier +glassiest +glassless +glassware +glassy +glaucoma +glaucous +glaze +glazed +glazer +glazes +glazier +glaziers +glazing +gleam +gleamed +gleaming +gleams +glean +gleaned +gleaning +gleanings +gleans +glebe +glee +gleeful +gleefully +gleefulness +glen +glenn +glens +glia +glib +glibly +glibness +glide +glided +glider +gliders +glides +gliding +glim +glimmer +glimmered +glimmering +glimmerings +glimmers +glimpse +glimpsed +glimpses +glimpsing +glint +glinted +glinting +glints +glisten +glistened +glistening +glistens +glitter +glittered +glittering +glitters +glittery +glitzy +gloaming +gloat +gloated +gloating +glob +global +globalisation +globally +globe +globed +globes +globetrotters +globetrotting +globose +globular +globule +globules +gloom +gloomful +gloomier +gloomiest +gloomily +gloominess +glooms +gloomy +gloried +glories +glorification +glorified +glorifies +glorify +glorifying +glorious +gloriously +glory +glorying +gloss +glossaries +glossary +glossed +glosses +glossier +glossiest +glossily +glossing +glossy +glottal +glove +gloved +gloves +glow +glowed +glower +glowered +glowering +glowers +glowing +glowingly +glows +glowworm +glowworms +glucose +glue +glued +glueing +glues +gluey +gluing +glum +glumly +gluon +glut +glutamate +gluten +glutinous +glutted +glutton +gluttonous +gluttons +gluttony +glycerine +glycerol +glycine +glycol +glyph +glyphs +gnarl +gnarled +gnarling +gnarls +gnash +gnashed +gnashes +gnashing +gnat +gnats +gnaw +gnawed +gnawer +gnawers +gnawing +gnaws +gneiss +gnome +gnomes +gnomic +gnostic +gnosticism +gnu +gnus +go +goad +goaded +goading +goads +goahead +goal +goalies +goalkeeper +goalkeepers +goalkeeping +goalless +goalmouth +goalpost +goalposts +goals +goalscorer +goalscorers +goalscoring +goat +goatee +goatees +goats +goatskin +gobbet +gobbets +gobble +gobbled +gobbledegook +gobbledygook +gobbler +gobbles +gobbling +gobetween +gobi +gobies +goblet +goblets +goblin +goblins +god +godchild +goddess +goddesses +godfather +godfathers +godforsaken +godhead +godless +godlessness +godlier +godlike +godliness +godly +godmother +godmothers +godparents +gods +godsend +godson +godsons +goer +goers +goes +goethe +gofer +goggled +goggles +goggling +going +goings +goitre +goitres +gold +golden +goldfish +golds +goldsmith +goldsmiths +golf +golfer +golfers +golfing +golgotha +goliath +golliwog +golly +gonad +gonads +gondola +gondolas +gondolier +gondoliers +gone +gong +gongs +gonorrhoea +goo +good +goodbye +goodbyes +goodfornothing +goodfornothings +goodhope +goodhumoured +goodhumouredly +goodies +goodish +goodlooking +goodly +goodnatured +goodnaturedly +goodness +goodnight +goods +goodtempered +goodwill +goody +gooey +goof +goofed +goofing +goofs +goofy +googlies +googly +goon +goons +goose +gooseberries +gooseberry +goosestep +goosestepping +gopher +gophers +gordian +gore +gored +gores +gorge +gorged +gorgeous +gorgeously +gorgeousness +gorges +gorging +gorgon +gorgons +gorier +goriest +gorilla +gorillas +goring +gormless +gorse +gory +gosh +gosling +goslings +goslow +goslows +gospel +gospels +gossamer +gossip +gossiped +gossiping +gossips +gossipy +got +goth +gothic +goths +gotten +gouda +gouge +gouged +gouges +gouging +goulash +gourd +gourds +gourmand +gourmet +gourmets +gout +govern +governance +governed +governess +governesses +governing +government +governmental +governments +governor +governors +governorship +governorships +governs +gown +gowned +gowns +grab +grabbed +grabber +grabbers +grabbing +grabs +grace +graced +graceful +gracefully +gracefulness +graceless +gracelessly +graces +gracing +gracious +graciously +graciousness +gradation +gradations +grade +graded +grader +graders +grades +gradient +gradients +grading +gradings +gradual +gradualism +gradualist +gradually +graduand +graduands +graduate +graduated +graduates +graduating +graduation +graduations +graffiti +graffito +graft +grafted +grafting +grafts +graham +grail +grails +grain +grained +grainier +grainiest +graininess +grains +grainy +gram +grammar +grammarian +grammarians +grammars +grammatical +grammatically +gramme +grammes +gramophone +gramophones +grams +granaries +granary +grand +grandads +grandchild +grandchildren +granddad +granddaughter +granddaughters +grandee +grandees +grander +grandest +grandeur +grandfather +grandfathers +grandiloquent +grandiose +grandiosity +grandly +grandma +grandmas +grandmaster +grandmasters +grandmother +grandmothers +grandpa +grandparent +grandparents +grandpas +grands +grandson +grandsons +grandstand +grange +granite +granites +granitic +grannie +grannies +granny +grant +granted +grantee +granting +grants +granular +granularity +granulated +granulation +granule +granules +granulocyte +grape +grapefruit +grapes +grapeshot +grapevine +graph +graphed +graphic +graphical +graphically +graphics +graphite +graphologist +graphologists +graphology +graphs +grapnel +grapple +grappled +grapples +grappling +graptolites +grasp +grasped +grasper +grasping +grasps +grass +grassed +grasses +grasshopper +grasshoppers +grassier +grassiest +grassland +grasslands +grassroots +grassy +grate +grated +grateful +gratefully +grater +graters +grates +graticule +gratification +gratifications +gratified +gratifies +gratify +gratifying +gratifyingly +grating +gratings +gratis +gratitude +gratuities +gratuitous +gratuitously +gratuitousness +gratuity +grave +gravedigger +gravediggers +gravel +gravelled +gravelly +gravels +gravely +graven +graver +graves +graveside +gravest +gravestone +gravestones +graveyard +graveyards +gravies +gravitas +gravitate +gravitated +gravitating +gravitation +gravitational +gravitationally +gravities +graviton +gravitons +gravity +gravures +gravy +graze +grazed +grazer +grazes +grazing +grease +greased +greasepaint +greaseproof +greasers +greases +greasier +greasiest +greasing +greasy +great +greataunt +greataunts +greatcoat +greatcoats +greater +greatest +greatgrandchildren +greatgranddaughter +greatgrandfather +greatgrandmother +greatgrandmothers +greatgrandson +greatly +greatness +grecian +greece +greed +greedier +greediest +greedily +greediness +greeds +greedy +greek +greeks +green +greened +greener +greenery +greenest +greeneyed +greenfield +greenfly +greengages +greengrocer +greengrocers +greengrocery +greenhorn +greenhorns +greenhouse +greenhouses +greenie +greening +greenish +greenly +greenness +greens +greenstone +greensward +greenwich +greet +greeted +greeting +greetings +greets +gregarious +gregariously +gregariousness +gremlin +gremlins +grenade +grenades +grenadier +grenadiers +grew +grey +greybeard +greyed +greyer +greyest +greyhound +greyhounds +greying +greyish +greyness +greys +grid +gridded +gridiron +gridlock +grids +grief +griefs +grievance +grievances +grieve +grieved +griever +grievers +grieves +grieving +grievous +grievously +griffin +griffins +griffon +grill +grille +grilled +grilles +grilling +grills +grim +grimace +grimaced +grimaces +grimacing +grime +grimiest +grimly +grimm +grimmer +grimmest +grimness +grimy +grin +grind +grinded +grinder +grinders +grinding +grinds +grindstone +grinned +grinner +grinning +grins +grip +gripe +griped +gripes +griping +gripped +gripper +grippers +gripping +grips +grislier +grisliest +grisly +grist +gristle +grit +grits +gritted +grittier +grittiest +gritting +gritty +grizzled +grizzlier +grizzliest +grizzly +groan +groaned +groaner +groaners +groaning +groans +groat +groats +grocer +groceries +grocers +grocery +grog +groggiest +groggily +groggy +groin +groins +grommet +grommets +groom +groomed +groomer +groomers +grooming +grooms +groove +grooved +grooves +groovier +grooving +groovy +grope +groped +groper +gropers +gropes +groping +gropingly +gropings +gross +grossed +grosser +grossest +grossly +grossness +grotesque +grotesquely +grotesqueness +grotto +grouch +grouchy +ground +grounded +grounding +groundless +groundnut +groundnuts +grounds +groundsheet +groundsman +groundswell +groundwater +groundwork +group +grouped +grouper +groupie +groupies +grouping +groupings +groups +grouse +grouses +grout +grouting +grove +grovel +grovelled +groveller +grovelling +grovels +groves +grow +grower +growers +growing +growl +growled +growler +growling +growls +grown +grownup +grownups +grows +growth +growths +grub +grubbed +grubbier +grubbiest +grubbing +grubby +grubs +grudge +grudges +grudging +grudgingly +gruel +grueling +gruelling +gruesome +gruesomely +gruesomeness +gruff +gruffly +gruffness +grumble +grumbled +grumbler +grumbles +grumbling +grumblings +grumpier +grumpiest +grumpily +grumps +grumpy +grunge +grunt +grunted +grunter +grunting +grunts +guacamole +guanaco +guanine +guano +guarantee +guaranteed +guaranteeing +guarantees +guarantor +guarantors +guard +guarded +guardedly +guardedness +guardhouse +guardian +guardians +guardianship +guarding +guardroom +guards +guardsman +guardsmen +guava +guavas +gubernatorial +gudgeon +guerilla +guerillas +guerrilla +guerrillas +guess +guessable +guessed +guesses +guessing +guesswork +guest +guesting +guests +guffaw +guffawed +guffaws +guidance +guide +guidebook +guidebooks +guided +guideline +guidelines +guider +guiders +guides +guiding +guidings +guild +guilder +guilders +guilds +guile +guileless +guilelessness +guillemot +guillemots +guillotine +guillotined +guillotines +guillotining +guilt +guiltier +guiltiest +guiltily +guiltiness +guiltless +guilts +guilty +guinea +guineas +guise +guises +guitar +guitarist +guitarists +guitars +gulf +gulfs +gulfwar +gull +gullet +gullets +gulley +gulleys +gullibility +gullible +gullies +gulls +gully +gulp +gulped +gulping +gulps +gum +gumboil +gumboils +gumboots +gumdrop +gumdrops +gummed +gumming +gums +gumshoe +gumtree +gumtrees +gun +gunboat +gunboats +gunfight +gunfire +gunfires +gunite +gunk +gunman +gunmen +gunmetal +gunned +gunner +gunners +gunnery +gunning +gunpoint +gunpowder +guns +gunship +gunships +gunshot +gunshots +gunsight +gunsmith +gunsmiths +gunwale +gunwales +guppies +guppy +gurgle +gurgled +gurgles +gurgling +guru +gurus +gush +gushed +gusher +gushes +gushing +gusset +gust +gusted +gustier +gustiest +gusting +gusto +gusts +gusty +gut +gutless +guts +gutsier +gutsy +gutted +gutter +guttered +guttering +gutters +guttersnipe +guttersnipes +gutting +guttural +gutturally +guy +guys +guzzle +guzzled +guzzler +guzzlers +guzzling +gym +gymkhana +gymnasia +gymnasium +gymnasiums +gymnast +gymnastic +gymnastics +gymnasts +gyms +gynaecological +gynaecologist +gynaecologists +gynaecology +gypsies +gypsum +gypsy +gyrate +gyrated +gyrates +gyrating +gyration +gyrations +gyro +gyromagnetic +gyroscope +gyroscopes +gyroscopic +ha +haberdasher +haberdashers +haberdashery +habit +habitability +habitable +habitat +habitation +habitations +habitats +habitforming +habits +habitual +habitually +habituate +habituated +habituation +hacienda +hack +hackable +hacked +hacker +hackers +hacking +hackle +hackles +hackling +hackney +hackneyed +hacks +hacksaw +had +haddock +haddocks +hades +hadnt +hadron +hadrons +haematological +haematologist +haematology +haematoma +haematuria +haemoglobin +haemolytic +haemophilia +haemophiliac +haemophiliacs +haemorrhage +haemorrhages +haemorrhagic +haemorrhaging +haemorrhoid +haemorrhoids +haft +hafts +hag +haggard +haggardness +haggis +haggle +haggled +haggler +haggling +hagiography +hags +haha +haiku +hail +hailed +hailing +hails +hailstone +hailstones +hailstorm +hailstorms +hair +hairbrush +haircare +haircut +haircuts +hairdo +hairdresser +hairdressers +hairdressing +haired +hairier +hairiest +hairiness +hairless +hairline +hairnet +hairpiece +hairpin +hairpins +hairraising +hairs +hairsplitting +hairspray +hairsprays +hairstyle +hairstyles +hairstyling +hairy +haiti +haitian +hake +hakea +hale +half +halfhearted +halfheartedly +halfheartedness +halfhour +halfhourly +halfhours +halfsister +halftruth +halftruths +halfway +halibut +halifax +halite +halitosis +hall +hallelujah +hallmark +hallmarks +hallo +hallow +hallowed +hallows +halls +hallucinate +hallucinated +hallucinating +hallucination +hallucinations +hallucinatory +hallway +hallways +halo +haloed +halogen +halogenated +halogens +halon +halons +halt +halted +halter +haltered +halters +halting +haltingly +halts +halve +halved +halves +halving +ham +hamburg +hamburger +hamburgers +hamitic +hamlet +hamlets +hammer +hammered +hammerhead +hammering +hammers +hammock +hammocks +hamper +hampered +hampering +hampers +hams +hamster +hamsters +hamstring +hamstrings +hamstrung +hand +handbag +handbags +handball +handbasin +handbell +handbill +handbills +handbook +handbooks +handbrake +handbrakes +handcar +handcart +handcuff +handcuffed +handcuffing +handcuffs +handed +handedness +handel +handful +handfuls +handgun +handguns +handhold +handholds +handicap +handicapped +handicapping +handicaps +handicraft +handicrafts +handier +handiest +handily +handing +handiwork +handkerchief +handkerchiefs +handle +handlebar +handlebars +handled +handler +handlers +handles +handling +handmade +handmaiden +handmaidens +handout +handouts +handover +handovers +handpicked +handrail +handrails +hands +handset +handsets +handshake +handshakes +handshaking +handsome +handsomely +handsomeness +handsomer +handsomest +handstand +handstands +handwriting +handwritten +handy +handyman +handymen +hang +hangar +hangars +hangdog +hanged +hanger +hangers +hangglide +hangglided +hangglider +hanggliders +hangglides +hanggliding +hanging +hangings +hangman +hangmen +hangouts +hangover +hangovers +hangs +hangup +hanker +hankered +hankering +hankers +hankie +hankies +hanoi +hanover +hansard +hansom +haphazard +haphazardly +hapless +happen +happened +happening +happenings +happens +happier +happiest +happily +happiness +happy +happygolucky +harangue +harangued +harangues +haranguing +harare +harass +harassed +harassers +harasses +harassing +harassment +harbinger +harbingers +harbour +harboured +harbouring +harbours +hard +hardback +hardbacks +hardboard +hardboiled +hardcore +hardearned +harden +hardened +hardener +hardeners +hardening +hardens +harder +hardest +hardheaded +hardhearted +hardheartedness +hardhit +hardhitting +hardier +hardiest +hardily +hardiness +hardline +hardliner +hardliners +hardly +hardness +hardpressed +hardship +hardships +hardup +hardware +hardwood +hardwoods +hardworking +hardy +hare +harebell +harebells +harebrained +hared +harem +harems +hares +hark +harked +harken +harkened +harkens +harking +harks +harlequin +harlequins +harlot +harlots +harm +harmed +harmer +harmful +harmfully +harmfulness +harming +harmless +harmlessly +harmlessness +harmonic +harmonica +harmonically +harmonics +harmonies +harmonious +harmoniously +harmonisation +harmonise +harmonised +harmonising +harmonium +harmony +harms +harness +harnessed +harnesses +harnessing +harp +harped +harping +harpist +harpists +harpoon +harpoons +harps +harpsichord +harpsichords +harridan +harried +harrier +harriers +harrow +harrowed +harrowing +harrows +harry +harrying +harsh +harshen +harshens +harsher +harshest +harshly +harshness +hart +harts +harvard +harvest +harvested +harvester +harvesters +harvesting +harvests +has +hasbeen +hasbeens +hash +hashed +hashes +hashing +hashish +hasnt +hasp +hassle +haste +hasted +hasten +hastened +hastening +hastens +hastes +hastier +hastiest +hastily +hastiness +hasty +hat +hatch +hatchback +hatchbacks +hatched +hatcheries +hatchery +hatches +hatchet +hatchets +hatching +hatchway +hate +hated +hateful +hatefully +hater +haters +hates +hatful +hating +hatless +hatrack +hatracks +hatred +hatreds +hats +hatstands +hatted +hatter +hatters +hattrick +hattricks +haughtier +haughtiest +haughtily +haughtiness +haughty +haul +haulage +haulages +hauled +hauler +haulers +haulier +hauliers +hauling +haulms +hauls +haunch +haunches +haunt +haunted +haunting +hauntingly +haunts +hauteur +havana +have +haven +havenots +havens +havent +havering +haversack +haves +having +havoc +hawaii +hawaiian +hawk +hawked +hawker +hawkers +hawking +hawkish +hawks +hawser +hawsers +hawthorn +hawthorns +hay +haydn +hayfever +hayfield +hayloft +haystack +haystacks +haywain +haywire +hazard +hazarded +hazarding +hazardous +hazards +haze +hazel +hazelnut +hazelnuts +hazier +haziest +hazily +haziness +hazy +he +head +headache +headaches +headband +headbands +headboard +headboards +headcount +headdress +headdresses +headed +header +headers +headfast +headgear +headhunted +headhunters +headier +headiest +heading +headings +headlamp +headlamps +headland +headlands +headless +headlight +headlights +headline +headlined +headlines +headlining +headlock +headlong +headman +headmaster +headmasters +headmastership +headmen +headmistress +headmistresses +headnote +headon +headphone +headphones +headpiece +headquarters +headrest +headroom +heads +headscarf +headscarves +headset +headsets +headship +headstand +headstock +headstone +headstones +headstrong +headwaters +headway +headwind +headwinds +headword +headwords +headwork +heady +heal +healed +healer +healers +healing +heals +health +healthful +healthier +healthiest +healthily +healthiness +healths +healthy +heap +heaped +heaping +heaps +hear +hearable +heard +hearer +hearers +hearing +hearings +hearken +hearkened +hearkening +hearkens +hears +hearsay +hearse +hearses +heart +heartache +heartbeat +heartbeats +heartbreak +heartbreaking +heartbreaks +heartbroken +heartburn +hearten +heartened +heartening +heartfelt +hearth +hearthrug +hearths +hearties +heartiest +heartily +heartiness +heartland +heartlands +heartless +heartlessly +heartlessness +heartrending +hearts +heartsearching +heartstrings +hearttoheart +heartwarming +heartwood +hearty +heat +heated +heatedly +heater +heaters +heath +heathen +heathenish +heathenism +heathens +heather +heathers +heathery +heathland +heaths +heating +heatresistant +heats +heatwave +heave +heaved +heaveho +heaven +heavenly +heavens +heavensent +heavenward +heavenwards +heaves +heavier +heavies +heaviest +heavily +heaviness +heaving +heavings +heavy +heavyduty +heavyweight +heavyweights +hebrew +hebrews +heck +heckle +heckled +heckler +hecklers +heckles +heckling +hectare +hectares +hectic +hectically +hectolitres +hector +hectoring +hedge +hedged +hedgehog +hedgehogs +hedgerow +hedgerows +hedges +hedging +hedonism +hedonist +hedonistic +hedonists +heed +heeded +heedful +heeding +heedless +heedlessly +heedlessness +heeds +heel +heeled +heels +heft +hefted +heftier +hefting +hefty +hegemonic +hegemony +heifer +heifers +height +heighten +heightened +heightening +heightens +heights +heinous +heir +heiress +heiresses +heirloom +heirlooms +heirs +heist +heists +held +helen +helical +helices +helicopter +helicopters +heliocentric +heliography +heliosphere +heliotrope +helipad +helium +helix +helixes +hell +hellenic +hellfire +hellish +hellishly +hello +hellraiser +hells +helm +helmet +helmeted +helmets +helms +helmsman +helots +help +helped +helper +helpers +helpful +helpfully +helpfulness +helping +helpings +helpless +helplessly +helplessness +helpline +helplines +helpmate +helpmates +helps +helsinki +helterskelter +hem +heman +hemen +hemisphere +hemispheres +hemispheric +hemispherical +hemline +hemlines +hemlock +hemmed +hemming +hemp +hems +hen +hence +henceforth +henceforward +henchman +henchmen +henge +henna +henpeck +henry +hens +hepatic +hepatitis +heptagon +heptagonal +heptagons +heptane +her +herald +heralded +heraldic +heralding +heraldry +heralds +herb +herbaceous +herbage +herbal +herbalism +herbalist +herbalists +herbicide +herbicides +herbivore +herbivores +herbivorous +herbs +herd +herded +herding +herds +herdsman +herdsmen +here +hereabouts +hereafter +hereby +hereditary +heredity +herein +hereinafter +hereof +heresies +heresy +heretic +heretical +heretics +hereto +heretofore +hereunder +hereupon +herewith +heritability +heritable +heritage +heritors +herm +hermaphrodite +hermaphrodites +hermaphroditic +hermeneutic +hermeneutics +hermetic +hermetically +hermit +hermitage +hermits +hernia +hernias +hero +herod +heroic +heroical +heroically +heroics +heroin +heroine +heroines +heroism +heron +heronry +herons +herpes +herring +herringbone +herrings +hers +herself +hertz +hesitancy +hesitant +hesitantly +hesitate +hesitated +hesitates +hesitating +hesitatingly +hesitation +hesitations +heterodox +heterodoxy +heterogeneity +heterogeneous +heterologous +heterosexist +heterosexual +heterosexuality +heterosexually +heterosexuals +heterozygous +heuristic +heuristically +heuristics +hew +hewed +hewer +hewing +hewn +hex +hexadecimal +hexagon +hexagonal +hexagons +hexagram +hexagrams +hexameter +hexane +hexed +hey +heyday +heydays +hi +hiatus +hiatuses +hibernal +hibernate +hibernating +hibernation +hibiscus +hic +hiccough +hiccup +hiccups +hickory +hid +hidden +hide +hideandseek +hideaway +hideaways +hidebound +hideous +hideously +hideousness +hideout +hideouts +hider +hides +hiding +hidings +hierarch +hierarchic +hierarchical +hierarchically +hierarchies +hierarchy +hieratic +hieroglyph +hieroglyphic +hieroglyphics +hieroglyphs +higgledypiggledy +high +highbrow +higher +highest +highhandedness +highheeled +highish +highjack +highland +highlander +highlanders +highlands +highlight +highlighted +highlighter +highlighting +highlights +highly +highness +highpitched +highpoint +highranking +highs +highspirited +hight +highway +highwayman +highwaymen +highways +hijack +hijacked +hijacker +hijackers +hijacking +hijackings +hijacks +hike +hiked +hiker +hikers +hikes +hiking +hilarious +hilariously +hilarity +hill +hilled +hillier +hilliest +hillman +hillock +hillocks +hillocky +hills +hillside +hillsides +hilltop +hilltops +hillwalking +hilly +hilt +hilts +him +himself +hind +hindbrain +hinder +hindered +hinderer +hindering +hinders +hindmost +hindquarters +hindrance +hindrances +hindsight +hindu +hinduism +hinge +hinged +hinges +hinnies +hinny +hint +hinted +hinterland +hinterlands +hinting +hints +hip +hipbone +hippie +hippies +hippo +hippocampus +hippodrome +hippopotamus +hippy +hips +hipster +hipsters +hire +hired +hireling +hirer +hires +hiring +hirings +hirsute +hirsuteness +his +hispanic +hiss +hissed +hisses +hissing +hissings +histamine +histogram +histograms +histological +histologically +histologists +histology +historian +historians +historic +historical +historically +historicist +histories +historiographical +historiography +history +histrionic +histrionics +hit +hitandrun +hitch +hitched +hitcher +hitches +hitchhike +hitchhiked +hitchhiker +hitchhikers +hitchhiking +hitching +hither +hitherto +hitler +hits +hittable +hitters +hitting +hive +hived +hives +hiving +hmm +ho +hoar +hoard +hoarded +hoarder +hoarders +hoarding +hoardings +hoards +hoarfrost +hoarse +hoarsely +hoarseness +hoarser +hoary +hoax +hoaxed +hoaxer +hoaxers +hoaxes +hoaxing +hob +hobbies +hobbit +hobble +hobbled +hobbles +hobbling +hobby +hobbyist +hobbyists +hobgoblin +hobgoblins +hobnailed +hobnails +hobo +hobs +hock +hockey +hocks +hocus +hocuspocus +hod +hoe +hoed +hoeing +hoes +hog +hogg +hogged +hogger +hogging +hoggs +hogs +hogwash +hoist +hoisted +hoisting +hoists +hold +holdable +holdall +holdalls +holder +holders +holding +holdings +holdout +holds +holdup +holdups +hole +holed +holeinone +holes +holiday +holidaying +holidaymaker +holidaymakers +holidays +holier +holies +holiest +holily +holiness +holing +holism +holistic +holistically +holland +holler +hollered +hollies +hollow +hollowed +hollowly +hollowness +hollows +holly +hollyhocks +holmes +holocaust +holocausts +hologram +holograms +holographic +holography +holster +holsters +holy +homage +homages +hombre +home +homecoming +homecomings +homed +homeland +homelands +homeless +homelessness +homelier +homeliness +homely +homemade +homeowner +homeowners +homes +homesick +homesickness +homespun +homestead +homesteads +homeward +homewardbound +homewards +homework +homicidal +homicide +homicides +homiest +homilies +homily +homing +hominid +hominids +homoeopathic +homoeopathy +homogenates +homogeneity +homogeneous +homogeneously +homogenisation +homogenise +homogenised +homogenising +homological +homologies +homologous +homologue +homologues +homology +homomorphism +homomorphisms +homonym +homonyms +homophobes +homophobia +homophobic +homophones +homophony +homosexual +homosexuality +homosexually +homosexuals +homotopy +homozygous +homunculus +homy +hone +honed +hones +honest +honestly +honesty +honey +honeybee +honeycomb +honeycombed +honeycombing +honeydew +honeyed +honeymoon +honeymooners +honeymoons +honeysuckle +honeysuckles +honing +honk +honking +honks +honorarium +honorary +honorific +honors +honour +honourable +honourably +honoured +honouring +honours +honshu +hood +hooded +hoodlum +hoodlums +hoods +hoodwink +hoodwinked +hoodwinking +hoof +hoofs +hook +hookah +hooked +hooker +hookers +hooking +hooknosed +hooks +hooky +hooligan +hooliganism +hooligans +hoop +hooped +hoops +hooray +hoot +hooted +hooter +hooters +hooting +hoots +hoover +hoovered +hoovering +hooves +hop +hope +hoped +hopeful +hopefully +hopefulness +hopefuls +hopeless +hopelessly +hopelessness +hopes +hoping +hopped +hopper +hoppers +hopping +hops +horde +hordes +horizon +horizons +horizontal +horizontally +horizontals +hormonal +hormonally +hormone +hormones +horn +hornbeam +hornbills +horned +hornet +hornets +hornpipe +hornpipes +horns +horny +horoscope +horoscopes +horrendous +horrendously +horrible +horribly +horrid +horridly +horrific +horrifically +horrified +horrifies +horrify +horrifying +horrifyingly +horror +horrors +horrorstricken +horse +horseback +horsebox +horseflesh +horsefly +horsehair +horseless +horseman +horsemen +horseplay +horsepower +horseradish +horses +horseshoe +horseshoes +horsewhip +horsewhipped +horsey +horsing +horticultural +horticulture +horticulturist +horticulturists +hosanna +hosannas +hose +hosed +hosepipe +hoses +hosier +hosiery +hosing +hospice +hospices +hospitable +hospitably +hospital +hospitalisation +hospitalised +hospitality +hospitals +host +hosta +hostage +hostages +hosted +hostel +hostelries +hostelry +hostels +hostess +hostesses +hostile +hostilely +hostilities +hostility +hosting +hostler +hosts +hot +hotair +hotbed +hotbeds +hotblooded +hotchpotch +hotdog +hotdogs +hotel +hotelier +hoteliers +hotels +hotheaded +hotheads +hothouse +hothouses +hotline +hotly +hotness +hotplate +hotplates +hotpot +hotrod +hotspot +hotspots +hottempered +hotter +hottest +hotting +hound +hounded +hounding +hounds +hour +hourglass +hourly +hours +house +houseboat +houseboats +housebound +housebreaker +housebreakers +housebreaking +housebuilder +housebuilders +housebuilding +housebuyers +housed +houseflies +houseful +household +householder +householders +households +househunting +housekeeper +housekeepers +housekeeping +housemaid +housemaids +houseroom +houses +housewife +housewives +housework +housing +housings +houston +hove +hovel +hovels +hover +hovercraft +hovered +hoverer +hovering +hovers +how +howdy +however +howitzer +howitzers +howl +howled +howler +howlers +howling +howlings +howls +howsoever +hub +hubbies +hubbub +hubby +hubcap +hubcaps +hubris +hubristic +hubs +huckleberry +huddle +huddled +huddles +huddling +hue +hues +huff +huffed +huffily +huffing +huffy +hug +huge +hugely +hugeness +hugged +hugging +hugs +huguenot +huh +hulk +hulking +hulks +hull +hullabaloo +hulled +hullo +hulls +hum +human +humane +humanely +humaner +humanise +humanised +humanising +humanism +humanist +humanistic +humanists +humanitarian +humanitarianism +humanities +humanity +humankind +humanly +humanness +humanoid +humanoids +humans +humble +humbled +humbleness +humbler +humbles +humblest +humbling +humbly +humbug +humbugs +humdrum +humerus +humid +humidifier +humidifiers +humidity +humify +humiliate +humiliated +humiliates +humiliating +humiliatingly +humiliation +humiliations +humility +hummable +hummed +hummer +humming +hummingbird +hummingbirds +hummock +hummocks +hummocky +humorist +humorous +humorously +humour +humoured +humouring +humourless +humours +hump +humpback +humped +humping +humps +hums +humus +hunch +hunchback +hunchbacked +hunched +hunches +hunching +hundred +hundredfold +hundreds +hundredth +hundredths +hundredweight +hundredweights +hung +hungary +hunger +hungered +hungering +hungers +hungrier +hungriest +hungrily +hungry +hunk +hunkers +hunks +hunt +hunted +hunter +huntergatherer +huntergatherers +hunters +hunting +hunts +huntsman +huntsmen +hurdle +hurdled +hurdler +hurdlers +hurdles +hurl +hurled +hurling +hurls +hurlyburly +hurrah +hurrahs +hurray +hurricane +hurricanes +hurried +hurriedly +hurries +hurry +hurrying +hurt +hurtful +hurting +hurtle +hurtled +hurtles +hurtling +hurts +husband +husbandman +husbandmen +husbandry +husbands +hush +hushed +hushes +hushhush +hushing +husk +husked +huskier +huskies +huskiest +huskily +husks +husky +hussies +hussy +hustings +hustle +hustled +hustler +hustlers +hustles +hustling +hut +hutch +hutches +huts +hyacinth +hyacinths +hyaena +hyaenas +hybrid +hybridisation +hybridised +hybrids +hydra +hydrangea +hydrangeas +hydrant +hydrants +hydrate +hydrated +hydration +hydraulic +hydraulically +hydraulics +hydrazine +hydride +hydro +hydrocarbon +hydrocarbons +hydrochloric +hydrochloride +hydrodynamic +hydrodynamical +hydrodynamics +hydroelectric +hydroelectricity +hydrofluoric +hydrofoil +hydrofoils +hydrogen +hydrogenated +hydrogenation +hydrographer +hydrographic +hydrological +hydrologically +hydrologists +hydrology +hydrolysis +hydromagnetic +hydromechanics +hydrophobia +hydrophobic +hydroponically +hydrosphere +hydrostatic +hydrostatics +hydrothermal +hydrous +hydroxide +hydroxides +hyena +hyenas +hygiene +hygienic +hygienically +hygienist +hygienists +hygroscopic +hymen +hymens +hymn +hymnal +hymnbook +hymns +hype +hyperactive +hyperactivity +hyperbola +hyperbolas +hyperbole +hyperbolic +hyperboloid +hyperboloids +hypercholesterolaemia +hypercube +hypercubes +hyperfine +hyperinflation +hypermarket +hypermarkets +hyperplane +hyperplanes +hypersensitive +hypersensitiveness +hypersensitivity +hypersonic +hyperspace +hypersphere +hypertension +hypertext +hypertonic +hyperventilated +hyperventilating +hyperventilation +hyphen +hyphenate +hyphenated +hyphenates +hyphenating +hyphenation +hyphenations +hyphened +hyphens +hypnosis +hypnotherapists +hypnotherapy +hypnotic +hypnotically +hypnotise +hypnotised +hypnotises +hypnotising +hypnotism +hypnotist +hypochondria +hypochondriac +hypochondriacal +hypochondriacs +hypocrisies +hypocrisy +hypocrite +hypocrites +hypocritical +hypocritically +hypodermic +hypoglycaemia +hypoglycaemic +hypotension +hypothalamus +hypothermia +hypotheses +hypothesis +hypothesise +hypothesised +hypothesiser +hypothesises +hypothesising +hypothetical +hypothetically +hypoxia +hyssop +hysterectomy +hysteresis +hysteria +hysteric +hysterical +hysterically +hysterics +iambic +iambus +iatrogenic +iberia +iberian +ibex +ibexes +ibis +ibises +ibsen +icarus +ice +iceage +iceberg +icebergs +icebox +icecap +icecold +icecream +iced +iceland +iceman +icepack +icepick +icepicks +ices +iceskate +iceskating +ichneumon +icicle +icicles +icier +iciest +icily +iciness +icing +icings +icon +iconic +iconoclasm +iconoclast +iconoclastic +iconoclasts +iconographic +iconographical +iconography +icons +icosahedra +icosahedral +icosahedron +icy +id +idaho +idea +ideal +idealisation +idealisations +idealise +idealised +idealises +idealising +idealism +idealist +idealistic +idealistically +idealists +ideality +ideally +ideals +ideas +idem +identical +identically +identifiable +identifiably +identification +identifications +identified +identifier +identifiers +identifies +identify +identifying +identities +identity +ideograms +ideographic +ideographs +ideological +ideologically +ideologies +ideologist +ideologists +ideologue +ideologues +ideology +ides +idiocies +idiocy +idiolect +idiom +idiomatic +idiomatically +idioms +idiopathic +idiosyncrasies +idiosyncrasy +idiosyncratic +idiosyncratically +idiot +idiotic +idiotically +idiots +idle +idled +idleness +idler +idlers +idles +idlest +idling +idly +idol +idolaters +idolatrous +idolatry +idolisation +idolise +idolised +idols +ids +idyll +idyllic +idyllically +if +ifs +igloo +igloos +iglu +igneous +ignite +ignited +igniter +ignites +igniting +ignition +ignoble +ignobly +ignominious +ignominiously +ignominy +ignorable +ignoramus +ignoramuses +ignorance +ignorant +ignorantly +ignore +ignored +ignores +ignoring +iguana +iguanas +ileum +iliad +ilk +ill +illadvised +illbehaved +illconceived +illdefined +illegal +illegalities +illegality +illegally +illegibility +illegible +illegibly +illegitimacy +illegitimate +illegitimately +illequipped +illfated +illfavoured +illhumoured +illiberal +illicit +illicitly +illimitable +illinformed +illinois +illiquid +illiteracy +illiterate +illiterates +illmannered +illness +illnesses +illogic +illogical +illogicality +illogically +ills +illtempered +illtreated +illuminant +illuminate +illuminated +illuminates +illuminating +illumination +illuminations +illumine +illusion +illusionist +illusionists +illusions +illusive +illusory +illustrate +illustrated +illustrates +illustrating +illustration +illustrations +illustrative +illustrator +illustrators +illustrious +ilmenite +im +image +imaged +imagery +images +imaginable +imaginary +imagination +imaginations +imaginative +imaginatively +imagine +imagined +imagines +imaging +imagining +imaginings +imago +imam +imams +imbalance +imbalanced +imbalances +imbecile +imbeciles +imbecilic +imbecilities +imbecility +imbedded +imbeds +imbibe +imbibed +imbiber +imbibers +imbibing +imbroglio +imbue +imbued +imitate +imitated +imitates +imitating +imitation +imitations +imitative +imitator +imitators +immaculate +immaculately +immanence +immanent +immanently +immaterial +immature +immaturely +immaturity +immeasurable +immeasurably +immediacy +immediate +immediately +immediateness +immemorial +immense +immensely +immenseness +immensities +immensity +immerse +immersed +immerses +immersing +immersion +immigrant +immigrants +immigrate +immigrated +immigrating +immigration +immigrations +imminence +imminent +imminently +immiscible +immobile +immobilisation +immobilise +immobilised +immobiliser +immobilises +immobilising +immobility +immoderate +immoderately +immodest +immolate +immolated +immolation +immoral +immorality +immorally +immortal +immortalised +immortality +immortally +immortals +immovability +immovable +immoveable +immune +immunisation +immunisations +immunise +immunised +immunises +immunities +immunity +immunoassay +immunocompromised +immunodeficiency +immunological +immunologically +immunologist +immunologists +immunology +immunosuppression +immunosuppressive +immured +immutability +immutable +immutably +imp +impact +impacted +impacting +impaction +impacts +impair +impaired +impairing +impairment +impairments +impairs +impala +impalas +impale +impaled +impaler +impales +impaling +impalpable +impart +imparted +impartial +impartiality +impartially +imparting +imparts +impassable +impasse +impassioned +impassive +impassively +impassiveness +impassivity +impatience +impatient +impatiently +impeach +impeached +impeaches +impeachment +impeachments +impeccable +impeccably +impecunious +impedance +impede +impeded +impedes +impediment +impedimenta +impediments +impeding +impel +impelled +impelling +impels +impend +impending +impenetrability +impenetrable +impenetrably +imperative +imperatively +imperatives +imperceptible +imperceptibly +imperfect +imperfection +imperfections +imperfectly +imperial +imperialism +imperialist +imperialistic +imperialists +imperially +imperil +imperilled +imperious +imperiously +imperiousness +imperishable +imperium +impermanence +impermanent +impermeability +impermeable +impermissible +impersonal +impersonality +impersonally +impersonate +impersonated +impersonates +impersonating +impersonation +impersonations +impersonator +impersonators +impertinence +impertinent +impertinently +imperturbability +imperturbable +imperturbably +impervious +impetuosity +impetuous +impetuously +impetus +impi +impiety +impinge +impinged +impingement +impinges +impinging +impious +impish +impishly +impishness +implacable +implacably +implant +implantation +implanted +implanting +implants +implausibility +implausible +implausibly +implement +implementable +implementation +implementations +implemented +implementer +implementers +implementing +implements +implicate +implicated +implicates +implicating +implication +implications +implicit +implicitly +implied +impliedly +implies +implode +imploded +implodes +imploding +implore +implored +implores +imploring +imploringly +implosion +imply +implying +impolite +impoliteness +impolitic +imponderable +imponderables +import +importable +importance +important +importantly +importation +imported +importer +importers +importing +imports +importunate +importunately +importune +importuned +importunity +imposable +impose +imposed +imposes +imposing +imposition +impositions +impossibilities +impossibility +impossible +impossibly +imposter +imposters +impostor +impostors +impotence +impotency +impotent +impotently +impound +impounded +impounding +impoverish +impoverished +impoverishing +impoverishment +impracticability +impracticable +impractical +impracticalities +impracticality +impractically +imprecation +imprecations +imprecise +imprecisely +impreciseness +imprecision +impregnable +impregnably +impregnate +impregnated +impregnating +impregnation +impresario +impress +impressed +impresses +impressing +impression +impressionable +impressionism +impressionist +impressionistic +impressionists +impressions +impressive +impressively +impressiveness +imprimatur +imprint +imprinted +imprinting +imprints +imprison +imprisoned +imprisoning +imprisonment +imprisonments +imprisons +improbabilities +improbability +improbable +improbably +impromptu +improper +improperly +improprieties +impropriety +improvable +improve +improved +improvement +improvements +improver +improves +improvidence +improvident +improving +improvisation +improvisational +improvisations +improvisatory +improvise +improvised +improvises +improvising +imprudence +imprudent +imprudently +imps +impudence +impudent +impudently +impugn +impugnable +impugned +impugning +impulse +impulses +impulsion +impulsive +impulsively +impulsiveness +impunity +impure +impurities +impurity +imputation +imputations +impute +imputed +imputing +in +inabilities +inability +inaccessibility +inaccessible +inaccuracies +inaccuracy +inaccurate +inaccurately +inaction +inactivated +inactivating +inactivation +inactive +inactivity +inadequacies +inadequacy +inadequate +inadequately +inadmissible +inadvertence +inadvertent +inadvertently +inadvisability +inadvisable +inadvisedly +inalienable +inane +inanely +inanimate +inanities +inanity +inapplicability +inapplicable +inappropriate +inappropriately +inappropriateness +inaptly +inarticulacy +inarticulate +inarticulateness +inasmuch +inattention +inattentive +inattentively +inaudibility +inaudible +inaudibly +inaugural +inaugurate +inaugurated +inaugurates +inaugurating +inauguration +inauspicious +inauspiciously +inauthenticity +inboard +inborn +inbound +inbred +inbreeding +inbuilt +inca +incalculable +incalculably +incandescence +incandescent +incandescently +incant +incantation +incantations +incantatory +incapability +incapable +incapacitate +incapacitated +incapacitates +incapacitating +incapacitation +incapacity +incarcerated +incarcerating +incarceration +incarnate +incarnated +incarnation +incarnations +incas +incased +incautious +incautiously +incendiaries +incendiary +incense +incensed +incenses +incensing +incentive +incentives +inception +incessant +incessantly +incest +incests +incestuous +incestuousness +inch +inched +inches +inching +inchoate +incidence +incidences +incident +incidental +incidentally +incidents +incinerate +incinerated +incinerates +incinerating +incineration +incinerator +incinerators +incipient +incised +incision +incisions +incisive +incisively +incisiveness +incisor +incisors +incite +incited +incitement +incitements +inciter +inciters +incites +inciting +inclemency +inclement +inclination +inclinations +incline +inclined +inclines +inclining +include +included +includes +including +inclusion +inclusions +inclusive +inclusively +inclusiveness +incognito +incoherence +incoherency +incoherent +incoherently +incombustible +income +incomer +incomers +incomes +incoming +incommensurable +incommoding +incommunicable +incommunicado +incomparable +incomparably +incompatibilities +incompatibility +incompatible +incompatibly +incompetence +incompetent +incompetently +incompetents +incomplete +incompletely +incompleteness +incomprehensibility +incomprehensible +incomprehensibly +incomprehension +incompressible +inconceivable +inconceivably +inconclusive +inconclusively +incongruities +incongruity +incongruous +incongruously +inconsequential +inconsequentially +inconsiderable +inconsiderate +inconsiderately +inconsiderateness +inconsistencies +inconsistency +inconsistent +inconsistently +inconsolable +inconsolably +inconspicuous +inconspicuously +inconspicuousness +inconstancy +inconstant +incontestable +incontestably +incontinence +incontinent +incontinently +incontrovertible +incontrovertibly +inconvenience +inconvenienced +inconveniences +inconveniencing +inconvenient +inconveniently +incorporable +incorporate +incorporated +incorporates +incorporating +incorporation +incorrect +incorrectly +incorrectness +incorrigible +incorrigibly +incorruptible +increase +increased +increases +increasing +increasingly +incredible +incredibly +incredulity +incredulous +incredulously +increment +incremental +incrementally +incrementation +incremented +incrementing +increments +incriminate +incriminated +incriminates +incriminating +incrimination +incubate +incubated +incubating +incubation +incubations +incubator +incubators +inculcate +inculcated +inculcating +inculcation +incumbency +incumbent +incumbents +incur +incurable +incurably +incuriously +incurred +incurring +incurs +incursion +incursions +indaba +indebted +indebtedness +indecency +indecent +indecently +indecipherable +indecision +indecisive +indecisively +indecisiveness +indeclinable +indecorous +indeed +indefatigable +indefeasible +indefensible +indefinable +indefinably +indefinite +indefinitely +indelible +indelibly +indelicacy +indelicate +indemnified +indemnify +indemnities +indemnity +indent +indentation +indentations +indented +indenting +indents +indentures +independence +independent +independently +independents +indepth +indescribable +indescribably +indestructibility +indestructible +indeterminable +indeterminacy +indeterminate +index +indexation +indexed +indexer +indexers +indexes +indexing +india +indian +indiana +indians +indicant +indicants +indicate +indicated +indicates +indicating +indication +indications +indicative +indicator +indicators +indices +indict +indictable +indicted +indicting +indictment +indictments +indicts +indifference +indifferent +indifferently +indigenous +indigestible +indigestion +indignant +indignantly +indignation +indignities +indignity +indigo +indirect +indirection +indirections +indirectly +indirectness +indiscipline +indiscreet +indiscreetly +indiscretion +indiscretions +indiscriminate +indiscriminately +indispensability +indispensable +indispensably +indispose +indisposed +indisposition +indisputable +indisputably +indissoluble +indissolubly +indistinct +indistinctly +indistinctness +indistinguishable +indistinguishably +indite +individual +individualised +individualism +individualist +individualistic +individualists +individuality +individually +individuals +individuation +indivisibility +indivisible +indivisibly +indoctrinate +indoctrinated +indoctrinates +indoctrinating +indoctrination +indoctrinations +indoctrinator +indoctrinators +indole +indolence +indolent +indolently +indomitable +indoor +indoors +indorsed +indorses +indrawn +indubitable +indubitably +induce +induced +inducement +inducements +induces +inducible +inducing +induct +inductance +inducted +induction +inductions +inductive +inductively +inductor +inductors +inducts +indulge +indulged +indulgence +indulgences +indulgent +indulgently +indulger +indulges +indulging +induna +industrial +industrialisation +industrialise +industrialised +industrialising +industrialism +industrialist +industrialists +industrially +industries +industrious +industriously +industriousness +industry +inebriate +inebriated +inebriation +inedible +ineffable +ineffective +ineffectively +ineffectiveness +ineffectual +ineffectually +ineffectualness +inefficiencies +inefficiency +inefficient +inefficiently +inelastic +inelegance +inelegant +inelegantly +ineligibility +ineligible +ineluctable +ineluctably +inept +ineptitude +ineptly +ineptness +inequalities +inequality +inequitable +inequities +inequity +ineradicable +ineradicably +inert +inertia +inertial +inertness +inescapable +inescapably +inessential +inestimable +inestimably +inevitability +inevitable +inevitably +inexact +inexactitude +inexactitudes +inexcusable +inexcusably +inexhaustible +inexhaustibly +inexorability +inexorable +inexorably +inexpedient +inexpensive +inexpensively +inexperience +inexperienced +inexpert +inexpertly +inexplicable +inexplicably +inexpressibility +inexpressible +inexpressibly +inextensible +inextinguishable +inextricable +inextricably +infallibility +infallible +infallibly +infamous +infamously +infamy +infancy +infant +infanta +infante +infanticide +infantile +infantry +infantryman +infantrymen +infants +infarct +infarction +infarctions +infatuate +infatuated +infatuation +infatuations +infeasibility +infeasible +infect +infected +infecting +infection +infections +infectious +infectiously +infective +infects +infelicities +infelicitous +infelicitously +infelicity +infer +inference +inferences +inferential +inferentially +inferior +inferiority +inferiors +infernal +infernally +inferno +inferred +inferring +infers +infertile +infertility +infest +infestation +infestations +infested +infesting +infests +infidel +infidelities +infidelity +infidels +infield +infighting +infill +infilling +infiltrate +infiltrated +infiltrates +infiltrating +infiltration +infiltrations +infiltrator +infiltrators +infinite +infinitely +infinitesimal +infinitesimally +infinitesimals +infinities +infinitive +infinitives +infinitude +infinity +infirm +infirmaries +infirmary +infirmities +infirmity +infix +inflame +inflamed +inflames +inflaming +inflammable +inflammation +inflammatory +inflatable +inflate +inflated +inflates +inflating +inflation +inflationary +inflect +inflected +inflecting +inflection +inflectional +inflections +inflects +inflexibility +inflexible +inflexibly +inflexion +inflexions +inflict +inflicted +inflicter +inflicting +infliction +inflictions +inflicts +inflow +inflowing +inflows +influence +influenced +influences +influencing +influential +influenza +influx +influxes +info +inform +informal +informality +informally +informant +informants +informatics +information +informational +informative +informatively +informativeness +informatory +informed +informer +informers +informing +informs +infra +infraction +infractions +infrared +infrastructural +infrastructure +infrastructures +infrequency +infrequent +infrequently +infringe +infringed +infringement +infringements +infringes +infringing +infuriate +infuriated +infuriates +infuriating +infuriatingly +infuse +infused +infuses +infusing +infusion +infusions +ingathered +ingenious +ingeniously +ingenuity +ingenuous +ingenuously +ingenuousness +ingest +ingested +ingesting +ingestion +inglorious +ingoing +ingot +ingots +ingrained +ingrate +ingratiate +ingratiated +ingratiating +ingratiatingly +ingratitude +ingredient +ingredients +ingress +ingression +ingrown +inhabit +inhabitable +inhabitant +inhabitants +inhabited +inhabiting +inhabits +inhalant +inhalation +inhalations +inhale +inhaled +inhaler +inhalers +inhales +inhaling +inherent +inherently +inherit +inheritable +inheritance +inheritances +inherited +inheriting +inheritor +inheritors +inherits +inhibit +inhibited +inhibiting +inhibition +inhibitions +inhibitor +inhibitors +inhibitory +inhibits +inhomogeneities +inhomogeneity +inhomogeneous +inhospitable +inhouse +inhuman +inhumane +inhumanely +inhumanities +inhumanity +inhumanly +inimical +inimitable +inimitably +iniquities +iniquitous +iniquitously +iniquity +initial +initialisation +initialisations +initialise +initialised +initialises +initialising +initialled +initially +initials +initiate +initiated +initiates +initiating +initiation +initiations +initiative +initiatives +initiator +initiators +inject +injectable +injected +injecting +injection +injections +injector +injects +injoke +injokes +injudicious +injudiciously +injunction +injunctions +injure +injured +injures +injuries +injuring +injurious +injuriously +injury +injustice +injustices +ink +inked +inkier +inkiest +inking +inkling +inklings +inkpad +inkpot +inkpots +inks +inkstand +inkstands +inkwell +inkwells +inky +inlaid +inland +inlaw +inlaws +inlay +inlays +inlet +inlets +inmate +inmates +inmost +inn +innards +innate +innately +inner +innermost +innervation +innings +innkeeper +innkeepers +innocence +innocent +innocently +innocents +innocuous +innocuousness +innovate +innovated +innovating +innovation +innovations +innovative +innovatively +innovator +innovators +innovatory +inns +innuendo +innumerable +innumerably +innumeracy +innumerate +inoculate +inoculated +inoculates +inoculating +inoculation +inoculations +inoffensive +inoperable +inoperative +inopportune +inordinate +inordinately +inorganic +input +inputs +inputting +inquest +inquests +inquire +inquired +inquirer +inquirers +inquires +inquiries +inquiring +inquiringly +inquiry +inquisition +inquisitional +inquisitions +inquisitive +inquisitively +inquisitiveness +inquisitor +inquisitorial +inquisitorially +inquisitors +inquorate +inroad +inroads +inrush +ins +insalubrious +insane +insanely +insanitary +insanities +insanity +insatiable +insatiably +inscribe +inscribed +inscribing +inscription +inscriptions +inscrutability +inscrutable +inscrutably +insect +insecticidal +insecticide +insecticides +insectivores +insectivorous +insects +insecure +insecurely +insecurities +insecurity +insemination +insensibility +insensible +insensibly +insensitive +insensitively +insensitivity +inseparable +inseparably +insert +inserted +inserting +insertion +insertions +inserts +inset +insets +inshore +inside +insideout +insider +insiders +insides +insidious +insidiously +insight +insightful +insights +insignia +insignificance +insignificant +insignificantly +insincere +insincerely +insincerity +insinuate +insinuated +insinuating +insinuatingly +insinuation +insinuations +insipid +insist +insisted +insistence +insistent +insistently +insisting +insists +insofar +insole +insolence +insolent +insolently +insolubility +insoluble +insolvencies +insolvency +insolvent +insomnia +insomniac +insomniacs +insouciance +insouciant +inspect +inspected +inspecting +inspection +inspections +inspector +inspectorate +inspectorates +inspectors +inspects +inspiration +inspirational +inspirations +inspire +inspired +inspires +inspiring +instabilities +instability +install +installable +installation +installations +installed +installer +installers +installing +installs +instalment +instalments +instance +instanced +instances +instancy +instant +instantaneous +instantaneously +instantiate +instantiated +instantiates +instantiating +instantiation +instantiations +instantly +instants +instated +instead +instep +insteps +instigate +instigated +instigates +instigating +instigation +instigator +instigators +instil +instillation +instilled +instilling +instills +instils +instinct +instinctive +instinctively +instincts +instinctual +institute +instituted +institutes +instituting +institution +institutional +institutionalisation +institutionalise +institutionalised +institutionalising +institutionalism +institutionally +institutions +instruct +instructed +instructing +instruction +instructional +instructions +instructive +instructor +instructors +instructs +instrument +instrumental +instrumentalist +instrumentalists +instrumentality +instrumentally +instrumentals +instrumentation +instrumented +instruments +insubordinate +insubordination +insubstantial +insufferable +insufferably +insufficiency +insufficient +insufficiently +insulant +insular +insularity +insulate +insulated +insulates +insulating +insulation +insulator +insulators +insulin +insult +insulted +insulter +insulting +insultingly +insults +insuperable +insupportable +insurance +insurances +insure +insured +insurer +insurers +insures +insurgency +insurgent +insurgents +insuring +insurmountable +insurmountably +insurrection +insurrectionary +insurrections +intact +intaglio +intake +intakes +intangible +intangibles +integer +integers +integrability +integrable +integral +integrally +integrals +integrand +integrands +integrate +integrated +integrates +integrating +integration +integrationist +integrations +integrative +integrator +integrators +integrity +intellect +intellects +intellectual +intellectualism +intellectuality +intellectually +intellectuals +intelligence +intelligences +intelligent +intelligently +intelligentsia +intelligibility +intelligible +intelligibly +intemperance +intemperate +intend +intended +intending +intends +intense +intensely +intensification +intensified +intensifies +intensify +intensifying +intensities +intensity +intensive +intensively +intent +intention +intentional +intentionality +intentionally +intentioned +intentions +intently +intentness +intents +inter +interact +interacted +interacting +interaction +interactional +interactions +interactive +interactively +interactiveness +interacts +interatomic +interbank +interbred +interbreed +interbreeding +intercede +interceded +interceding +intercept +intercepted +intercepting +interception +interceptions +interceptor +interceptors +intercepts +intercession +intercessions +interchange +interchangeability +interchangeable +interchangeably +interchanged +interchanges +interchanging +intercity +intercollegiate +intercom +intercommunicate +intercommunication +interconnect +interconnected +interconnectedness +interconnecting +interconnection +interconnections +interconnects +intercontinental +interconversion +intercountry +intercourse +intercut +interdenominational +interdepartmental +interdependence +interdependency +interdependent +interdict +interdicted +interdisciplinary +interest +interested +interestedly +interesting +interestingly +interests +interface +interfaced +interfaces +interfacing +interfere +interfered +interference +interferences +interferer +interferes +interfering +interferometer +interferometers +interferometric +interferometry +interferon +intergalactic +interglacial +intergovernmental +interim +interims +interior +interiors +interject +interjected +interjecting +interjection +interjectional +interjections +interjects +interlace +interlaced +interlacing +interlap +interleave +interleaved +interleaves +interleaving +interlingual +interlinked +interlock +interlocked +interlocking +interlocks +interlocutor +interlocutors +interlocutory +interloper +interlopers +interlude +interludes +intermarriage +intermarriages +intermediaries +intermediary +intermediate +intermediates +interment +interments +interminable +interminably +intermingled +intermingling +intermission +intermissions +intermittent +intermittently +intermix +intermixed +intermixing +intermolecular +intern +internal +internalisation +internalise +internalised +internalises +internalising +internally +internals +international +internationalisation +internationalised +internationalism +internationalist +internationalists +internationally +internationals +interned +internees +internet +interning +internment +internments +interns +internuclear +interocular +interoperability +interoperable +interpellation +interpenetration +interpersonal +interplanetary +interplay +interplays +interpolatable +interpolate +interpolated +interpolates +interpolating +interpolation +interpolations +interpose +interposed +interposes +interposing +interposition +interpret +interpretable +interpretation +interpretational +interpretations +interpretative +interpreted +interpreter +interpreters +interpreting +interpretive +interpretively +interprets +interracial +interred +interregnum +interrelate +interrelated +interrelatedness +interrelation +interrelations +interrelationship +interrelationships +interrogate +interrogated +interrogates +interrogating +interrogation +interrogations +interrogative +interrogatively +interrogatives +interrogator +interrogators +interrogatory +interrupt +interrupted +interruptibility +interrupting +interruption +interruptions +interrupts +intersect +intersected +intersecting +intersection +intersections +intersects +intersperse +interspersed +intersperses +interspersing +interstellar +interstices +interstitial +interstitially +intertidal +intertwine +intertwined +intertwining +interval +intervals +intervene +intervened +intervenes +intervening +intervention +interventionism +interventionist +interventions +interview +interviewed +interviewee +interviewees +interviewer +interviewers +interviewing +interviews +interweaving +interwoven +intestacy +intestate +intestinal +intestine +intestines +intifada +intimacies +intimacy +intimate +intimated +intimately +intimates +intimating +intimation +intimations +intimidate +intimidated +intimidates +intimidating +intimidation +intimidatory +into +intolerable +intolerably +intolerance +intolerant +intonation +intonational +intonations +intone +intoned +intones +intoning +intoxicant +intoxicants +intoxicate +intoxicated +intoxicating +intoxication +intracellular +intractability +intractable +intractably +intramural +intramuscular +intransigence +intransigent +intransitive +intrauterine +intravenous +intravenously +intrepid +intrepidly +intricacies +intricacy +intricate +intricately +intrigue +intrigued +intrigues +intriguing +intriguingly +intrinsic +intrinsically +intro +introduce +introduced +introduces +introducing +introduction +introductions +introductory +introspection +introspective +introspectively +introversion +introvert +introverted +introverts +intrude +intruded +intruder +intruders +intrudes +intruding +intrusion +intrusions +intrusive +intrusiveness +intuited +intuition +intuitionist +intuitions +intuitive +intuitively +intuitiveness +inuit +inuits +inundate +inundated +inundation +inure +inured +invade +invaded +invader +invaders +invades +invading +invalid +invalidate +invalidated +invalidates +invalidating +invalidation +invalided +invalidity +invalids +invaluable +invariable +invariably +invariance +invariant +invariants +invasion +invasions +invasive +invective +invectives +inveigh +inveighing +inveigle +inveigled +inveigler +inveiglers +inveigling +invent +invented +inventing +invention +inventions +inventive +inventively +inventiveness +inventor +inventories +inventors +inventory +invents +inverse +inversely +inverses +inversion +inversions +invert +invertebrate +invertebrates +inverted +inverter +inverters +invertible +inverting +inverts +invest +invested +investigate +investigated +investigates +investigating +investigation +investigations +investigative +investigator +investigators +investigatory +investing +investiture +investment +investments +investor +investors +invests +inveterate +invidious +invigilate +invigilated +invigilating +invigilator +invigilators +invigorate +invigorated +invigorating +invigoratingly +invincibility +invincible +inviolability +inviolable +inviolate +inviscid +invisibilities +invisibility +invisible +invisibles +invisibly +invitation +invitations +invite +invited +invites +inviting +invitingly +invocation +invocations +invoice +invoiced +invoices +invoicing +invokable +invoke +invoked +invoker +invokers +invokes +invoking +involuntarily +involuntary +involute +involution +involutions +involve +involved +involvement +involvements +involves +involving +invulnerability +invulnerable +inward +inwardly +inwardness +inwards +iodide +iodine +ion +ionian +ionic +ionisation +ionise +ionised +ionising +ionosphere +ionospheric +ions +iota +iotas +iran +iranian +iranians +iraq +iraqi +iraqis +irascibility +irascible +irascibly +irate +ire +ireland +iridescence +iridescent +iridium +iris +irises +irish +irishman +irishmen +irk +irked +irking +irks +irksome +irksomeness +iron +ironage +ironed +ironic +ironical +ironically +ironies +ironing +ironlady +ironmonger +ironmongers +ironmongery +irons +ironstone +ironwork +ironworks +irony +irradiate +irradiated +irradiating +irradiation +irrational +irrationalities +irrationality +irrationally +irreconcilable +irrecoverable +irrecoverably +irredeemable +irredeemably +irreducibility +irreducible +irreducibly +irrefutable +irregular +irregularities +irregularity +irregularly +irregulars +irrelevance +irrelevances +irrelevancy +irrelevant +irrelevantly +irreligious +irremediable +irremovable +irreparable +irreparably +irreplaceable +irrepressible +irrepressibly +irreproachable +irreproachably +irresistible +irresistibly +irresolute +irresolutely +irresolution +irresolvable +irrespective +irrespectively +irresponsibility +irresponsible +irresponsibly +irretrievable +irretrievably +irreverence +irreverent +irreverently +irreversibility +irreversible +irreversibly +irrevocable +irrevocably +irrigate +irrigated +irrigating +irrigation +irritability +irritable +irritably +irritant +irritants +irritate +irritated +irritatedly +irritates +irritating +irritatingly +irritation +irritations +irrupted +irruption +is +isis +islam +islamic +island +islander +islanders +islands +isle +isles +islet +islets +isms +isnt +isobar +isobars +isogram +isolate +isolated +isolates +isolating +isolation +isolationism +isolationist +isolator +isolators +isomer +isomeric +isomers +isometric +isometrically +isometry +isomorph +isomorphic +isomorphism +isomorphisms +isoperimetrical +isosceles +isostatic +isothermal +isothermally +isotonic +isotope +isotopes +isotopic +isotropic +isotropically +isotropy +israel +israeli +israelis +issuable +issuance +issue +issued +issuer +issuers +issues +issuing +istanbul +isthmus +it +italian +italians +italic +italicisation +italicise +italicised +italics +italy +itch +itched +itches +itchier +itchiest +itching +itchy +item +itemise +itemised +itemises +itemising +items +iterate +iterated +iterates +iterating +iteration +iterations +iterative +iteratively +iterators +itinerant +itinerants +itineraries +itinerary +itll +its +itself +ive +ivies +ivories +ivory +ivy +jab +jabbed +jabber +jabbered +jabbering +jabbers +jabbing +jabs +jack +jackal +jackals +jackass +jackasses +jackboot +jackbooted +jackboots +jackdaw +jackdaws +jacked +jacket +jackets +jacking +jackinthebox +jackpot +jackpots +jacks +jacob +jacuzzi +jade +jaded +jadedly +jadedness +jades +jag +jagged +jaggedly +jaguar +jaguars +jahweh +jail +jailbird +jailed +jailer +jailers +jailing +jails +jakarta +jalopy +jam +jamaica +jamaican +jamb +jamboree +jambs +james +jammed +jamming +jams +jangle +jangled +jangling +jangly +janitor +janitors +january +janus +jap +japan +jape +japes +japonica +jar +jargon +jargons +jarl +jarred +jarring +jars +jasmine +jaundice +jaundiced +jaunt +jaunted +jauntier +jauntiest +jauntily +jaunting +jaunts +jaunty +java +javelin +javelins +jaw +jawbone +jawbones +jawed +jawing +jawline +jaws +jay +jays +jaywalk +jaywalker +jaywalking +jazz +jazzed +jazzier +jazziest +jazzy +jealous +jealousies +jealously +jealousy +jeans +jeep +jeeps +jeer +jeered +jeering +jeeringly +jeerings +jeers +jehad +jejune +jejunum +jell +jellied +jellies +jellify +jelly +jellyfish +jemmy +jennets +jeopardise +jeopardised +jeopardises +jeopardising +jeopardy +jerboas +jeremiah +jericho +jerk +jerked +jerkier +jerkiest +jerkily +jerkin +jerking +jerkings +jerkins +jerks +jerky +jersey +jerseys +jest +jested +jester +jesters +jesting +jestingly +jests +jesuit +jesus +jet +jetlagged +jetplane +jetpropelled +jets +jetsam +jetsetting +jetted +jetties +jetting +jettison +jettisoned +jettisoning +jetty +jew +jewel +jewelled +jeweller +jewellers +jewellery +jewelry +jewels +jewess +jewish +jews +jewsharp +jezebel +jiffy +jiggle +jiggling +jigs +jigsaw +jigsaws +jihad +jilt +jilted +jilting +jilts +jimmy +jingle +jingled +jingles +jingling +jingo +jingoism +jingoistic +jinked +jinks +jinx +jinxed +jinxes +jitter +jitters +jittery +jiujitsu +jive +jived +jives +job +jobbing +jobless +joblessness +jobs +jock +jockey +jockeying +jockeys +jocular +jocularity +jocularly +joey +jog +jogged +jogger +joggers +jogging +jogs +john +join +joined +joiner +joiners +joinery +joining +joins +joint +jointed +jointing +jointly +joints +jointures +joist +joists +joke +joked +joker +jokers +jokes +jokey +jokier +jokily +joking +jokingly +jollier +jolliest +jollify +jollily +jollity +jolly +jolt +jolted +jolting +jolts +jonah +jonathan +joseph +joshua +jostle +jostled +jostles +jostling +jot +jots +jotted +jotter +jotting +jottings +joule +joules +journal +journalese +journalism +journalist +journalistic +journalists +journalled +journalling +journals +journey +journeyed +journeyer +journeying +journeyman +journeys +joust +jouster +jousting +jousts +jovial +joviality +jovially +jovian +jowl +jowls +joy +joyed +joyful +joyfully +joyfulness +joyless +joylessness +joyous +joyously +joyousness +joyride +joyrider +joyriders +joyriding +joys +joystick +joysticks +jubilant +jubilantly +jubilate +jubilation +jubilee +jubilees +judaic +judaism +judas +judder +juddered +juddering +judders +judge +judged +judgement +judgemental +judgements +judges +judging +judgment +judgmental +judgments +judicature +judicial +judicially +judiciaries +judiciary +judicious +judiciously +judo +jug +jugged +juggernaut +juggernauts +juggle +juggled +juggler +jugglers +juggles +juggling +jugs +jugular +juice +juices +juicier +juiciest +juiciness +juicy +jukebox +jukeboxes +julep +juleps +july +jumble +jumbled +jumbles +jumbo +jump +jumped +jumper +jumpers +jumpier +jumpiest +jumpiness +jumping +jumps +jumpstart +jumpstarting +jumpsuit +jumpy +junction +junctions +juncture +june +jungle +jungles +junior +juniority +juniors +juniper +junk +junker +junket +junkie +junkies +junkmail +junks +junkyard +juno +junta +juntas +jupiter +jurassic +juridic +juridical +juries +jurisdiction +jurisdictional +jurisdictions +jurisprudence +jurisprudential +jurist +juristic +jurists +juror +jurors +jury +juryman +jurymen +jussive +just +justice +justices +justifiability +justifiable +justifiably +justification +justifications +justificatory +justified +justifies +justify +justifying +justly +justness +jut +jute +juts +jutted +jutting +juvenile +juveniles +juxtapose +juxtaposed +juxtaposes +juxtaposing +juxtaposition +juxtapositions +kaftan +kaftans +kaiser +kalahari +kale +kaleidoscope +kaleidoscopic +kalif +kamikaze +kampala +kampong +kangaroo +kangaroos +kaolin +karakul +karaoke +karate +karma +karst +katydid +kayak +kayaks +kebab +kebabs +kedgeree +keel +keeled +keelhaul +keeling +keels +keen +keener +keenest +keening +keenly +keenness +keep +keeper +keepers +keeping +keeps +keepsake +keepsakes +keg +kegs +kelp +kelpers +kelt +kelts +kelvin +ken +kennedy +kennel +kennelled +kennels +kent +kentucky +kenya +kenyan +kept +keratin +kerb +kerbs +kerbside +kerchief +kerned +kernel +kernels +kerning +kerosene +kestrel +kestrels +ketch +ketchup +kettle +kettleful +kettles +key +keyboard +keyboardist +keyboards +keyed +keyhole +keyholes +keying +keynote +keynotes +keypad +keypads +keyring +keys +keystone +keystones +keystroke +keystrokes +keyword +keywords +khaki +khalif +khan +khans +khoikhoi +khoisan +kibbutz +kick +kickback +kicked +kicker +kicking +kicks +kickstart +kickstarted +kickstarting +kickstarts +kid +kidded +kiddie +kidding +kidnap +kidnapped +kidnapper +kidnappers +kidnapping +kidnappings +kidnaps +kidney +kidneys +kidneyshaped +kids +kiev +kill +killed +killer +killers +killing +killings +killjoy +killjoys +kills +kiln +kilns +kilo +kilobits +kilobyte +kilobytes +kilohertz +kilojoules +kilometre +kilometres +kiloton +kilotons +kilovolt +kilowatt +kilowatts +kilt +kilted +kilter +kilts +kimono +kin +kina +kinase +kind +kinder +kindergarten +kindergartens +kindest +kindhearted +kindheartedness +kindle +kindled +kindles +kindlier +kindliest +kindliness +kindling +kindly +kindness +kindnesses +kindred +kinds +kinematic +kinematics +kinetic +kinetically +kinetics +kinfolk +king +kingdom +kingdoms +kingfisher +kingfishers +kingly +kingpin +kings +kingship +kingsize +kingsized +kink +kinked +kinks +kinky +kinsfolk +kinshasa +kinship +kinsman +kinsmen +kinswoman +kiosk +kiosks +kipper +kippers +kirk +kismet +kiss +kissed +kisser +kisses +kissing +kit +kitbag +kitbags +kitchen +kitchenette +kitchens +kitchenware +kite +kites +kith +kits +kitsch +kitted +kitten +kittenish +kittens +kitting +kittiwakes +kitty +kiwi +kiwis +klaxon +klaxons +kleptomania +kleptomaniac +kleptomaniacs +klick +kloof +knack +knacker +knackers +knacks +knapsack +knapsacks +knave +knavery +knaves +knavish +knead +kneaded +kneading +kneads +knee +kneecap +kneecaps +kneed +kneedeep +kneel +kneeled +kneeler +kneeling +kneels +knees +knell +knelt +knesset +knew +knickers +knife +knifed +knifepoint +knifes +knifing +knight +knighted +knighthood +knighthoods +knightly +knights +knit +knits +knitted +knitter +knitters +knitting +knitwear +knives +knob +knobbly +knobs +knock +knocked +knocker +knockers +knocking +knockings +knockout +knocks +knoll +knolls +knot +knots +knotted +knottier +knottiest +knotting +knotty +know +knowable +knowhow +knowing +knowingly +knowledge +knowledgeable +knowledgeably +known +knows +knuckle +knuckled +knuckleduster +knuckledusters +knuckles +knuckling +koala +koalas +kongo +kookaburra +koran +korea +korean +koreans +kosher +kraal +kraals +kraft +kremlin +kriegspiel +krill +krypton +kudu +kudus +kungfu +kuwait +kwacha +kwachas +laager +lab +label +labelled +labelling +labellings +labels +labia +labial +labials +labile +labium +laboratories +laboratory +laborious +laboriously +laboriousness +labour +laboured +labourer +labourers +labouring +labourintensive +labours +laboursaving +labs +laburnum +labyrinth +labyrinthine +labyrinths +lace +laced +lacerate +lacerated +lacerating +laceration +lacerations +laces +lacework +laches +lachrymal +lachrymose +lacier +lacing +lacings +lack +lackadaisical +lacked +lackey +lackeys +lacking +lacklustre +lacks +laconic +laconically +lacquer +lacquered +lacquers +lacrosse +lacs +lactate +lactation +lacteal +lactic +lactose +lacuna +lacunae +lacunas +lacy +lad +ladder +laddered +ladders +laddie +laddies +lade +laden +ladies +lading +ladle +ladled +ladles +ladling +lads +lady +ladybird +ladybirds +ladybug +ladylike +ladyship +ladyships +lag +lager +lagers +laggard +laggards +lagged +lagging +lagoon +lagoons +lagos +lags +lagune +laid +lain +lair +laird +lairds +lairs +laissezfaire +laity +lake +lakes +lakeside +lam +lama +lamas +lamb +lambasted +lambasting +lambda +lambent +lambing +lambs +lambskin +lambswool +lame +lamed +lamely +lameness +lament +lamentable +lamentably +lamentation +lamentations +lamented +lamenter +lamenting +laments +lamest +lamina +laminar +laminate +laminated +laminates +lamination +lamp +lamplight +lamplighter +lamplit +lampoon +lampooned +lampoonery +lampooning +lampoons +lamppost +lampposts +lamprey +lampreys +lamps +lampshade +lampshades +lance +lanced +lancelot +lancer +lancers +lances +lancet +lancets +lancing +land +landed +lander +landfall +landfill +landform +landforms +landholders +landholding +landholdings +landing +landings +landladies +landlady +landless +landlines +landlocked +landlord +landlords +landman +landmark +landmarks +landmass +landmine +landowner +landowners +landowning +lands +landscape +landscaped +landscapes +landscaping +landside +landslide +landslides +landslip +landslips +landward +lane +lanes +language +languages +languid +languidly +languish +languished +languishes +languishing +languor +languorous +languorously +lank +lankier +lankiest +lanky +lanolin +lantern +lanterns +lanyard +laos +lap +lapdog +lapdogs +lapel +lapels +lapful +lapidary +lapland +lapp +lapped +lapping +laps +lapse +lapsed +lapses +lapsing +laptop +laptops +lapwing +lapwings +larceny +larch +larches +lard +larder +larders +lards +large +largely +largeness +larger +largest +largish +largo +lark +larking +larks +larva +larvae +larval +laryngeal +laryngitis +larynx +larynxes +las +lasagne +lascivious +lasciviously +lasciviousness +lase +laser +lasers +lash +lashed +lashers +lashes +lashing +lashings +lasing +lass +lasses +lassie +lassies +lassitude +lasso +lassoed +lassoing +last +lasted +lasting +lastly +lasts +latch +latched +latches +latching +late +latecomer +latecomers +lately +latencies +latency +lateness +latent +later +lateral +lateralisation +laterally +laterals +latest +latex +lath +lathe +lather +lathered +lathers +lathes +laths +latices +latin +latino +latitude +latitudes +latitudinal +latrine +latrines +latter +lattice +latticed +lattices +latvia +latvian +laud +laudable +laudatory +lauded +lauders +lauding +lauds +laugh +laughable +laughably +laughed +laugher +laughing +laughingly +laughs +laughter +launch +launched +launcher +launchers +launches +launching +launder +laundered +launderette +launderettes +laundering +laundress +laundrette +laundrettes +laundries +laundry +laureate +laurel +laurels +lava +lavas +lavatorial +lavatories +lavatory +lavender +lavish +lavished +lavishes +lavishing +lavishly +lavishness +law +lawabiding +lawbreaker +lawbreakers +lawbreaking +lawful +lawfully +lawfulness +lawless +lawlessness +lawmaker +lawmakers +lawman +lawmen +lawn +lawnmower +lawnmowers +lawns +laws +lawsuit +lawsuits +lawyer +lawyers +lax +laxative +laxatives +laxer +laxity +laxness +lay +layabout +layabouts +layby +laybys +layer +layered +layering +layers +laying +layman +laymen +layoff +layoffs +layout +layouts +layperson +lays +lazaret +lazarus +laze +lazed +lazier +laziest +lazily +laziness +lazing +lazuli +lazy +lazybones +lea +leach +leached +leaches +leaching +lead +leaded +leaden +leader +leaderless +leaders +leadership +leaderships +leadfree +leading +leads +leaf +leafed +leafier +leafiest +leafiness +leafing +leafless +leaflet +leaflets +leafy +league +leagues +leak +leakage +leakages +leaked +leakier +leakiest +leakiness +leaking +leaks +leaky +lean +leaned +leaner +leanest +leaning +leanings +leanness +leans +leant +leap +leaped +leaper +leapfrog +leapfrogging +leaping +leaps +leapt +leapyear +learn +learnable +learned +learnedly +learner +learners +learning +learns +learnt +lease +leased +leasehold +leaseholder +leaseholders +leases +leash +leashed +leashes +leashing +leasing +least +leat +leather +leathers +leathery +leave +leaved +leaven +leavened +leavening +leaver +leavers +leaves +leaving +leavings +lebanon +lebensraum +lecher +lecherous +lecherousness +lechery +lectern +lector +lectors +lecture +lectured +lecturer +lecturers +lectures +lectureship +lectureships +lecturing +led +ledge +ledger +ledgers +ledges +lee +leech +leeches +leeching +leeds +leek +leeks +leer +leered +leering +leeringly +leers +lees +leeward +leeway +left +lefthanded +lefthandedly +lefthandedness +lefthander +lefthanders +lefties +leftish +leftist +leftists +leftmost +leftover +leftovers +lefts +leftward +leftwards +lefty +leg +legacies +legacy +legal +legalese +legalisation +legalise +legalised +legalising +legalism +legalistic +legalities +legality +legally +legate +legatee +legatees +legates +legation +legato +legator +legend +legendary +legends +legerdemain +legged +legging +leggings +leggy +leghorn +leghorns +legibility +legible +legibly +legion +legionaries +legionary +legionnaires +legions +legislate +legislated +legislating +legislation +legislative +legislatively +legislator +legislators +legislature +legislatures +legitimacy +legitimate +legitimated +legitimately +legitimating +legitimation +legitimisation +legitimise +legitimised +legitimising +legless +legman +legroom +legs +legume +legumes +leguminous +legwork +leipzig +leisure +leisured +leisurely +leisurewear +leitmotif +leitmotifs +leitmotiv +leitmotivs +lemma +lemmas +lemming +lemmings +lemon +lemonade +lemons +lemur +lemurs +lend +lender +lenders +lending +lends +length +lengthen +lengthened +lengthening +lengthens +lengthier +lengthiest +lengthily +lengths +lengthways +lengthwise +lengthy +leniency +lenient +leniently +lenin +lens +lenses +lensing +lent +lentil +lentils +lento +leonardo +leone +leopard +leopards +leopardskin +leotard +leotards +leper +lepers +leprechaun +leprechauns +leprose +leprosy +leprous +lepton +leptons +lesbian +lesbianism +lesbians +lesion +lesions +lesotho +less +lessee +lessees +lessen +lessened +lessening +lessens +lesser +lesson +lessons +lessor +lessors +lest +let +lethal +lethality +lethally +lethargic +lethargically +lethargy +lets +letter +letterbox +letterboxes +lettered +letterhead +letterheads +lettering +letterpress +letters +letterwriter +letting +lettings +lettish +lettuce +lettuces +leucine +leukaemia +leukemia +level +levelheaded +levelled +leveller +levelling +levelly +levels +lever +leverage +leveraged +levered +levering +levers +levi +leviathan +levied +levies +levitate +levitated +levitates +levitating +levitation +levity +levy +levying +lewd +lewdness +lexeme +lexemes +lexical +lexically +lexicographer +lexicographers +lexicographic +lexicographical +lexicographically +lexicography +lexicon +lexicons +leyden +liabilities +liability +liable +liaise +liaised +liaises +liaising +liaison +liaisons +liar +liars +libation +libations +libel +libeled +libeler +libelled +libeller +libelling +libellous +libels +liberal +liberalisation +liberalise +liberalised +liberalising +liberalism +liberality +liberally +liberals +liberate +liberated +liberates +liberating +liberation +liberationists +liberator +liberators +liberia +libero +libertarian +libertarianism +libertarians +liberties +libertine +libertines +liberty +libidinous +libido +librarian +librarians +librarianship +libraries +library +librate +librated +librates +libretti +librettist +librettists +libretto +libya +libyan +libyans +lice +licence +licences +license +licensed +licensee +licensees +licenses +licensing +licentiate +licentious +licentiousness +lichee +lichen +lichened +lichens +lichi +lichis +lick +licked +lickerish +licking +licks +licorice +lid +lidded +lidless +lido +lids +lie +lied +lieder +lien +liens +lies +lieu +lieutenancy +lieutenant +lieutenants +life +lifeanddeath +lifebelt +lifeblood +lifeboat +lifeboatmen +lifeboats +lifeforms +lifegiving +lifeguard +lifeguards +lifeless +lifelessly +lifelessness +lifelike +lifeline +lifelines +lifelong +liferaft +liferafts +lifesaving +lifesize +lifesized +lifespan +lifespans +lifestyle +lifestyles +lifetaking +lifethreatening +lifetime +lifetimes +lifework +lift +lifted +lifter +lifters +lifting +liftman +liftmen +liftoff +lifts +ligament +ligaments +ligand +ligands +ligature +ligatured +ligatures +ligaturing +light +lighted +lighten +lightened +lightening +lightens +lighter +lighters +lightest +lightheaded +lightheadedness +lighthearted +lightheartedly +lightheartedness +lighthouse +lighthouses +lighting +lightless +lightly +lightness +lightning +lights +lightship +lightweight +lightweights +lignite +likable +like +likeability +likeable +liked +likelier +likeliest +likelihood +likely +likeminded +liken +likened +likeness +likenesses +likening +likens +likes +likewise +liking +likings +lilac +lilacs +lilies +lilliput +lilliputian +lilongwe +lilt +lilting +lily +lilylivered +lilywhite +lima +limb +limber +limbering +limbers +limbless +limbo +limbs +lime +limekiln +limelight +limerick +limericks +limes +limestone +limestones +limeys +liminal +liming +limit +limitation +limitations +limited +limiter +limiters +limiting +limitless +limits +limo +limousin +limousine +limousines +limp +limped +limpet +limpets +limpid +limping +limply +limpopo +limps +linage +linchpin +lincoln +linden +line +lineage +lineages +lineally +lineaments +linear +linearised +linearity +linearly +lined +linefeed +lineman +linemen +linen +linens +lineout +lineouts +liner +liners +lines +linesman +linesmen +lineup +lineups +linger +lingered +lingerer +lingerie +lingering +lingeringly +lingers +lingua +lingual +linguist +linguistic +linguistically +linguistics +linguists +liniment +liniments +lining +linings +link +linkable +linkage +linkages +linked +linker +linkers +linking +links +linkup +linkups +linnet +linnets +lino +linoleum +linseed +lint +lintel +lintels +liny +lion +lioness +lionesses +lionise +lionised +lions +lip +lipase +lipid +lipids +lipped +lipread +lipreading +lips +lipservice +lipstick +lipsticks +liquefaction +liquefied +liquefy +liqueur +liqueurs +liquid +liquidate +liquidated +liquidating +liquidation +liquidations +liquidator +liquidators +liquidise +liquidised +liquidiser +liquidising +liquidity +liquids +liquify +liquor +liquorice +liquorish +liquors +lira +lire +lisbon +lisp +lisped +lisping +lisps +lissom +lissome +lissomeness +lissomness +list +listed +listen +listened +listener +listeners +listening +listens +listeria +listing +listings +listless +listlessly +listlessness +lists +lit +litanies +litany +litchi +literacy +literal +literalism +literalistic +literally +literals +literary +literate +literati +literature +literatures +lithe +lithely +lithium +lithograph +lithographic +lithographs +lithography +lithological +lithologies +lithology +lithosphere +litigant +litigants +litigate +litigating +litigation +litigious +litigiousness +litmus +litotes +litre +litres +litter +littered +littering +litters +little +littleness +littler +littlest +littoral +liturgical +liturgies +liturgy +livable +live +liveable +lived +livelier +liveliest +livelihood +livelihoods +liveliness +lively +liven +livened +livening +livens +liver +liveried +liveries +liverish +livers +liverworts +livery +lives +livestock +livewire +livid +lividly +living +livings +lizard +lizards +llama +llamas +lls +load +loadable +loaded +loader +loaders +loading +loadings +loads +loaf +loafed +loafer +loafers +loafing +loafs +loam +loams +loamy +loan +loanable +loaned +loaner +loaning +loans +loanword +loanwords +loath +loathe +loathed +loathes +loathing +loathsome +loathsomely +loathsomeness +loaves +lob +lobbed +lobbied +lobbies +lobbing +lobby +lobbying +lobbyist +lobbyists +lobe +lobed +lobelia +lobes +lobotomies +lobotomised +lobotomising +lobotomist +lobotomy +lobs +lobster +lobsters +lobular +local +locale +locales +localisation +localisations +localise +localised +localises +localising +localities +locality +locally +locals +locatable +locate +located +locates +locating +location +locational +locations +locative +locator +locators +loch +lochness +lochs +loci +lock +lockable +lockage +locked +locker +lockers +locket +locking +lockjaw +lockout +lockouts +locks +locksmith +loco +locomote +locomotion +locomotive +locomotives +locus +locust +locusts +lode +lodestar +lodestone +lodge +lodged +lodgement +lodger +lodgers +lodges +lodging +lodgings +loess +loft +lofted +loftier +loftiest +loftily +loftiness +lofts +lofty +log +loganberries +loganberry +logarithm +logarithmic +logarithmically +logarithms +logbook +logbooks +logged +logger +loggerheads +loggers +logging +logic +logical +logicality +logically +logician +logicians +logics +logistic +logistical +logistically +logistics +logjam +logo +logoff +logos +logs +loin +loincloth +loins +loire +loiter +loitered +loiterer +loiterers +loitering +loiters +loll +lolled +lollies +lolling +lollipop +lollipops +lolly +london +londoner +lone +lonelier +loneliest +loneliness +lonely +loner +loners +lonesome +lonesomeness +long +longawaited +longed +longer +longest +longevity +longfaced +longhand +longing +longingly +longings +longish +longitude +longitudes +longitudinal +longitudinally +longlasting +longlived +longlost +longs +longstanding +longsuffering +longwinded +longwindedness +loo +look +lookalike +lookalikes +looked +looker +lookers +looking +lookingglass +lookingglasses +lookout +lookouts +looks +loom +loomed +looming +looms +loon +looney +loony +loop +looped +loophole +loopholes +looping +loops +loopy +loose +loosed +loosely +loosen +loosened +looseness +loosening +loosens +looser +looses +loosest +loosing +loot +looted +looter +looters +looting +loots +lop +lope +loped +lopes +loping +lopped +lopper +loppers +lopping +lopsided +lopsidedly +loquacious +loquacity +lord +lording +lordly +lords +lordship +lordships +lore +lorelei +lorries +lorry +lorryload +lorryloads +losable +lose +loser +losers +loses +losing +losings +loss +losses +lost +lot +loth +lotion +lotions +lots +lotteries +lottery +lotto +lotus +louche +loud +louder +loudest +loudhailer +loudhailers +loudly +loudmouthed +loudness +loudspeaker +loudspeakers +louis +lounge +lounged +lounger +loungers +lounges +lounging +louse +lousiest +lousily +lousy +lout +loutish +loutishness +louts +louver +louvers +louvre +louvred +louvres +lovable +love +loveable +lovebirds +loved +loveless +lovelier +lovelies +loveliest +loveliness +lovelorn +lovely +lovemaking +lover +lovers +loves +lovesick +lovestruck +loving +lovingly +low +lower +lowercase +lowered +lowering +lowers +lowest +lowing +lowish +lowkey +lowland +lowlanders +lowlands +lowlier +lowliest +lowly +lowlying +lowness +lowpitched +lows +lowspirited +loyal +loyalist +loyalists +loyally +loyalties +loyalty +lozenge +lozenges +luanda +lubber +lubbers +lubricant +lubricants +lubricate +lubricated +lubricates +lubricating +lubrication +lubricious +lucid +lucidity +lucidly +lucifer +luck +luckier +luckiest +luckily +luckless +lucky +lucrative +lucre +ludicrous +ludicrously +ludicrousness +ludo +lug +luggage +lugged +lugging +lugs +lugubrious +lugubriously +luke +lukewarm +lull +lullabies +lullaby +lulled +lulling +lulls +lulu +lumbago +lumbar +lumber +lumbered +lumbering +lumberjack +lumberjacks +lumbers +lumen +luminal +luminance +luminaries +luminary +luminescence +luminescent +luminosities +luminosity +luminous +luminously +lump +lumped +lumpen +lumpier +lumpiest +lumpiness +lumping +lumpish +lumps +lumpy +luna +lunacies +lunacy +lunar +lunate +lunatic +lunatics +lunch +lunched +luncheon +luncheons +lunchers +lunches +lunching +lunchpack +lunchtime +lunchtimes +lune +lung +lunge +lunged +lunges +lungfish +lungful +lungfuls +lunging +lungs +lupin +lupines +lupins +lur +lurch +lurched +lurchers +lurches +lurching +lure +lured +lures +lurex +lurid +luridly +luring +lurk +lurked +lurker +lurkers +lurking +lurks +lusaka +luscious +lusciously +lush +lusher +lushest +lushness +lust +lusted +lustful +lustfully +lustier +lustiest +lustily +lusting +lustre +lustreless +lustrous +lusts +lusty +lute +lutes +luther +lux +luxor +luxuriance +luxuriant +luxuriantly +luxuriate +luxuriating +luxuries +luxurious +luxuriously +luxury +lychee +lychees +lye +lying +lymph +lymphatic +lymphocyte +lymphocytes +lymphocytic +lymphoid +lymphoma +lymphomas +lynch +lynched +lynches +lynching +lynchpin +lynx +lynxes +lyon +lyons +lyra +lyre +lyres +lyric +lyrical +lyrically +lyricism +lyricist +lyricists +lyrics +lyrist +lysine +mac +macabre +macaque +macaques +macaroni +macaroon +macaroons +macaw +macaws +mace +maces +machete +machetes +machination +machinations +machine +machined +machinegun +machineguns +machinery +machines +machinist +machinists +machismo +macho +macintosh +macintoshes +mackerel +mackintosh +mackintoshes +macro +macrobiotic +macrocosm +macroeconomic +macroeconomics +macromolecular +macromolecules +macron +macrophage +macrophages +macroscopic +macroscopically +mad +madam +madame +madams +madcap +madden +maddened +maddening +maddeningly +maddens +madder +maddest +made +madeira +mademoiselle +madhouse +madly +madman +madmen +madness +madras +madrid +madrigal +madrigals +madwoman +maelstrom +maestro +mafia +mafiosi +mag +magazine +magazines +magenta +maggot +maggots +magi +magic +magical +magically +magician +magicians +magics +magisterial +magisterially +magistrate +magistrates +magma +magmas +magmatic +magnanimity +magnanimosity +magnanimous +magnanimously +magnate +magnates +magnesia +magnesium +magnet +magnetic +magnetically +magnetisation +magnetise +magnetised +magnetism +magnetite +magneto +magnetodynamics +magnetohydrodynamical +magnetohydrodynamics +magnetometer +magnetometers +magnetosphere +magnetron +magnets +magnification +magnifications +magnificence +magnificent +magnificently +magnified +magnifier +magnifies +magnify +magnifying +magniloquent +magnitude +magnitudes +magnolia +magnolias +magnum +magnums +magpie +magpies +mags +mahatma +mahogany +maid +maiden +maidenly +maidens +maids +maidservant +maidservants +mail +mailable +mailbox +mailed +mailer +mailing +mailings +mailman +mailmen +mailorder +mails +mailshot +mailshots +maim +maimed +maiming +maimings +maims +main +mainbrace +maine +mainframe +mainframes +mainland +mainline +mainly +mains +mainsail +mainspring +mainstay +mainstays +mainstream +maintain +maintainability +maintainable +maintained +maintainer +maintainers +maintaining +maintains +maintenance +maisonette +maisonettes +maize +maizes +majestic +majestically +majesties +majesty +majolica +major +majorette +majorettes +majorities +majority +majors +make +makeover +maker +makers +makes +makeshift +makeup +makeweight +making +makings +malachite +maladaptive +maladies +maladjusted +maladjustment +maladministration +maladroit +malady +malaise +malaria +malarial +malathion +malawi +malay +malayan +malays +malaysia +malcontent +malcontents +maldives +male +malefaction +malefactions +malefactor +malefactors +maleness +males +malevolence +malevolent +malevolently +malformation +malformations +malformed +malfunction +malfunctioned +malfunctioning +malfunctions +malice +malices +malicious +maliciously +maliciousness +malign +malignancies +malignancy +malignant +malignantly +maligned +maligners +maligning +malignity +maligns +malingerers +malingering +mall +mallard +mallards +malleability +malleable +mallet +mallets +mallow +malls +malnourished +malnourishment +malnutrition +malodorous +malpractice +malpractices +malt +malta +malted +maltese +malting +maltreat +maltreated +maltreatment +malts +malty +malva +mama +mamas +mamba +mambas +mammal +mammalia +mammalian +mammals +mammary +mammoth +mammoths +mammy +man +manacle +manacled +manacles +manage +manageability +manageable +managed +management +managements +manager +manageress +manageresses +managerial +managerially +managers +managership +manages +managing +manatee +manciple +mandarin +mandarins +mandate +mandated +mandates +mandating +mandatory +mandela +mandible +mandibles +mandibular +mandolin +mandolins +mandrake +mandril +mandrill +mane +maned +manes +maneuver +manfully +manganese +mange +manger +mangers +mangle +mangled +mangler +mangles +mangling +mango +mangrove +mangroves +manhandle +manhandled +manhandling +manhole +manholes +manhood +manhunt +manhunts +mania +maniac +maniacal +maniacally +maniacs +manias +manic +manically +manicdepressive +manicure +manicured +manifest +manifestation +manifestations +manifested +manifesting +manifestly +manifesto +manifests +manifold +manifolds +manikin +manila +manipulable +manipulate +manipulated +manipulates +manipulating +manipulation +manipulations +manipulative +manipulator +manipulators +mankind +manliest +manliness +manly +manmade +manna +manned +mannequin +mannequins +manner +mannered +mannerism +mannerisms +mannerist +mannerliness +mannerly +manners +manning +manoeuvrability +manoeuvrable +manoeuvre +manoeuvred +manoeuvres +manoeuvring +manoeuvrings +manometer +manor +manorial +manors +manpower +manse +manservant +mansion +mansions +mansized +manslaughter +mantel +mantelpiece +mantelpieces +mantelshelf +mantids +mantis +mantissa +mantissas +mantle +mantled +mantles +mantling +mantra +mantrap +mantraps +mantras +manual +manually +manuals +manufacture +manufactured +manufacturer +manufacturers +manufactures +manufacturing +manure +manured +manures +manuring +manuscript +manuscripts +many +maoism +maoist +maoists +maori +map +maple +maples +mappable +mapped +mapper +mappers +mapping +mappings +maps +maputo +maquettes +mar +mara +marathon +marathons +marauders +marauding +marble +marbled +marbles +march +marched +marcher +marchers +marches +marching +marchioness +mare +mares +margarine +margarines +margate +margin +marginal +marginalia +marginalisation +marginalise +marginalised +marginalises +marginalising +marginality +marginally +marginals +margins +maria +marigold +marigolds +marijuana +marina +marinade +marinas +marinate +marinated +marine +mariner +mariners +marines +marionette +marionettes +marital +maritime +mark +marked +markedly +marker +markers +market +marketability +marketable +marketed +marketeer +marketeers +marketer +marketing +marketplace +markets +marking +markings +marks +marksman +marksmanship +marksmen +markup +markups +marl +marls +marmalade +marmoset +marmosets +marmot +marmots +maroon +marooned +marooning +maroons +marque +marquee +marquees +marques +marquess +marquetry +marquis +marred +marriage +marriageable +marriages +married +marries +marring +marrow +marrows +marry +marrying +mars +marsala +marsh +marshal +marshalled +marshaller +marshalling +marshals +marshes +marshgas +marshier +marshiest +marshiness +marshland +marshmallow +marshmallows +marshy +marsupial +marsupials +mart +marten +martens +martial +martian +martians +martin +martinet +martingale +martingales +martini +martins +martyr +martyrdom +martyred +martyrs +martyry +marvel +marvelled +marvelling +marvellous +marvellously +marvels +marx +marxism +marxist +marxists +mary +marzipan +mas +mascara +mascot +mascots +masculine +masculinity +maser +maseru +mash +mashed +masher +mashing +mask +masked +masking +masks +masochism +masochist +masochistic +masochistically +masochists +mason +masonic +masonry +masons +masque +masquerade +masqueraded +masquerades +masquerading +masques +mass +massacre +massacred +massacres +massacring +massage +massaged +massager +massages +massaging +massed +masses +masseur +masseurs +masseuse +masseuses +massif +massing +massive +massively +massless +massproduced +massproducing +mast +mastectomy +masted +master +masterclass +mastered +masterful +masterfully +mastering +masterly +mastermind +masterminded +masterminding +masterpiece +masterpieces +masters +mastership +masterwork +masterworks +mastery +masthead +masticating +mastication +mastiff +mastitis +mastodon +mastodons +mastoid +mastoids +masts +mat +matador +matadors +match +matchable +matchbox +matchboxes +matched +matcher +matches +matching +matchless +matchmaker +matchmaking +matchplay +matchstick +matchsticks +mate +mated +mater +material +materialisation +materialise +materialised +materialises +materialising +materialism +materialist +materialistic +materialistically +materialists +materiality +materially +materials +maternal +maternally +maternity +mates +math +mathematical +mathematically +mathematician +mathematicians +mathematics +maths +matinee +matinees +mating +matings +matins +matriarch +matriarchal +matriarchies +matriarchy +matrices +matriculate +matriculated +matriculating +matriculation +matrilineal +matrimonial +matrimonially +matrimony +matrix +matrixes +matron +matronly +matrons +mats +matt +matte +matted +matter +mattered +mattering +matteroffact +matters +matthew +matting +mattress +mattresses +maturation +maturational +mature +matured +maturely +maturer +matures +maturing +maturity +maudlin +maul +mauled +mauler +maulers +mauling +mauls +maumau +mausoleum +mausoleums +mauve +maverick +mavericks +maw +mawkish +mawkishness +maxi +maxim +maxima +maximal +maximality +maximally +maximisation +maximise +maximised +maximiser +maximises +maximising +maxims +maximum +may +maya +mayas +maybe +mayday +maydays +mayflies +mayflower +mayfly +mayhap +mayhem +mayonnaise +mayor +mayoral +mayoralty +mayoress +mayors +maypole +maze +mazes +mazier +maziest +mazurka +mazy +mbabane +me +mead +meadow +meadowland +meadows +meagre +meagrely +meagreness +meal +mealie +mealies +meals +mealtime +mealtimes +mealy +mean +meander +meandered +meandering +meanderings +meanders +meaner +meanest +meanie +meanies +meaning +meaningful +meaningfully +meaningfulness +meaningless +meaninglessly +meaninglessness +meanings +meanly +meanness +means +meant +meantime +meanwhile +meany +measles +measly +measurable +measurably +measure +measured +measureless +measurement +measurements +measures +measuring +meat +meataxe +meatball +meatballs +meatier +meatiest +meatless +meatpie +meats +meaty +mecca +mechanic +mechanical +mechanically +mechanicals +mechanics +mechanisable +mechanisation +mechanise +mechanised +mechanising +mechanism +mechanisms +mechanist +mechanistic +mechanistically +medal +medallion +medallions +medallist +medallists +medals +meddle +meddled +meddler +meddlers +meddles +meddlesome +meddling +media +mediaeval +medial +medially +median +medians +mediate +mediated +mediates +mediating +mediation +mediator +mediators +mediatory +medic +medical +medically +medicals +medicate +medicated +medication +medications +medicinal +medicine +medicines +medics +medieval +medievalist +medievalists +mediocre +mediocrity +meditate +meditated +meditates +meditating +meditation +meditations +meditative +meditatively +meditator +medium +mediums +mediumsized +medlar +medley +medleys +medulla +medusa +meek +meeker +meekest +meekly +meekness +meet +meeter +meeting +meetings +meets +mega +megabyte +megabytes +megahertz +megajoules +megalith +megalithic +megalomania +megalomaniac +megalomaniacs +megaparsec +megaphone +megastar +megaton +megatons +megavolt +megawatt +megawatts +meiosis +meiotic +melancholia +melancholic +melancholies +melancholy +melange +melanin +melanoma +melanomas +melatonin +meld +melee +mellifluous +mellifluously +mellifluousness +mellow +mellowed +mellower +mellowing +mellows +melodic +melodically +melodies +melodious +melodiously +melodrama +melodramas +melodramatic +melodramatically +melody +melon +melons +melt +meltdown +melted +melter +melting +melts +member +members +membership +memberships +membrane +membranes +memento +memo +memoir +memoirs +memorabilia +memorable +memorably +memoranda +memorandum +memorandums +memorial +memorials +memories +memorisation +memorise +memorised +memorises +memorising +memory +memphis +men +menace +menaced +menaces +menacing +menacingly +menagerie +menarche +mend +mendacious +mendacity +mended +mendel +mendelevium +mender +menders +mendicant +mending +mends +menfolk +menhir +menhirs +menial +meningitis +meniscus +menopausal +menopause +menorah +menstrual +menstruating +menstruation +menswear +mental +mentalistic +mentalities +mentality +mentally +menthol +mention +mentionable +mentioned +mentioning +mentions +mentor +mentors +menu +menus +meow +meows +mercantile +mercenaries +mercenary +merchandise +merchandising +merchant +merchantability +merchantable +merchantman +merchantmen +merchants +mercies +merciful +mercifully +merciless +mercilessly +mercurial +mercuric +mercury +mercy +mere +merely +merest +meretricious +merge +merged +merger +mergers +merges +merging +meridian +meridians +meridional +meringue +meringues +merino +merit +merited +meriting +meritocracy +meritocratic +meritocrats +meritorious +merits +mermaid +mermaids +merman +mermen +meromorphic +merrier +merriest +merrily +merriment +merry +merrygoround +merrygorounds +merrymaking +mescaline +mesh +meshed +meshes +meshing +mesmeric +mesmerised +mesmerising +mesolithic +meson +mesons +mesosphere +mesozoic +mess +message +messages +messaging +messed +messenger +messengers +messes +messiah +messier +messiest +messily +messiness +messing +messy +mestizo +met +metabolic +metabolically +metabolise +metabolised +metabolises +metabolism +metabolisms +metal +metalanguage +metalinguistic +metalled +metallic +metallised +metallurgical +metallurgist +metallurgy +metals +metalwork +metalworking +metamorphic +metamorphism +metamorphose +metamorphosed +metamorphoses +metamorphosis +metaphor +metaphoric +metaphorical +metaphorically +metaphors +metaphysical +metaphysically +metaphysics +metastability +metastable +metastases +metastasis +metastatic +metatarsal +meted +metempsychosis +meteor +meteoric +meteorite +meteorites +meteoritic +meteorological +meteorologist +meteorologists +meteorology +meteors +meter +metered +metering +meters +methadone +methane +methanol +methionine +method +methodical +methodically +methodological +methodologically +methodologies +methodology +methods +methyl +methylated +methylene +meticulous +meticulously +metier +metonymic +metonymy +metre +metres +metric +metrical +metrically +metrication +metrics +metro +metronome +metronomes +metronomic +metropolis +metropolises +metropolitan +mettle +mew +mewing +mews +mexican +mexicans +mexico +mezzanine +mezzosoprano +miami +miasma +mica +mice +micelles +michigan +micro +microanalyses +microbe +microbes +microbial +microbic +microbiological +microbiologist +microbiologists +microbiology +microchip +microchips +microcode +microcomputer +microcomputers +microcosm +microcosmic +microdensitometer +microdot +microelectronic +microelectronics +microfarad +microfiche +microfilm +microfilming +microgrammes +micrograms +micrograph +micrographs +microgravity +microhydrodynamics +microlight +micrometer +micrometers +micrometres +micron +microns +microorganism +microorganisms +microphone +microphones +microprocessor +microprocessors +microprogram +microscope +microscopes +microscopic +microscopically +microscopist +microscopy +microsecond +microseconds +microsurgery +microwave +microwaveable +microwaved +microwaves +micturition +mid +midafternoon +midair +midas +midday +middays +midden +middle +middleage +middleaged +middleclass +middleman +middlemen +middleoftheroad +middles +middlesized +middleweight +middling +midevening +midfield +midfielder +midfielders +midflight +midge +midges +midget +midgets +midi +midland +midlands +midlife +midline +midmorning +midmost +midnight +midnights +midribs +midriff +midship +midshipman +midships +midst +midstream +midsummer +midway +midweek +midwicket +midwife +midwifery +midwinter +midwives +mien +might +mightier +mightiest +mightily +mights +mighty +migraine +migraines +migrant +migrants +migrate +migrated +migrates +migrating +migration +migrations +migratory +mike +mikes +milady +milan +mild +milder +mildest +mildew +mildewed +mildews +mildewy +mildly +mildmannered +mildness +mile +mileage +mileages +milepost +mileposts +miler +miles +milestone +milestones +milieu +milieus +milieux +militancy +militant +militantly +militants +militarily +militarisation +militarised +militarism +militarist +militaristic +military +militate +militated +militates +militating +militia +militiaman +militiamen +militias +milk +milked +milker +milkers +milkier +milkiest +milking +milkmaid +milkmaids +milkman +milkmen +milks +milkshake +milkshakes +milky +milkyway +mill +milled +millenarian +millenarianism +millennia +millennial +millennium +miller +millers +millet +millibars +milligram +milligrams +millilitres +millimetre +millimetres +milliner +milliners +millinery +milling +million +millionaire +millionaires +millions +millionth +millionths +millipede +millipedes +millisecond +milliseconds +millpond +mills +millstone +millstones +milord +milt +mime +mimed +mimeographed +mimes +mimetic +mimic +mimicked +mimicker +mimicking +mimicry +mimics +miming +mimosa +minaret +minarets +mince +minced +mincemeat +mincer +mincers +minces +mincing +mind +mindboggling +mindbogglingly +minded +mindedness +minder +minders +mindful +minding +mindless +mindlessly +mindlessness +mindreader +minds +mindset +mine +mined +minedetector +minefield +minefields +miner +mineral +mineralisation +mineralised +mineralogical +mineralogy +minerals +miners +mines +mineshaft +minestrone +minesweeper +minesweepers +mineworkers +mingle +mingled +mingles +mingling +mini +miniature +miniatures +miniaturisation +miniaturise +miniaturised +miniaturises +miniaturising +miniaturist +minibar +minibus +minibuses +minicab +minicomputer +minicomputers +minify +minim +minima +minimal +minimalism +minimalist +minimalistic +minimalists +minimality +minimally +minimisation +minimise +minimised +minimiser +minimises +minimising +minimum +mining +minings +minion +minions +miniskirt +minister +ministered +ministerial +ministerially +ministering +ministers +ministration +ministrations +ministries +ministry +mink +minke +minks +minnow +minnows +minor +minorities +minority +minors +minster +minstrel +minstrels +mint +minted +mintier +mintiest +minting +mints +minty +minuet +minuets +minus +minuscule +minuses +minute +minuted +minutely +minuteness +minutes +minutest +minutiae +minx +minxes +miosis +miracle +miracles +miraculous +miraculously +miraculousness +mirage +mirages +mire +mired +mires +mirror +mirrored +mirroring +mirrors +mirth +mirthful +mirthless +mirthlessly +misadventure +misaligned +misalignment +misanalysed +misanthrope +misanthropes +misanthropic +misanthropists +misanthropy +misapplication +misapply +misapprehension +misapprehensions +misappropriated +misappropriation +misbegotten +misbehave +misbehaved +misbehaves +misbehaving +misbehaviour +miscalculate +miscalculated +miscalculation +miscalculations +miscarriage +miscarriages +miscarried +miscarry +miscarrying +miscast +miscasting +miscegenation +miscellanea +miscellaneous +miscellanies +miscellany +mischance +mischief +mischiefmakers +mischiefmaking +mischievous +mischievously +miscible +misclassified +miscomprehended +misconceived +misconception +misconceptions +misconduct +misconfiguration +misconstrued +miscopying +miscount +miscounted +miscounting +miscreant +miscreants +miscue +miscues +misdate +misdeal +misdealing +misdeed +misdeeds +misdemeanour +misdemeanours +misdiagnosis +misdirect +misdirected +misdirecting +misdirection +misdirections +misdoing +miser +miserable +miserably +miseries +miserliness +miserly +misers +misery +misfield +misfiled +misfire +misfired +misfires +misfit +misfits +misfortune +misfortunes +misgive +misgiving +misgivings +misgovernment +misguide +misguided +misguidedly +mishandle +mishandled +mishandles +mishandling +mishap +mishaps +mishear +misheard +mishearing +mishears +mishitting +misidentification +misinform +misinformation +misinformed +misinterpret +misinterpretation +misinterpretations +misinterpreted +misinterpreting +misinterprets +misjudge +misjudged +misjudgement +misjudgements +misjudging +misjudgment +mislabelled +mislaid +mislay +mislead +misleading +misleadingly +misleads +misled +mismanage +mismanaged +mismanagement +mismatch +mismatched +mismatches +mismatching +misname +misnamed +misnomer +misnomers +misogynist +misogynistic +misogynists +misogyny +misplace +misplaced +misplacement +misplaces +misplacing +mispositioned +misprint +misprinted +misprinting +misprints +mispronounced +mispronouncing +mispronunciation +mispronunciations +misquotation +misquote +misquoted +misquotes +misquoting +misread +misreading +misremember +misremembered +misremembering +misrepresent +misrepresentation +misrepresentations +misrepresented +misrepresenting +misrepresents +misrule +miss +missal +missals +missed +misses +misshapen +missile +missiles +missing +mission +missionaries +missionary +missions +missive +missives +missouri +misspell +misspelled +misspelling +misspellings +misspells +misspelt +misspend +misspent +misstatement +missteps +missus +missuses +missy +mist +mistake +mistaken +mistakenly +mistakes +mistaking +misted +mister +misters +mistier +mistiest +mistily +mistime +mistimed +mistiness +misting +mistletoe +mistook +mistranslated +mistranslates +mistranslating +mistranslation +mistranslations +mistreat +mistreated +mistreating +mistreatment +mistress +mistresses +mistrust +mistrusted +mistrustful +mistrustfully +mistrusting +mistrusts +mists +misty +mistype +mistyped +mistypes +mistyping +mistypings +misunderstand +misunderstanding +misunderstandings +misunderstands +misunderstood +misuse +misused +misuser +misuses +misusing +mite +mites +mitigate +mitigated +mitigates +mitigating +mitigation +mitigatory +mitochondria +mitochondrial +mitosis +mitre +mitred +mitres +mitt +mitten +mittens +mitts +mix +mixable +mixed +mixer +mixers +mixes +mixing +mixture +mixtures +mixup +mixups +mnemonic +mnemonically +mnemonics +moan +moaned +moaner +moaners +moaning +moans +moas +moat +moated +moats +mob +mobbed +mobbing +mobbish +mobile +mobiles +mobilisable +mobilisation +mobilise +mobilised +mobilises +mobilising +mobilities +mobility +mobs +mobster +mobsters +moccasin +moccasins +mock +mocked +mocker +mockeries +mockers +mockery +mocking +mockingbird +mockingly +mocks +mockup +mockups +mod +modal +modalities +modality +mode +model +modelled +modeller +modellers +modelling +models +modem +modems +moderate +moderated +moderately +moderates +moderating +moderation +moderations +moderator +moderators +modern +moderner +modernisation +modernisations +modernise +modernised +modernising +modernism +modernist +modernistic +modernists +modernity +modes +modest +modestly +modesty +modicum +modifiable +modification +modifications +modified +modifier +modifiers +modifies +modify +modifying +modish +modishly +modular +modularisation +modularise +modularised +modularising +modularity +modulate +modulated +modulates +modulating +modulation +modulations +modulator +module +modules +moduli +modulus +mogul +moguls +mohair +mohairs +moiety +moist +moisten +moistened +moistening +moistens +moister +moistness +moisture +moisturise +moisturiser +moisturisers +moisturising +molar +molarities +molarity +molars +molasses +mold +molds +moldy +mole +molecular +molecule +molecules +molehill +molehills +moles +moleskin +molest +molestation +molestations +molested +molester +molesters +molesting +molests +mollified +mollifies +mollify +mollusc +molluscan +molluscs +molten +molts +molybdenum +mom +moment +momentarily +momentary +momentous +moments +momentum +moms +monaco +monadic +monalisa +monarch +monarchic +monarchical +monarchies +monarchist +monarchists +monarchs +monarchy +monasteries +monastery +monastic +monasticism +monaural +monday +mondays +monetarism +monetarist +monetarists +monetary +money +moneyed +moneylender +moneylenders +moneyless +moneys +monger +mongers +mongol +mongols +mongoose +mongrel +mongrels +monies +monition +monitor +monitored +monitoring +monitors +monk +monkey +monkeyed +monkeying +monkeys +monkfish +monkish +monks +mono +monochromatic +monochrome +monocle +monocled +monoclonal +monocular +monoculture +monocytes +monogamous +monogamously +monogamy +monogram +monogrammed +monograph +monographic +monographs +monolayer +monolayers +monolingual +monolith +monolithic +monoliths +monologue +monologues +monomania +monomer +monomeric +monomers +monomial +monomials +monomolecular +monophonic +monophthongs +monoplane +monopole +monopoles +monopolies +monopolisation +monopolise +monopolised +monopolises +monopolising +monopolist +monopolistic +monopolists +monopoly +monorail +monostable +monosyllabic +monosyllable +monosyllables +monotheism +monotheist +monotheistic +monotheists +monotone +monotonic +monotonically +monotonicity +monotonous +monotonously +monotony +monoxide +monroe +monsieur +monsoon +monsoons +monster +monsters +monstrosities +monstrosity +monstrous +monstrously +montage +montages +month +monthlies +monthly +months +montreal +monument +monumental +monumentally +monuments +moo +mood +moodiest +moodily +moodiness +moods +moody +mooed +mooing +moon +moonbeam +moonbeams +mooning +moonless +moonlight +moonlighting +moonlit +moonrise +moons +moonshine +moonshot +moonshots +moonstones +moor +moored +moorhen +moorhens +mooring +moorings +moorland +moorlands +moors +moos +moose +moot +mooted +mop +mope +moped +mopeds +mopes +moping +mopped +mopping +mops +moraine +moraines +moral +morale +morales +moralise +moralised +moralising +moralism +moralist +moralistic +moralists +moralities +morality +morally +morals +morass +morasses +moratorium +moray +morays +morbid +morbidity +morbidly +mordant +more +moreover +mores +morgue +moribund +moribundity +moribundly +mormon +mormons +morn +morning +mornings +morns +moroccan +morocco +moron +moronic +morons +morose +morosely +moroseness +morph +morpheme +morphemes +morpheus +morphia +morphine +morphism +morphisms +morphogenesis +morphogenetic +morphological +morphologically +morphologies +morphology +morrow +morse +morsel +morsels +mort +mortal +mortalities +mortality +mortally +mortals +mortar +mortars +mortgage +mortgageable +mortgaged +mortgagee +mortgagees +mortgages +mortgaging +mortgagor +mortice +mortices +mortification +mortified +mortify +mortifying +mortise +mortises +mortuary +mosaic +mosaics +moscow +moses +mosque +mosques +mosquito +moss +mosses +mossier +mossiest +mossy +most +mostly +motel +motels +motes +motet +motets +moth +mothball +mothballed +mothballs +motheaten +mother +motherboard +motherboards +mothered +motherhood +mothering +motherinlaw +motherland +motherless +motherly +motherofpearl +mothers +mothersinlaw +motherstobe +moths +motif +motifs +motile +motility +motion +motional +motioned +motioning +motionless +motionlessly +motions +motivate +motivated +motivates +motivating +motivation +motivational +motivations +motivator +motivators +motive +motiveless +motives +motley +motlier +motliest +motocross +motor +motorbike +motorbikes +motorcade +motorcar +motorcars +motorcycle +motorcycles +motorcycling +motorcyclist +motorcyclists +motored +motoring +motorised +motorist +motorists +motors +motorway +motorways +mottled +motto +mould +moulded +moulder +mouldering +moulders +mouldier +mouldiest +moulding +mouldings +moulds +mouldy +moult +moulted +moulting +moults +mound +mounded +mounds +mount +mountable +mountain +mountaineer +mountaineering +mountaineers +mountainous +mountains +mountainside +mountainsides +mounted +mountie +mounties +mounting +mountings +mounts +mourn +mourned +mourner +mourners +mournful +mournfully +mournfulness +mourning +mourns +mouse +mouselike +mousetrap +mousetraps +mousey +moussaka +mousse +mousses +moustache +moustached +moustaches +mousy +mouth +mouthed +mouthful +mouthfuls +mouthing +mouthorgan +mouthparts +mouthpiece +mouthpieces +mouths +mouthtomouth +mouthwash +mouthwatering +movable +move +moveable +moved +movement +movements +mover +movers +moves +movie +movies +moving +movingly +mow +mowed +mower +mowers +mowing +mown +mows +mozart +mr +mrs +ms +mu +much +muchness +muck +mucked +mucking +mucks +mucky +mucosa +mucous +mucus +mud +muddied +muddier +muddies +muddiest +muddle +muddled +muddles +muddling +muddy +muddying +mudflats +mudflow +mudflows +mudguard +mudguards +mudlarks +muds +muesli +muff +muffed +muffin +muffins +muffle +muffled +muffler +mufflers +muffling +muffs +mufti +mug +mugged +mugger +muggers +muggier +mugging +muggings +muggy +mugs +mugshots +mulberries +mulberry +mulch +mulches +mulching +mule +mules +mull +mullah +mullahs +mulled +mullet +mulling +mullioned +mullions +multichannel +multicolour +multicoloured +multicultural +multiculturalism +multidimensional +multifarious +multiform +multifunction +multifunctional +multilateral +multilateralism +multilayer +multilevel +multilingual +multimedia +multimeter +multimillion +multinational +multinationals +multiphase +multiple +multiples +multiplex +multiplexed +multiplexer +multiplexers +multiplexes +multiplexing +multiplexor +multiplexors +multiplication +multiplications +multiplicative +multiplicities +multiplicity +multiplied +multiplier +multipliers +multiplies +multiply +multiplying +multiprocessing +multiprocessor +multiprocessors +multiprogramming +multiracial +multitude +multitudes +mum +mumble +mumbled +mumbler +mumbles +mumbling +mumblings +mumbojumbo +mummies +mummification +mummified +mummify +mummy +mumps +mums +munch +munched +muncher +munchers +munches +munching +mundane +mundanely +munich +municipal +municipalities +municipality +munificence +munificent +munificently +munition +munitions +muons +mural +murals +murder +murdered +murderer +murderers +murderess +murdering +murderous +murderously +murders +murk +murkier +murkiest +murkiness +murky +murmur +murmured +murmurer +murmuring +murmurings +murmurs +murray +muscadel +muscat +muscle +muscled +muscles +muscling +muscular +muscularity +musculature +musculoskeletal +muse +mused +muses +museum +museums +mush +mushes +mushroom +mushroomed +mushrooming +mushrooms +mushy +music +musical +musicality +musically +musicals +musician +musicians +musicianship +musicologist +musicologists +musicology +musing +musingly +musings +musk +musket +musketeer +musketeers +muskets +muskier +muskiest +musks +musky +muslim +muslims +muslin +mussel +mussels +must +mustache +mustang +mustangs +mustard +muster +mustered +mustering +musters +mustier +mustiest +mustily +mustiness +musts +musty +mutability +mutable +mutagens +mutant +mutants +mutate +mutated +mutates +mutating +mutation +mutational +mutations +mute +muted +mutely +muteness +mutes +mutilate +mutilated +mutilates +mutilating +mutilation +mutilations +mutineer +mutineers +muting +mutinied +mutinies +mutinous +mutinously +mutiny +mutt +mutter +muttered +mutterer +mutterers +muttering +mutterings +mutters +mutton +muttons +mutts +mutual +mutuality +mutually +muzak +muzzle +muzzled +muzzles +muzzling +my +myalgic +myelin +myna +mynahs +myocardial +myope +myopia +myopic +myopically +myriad +myriads +myrrh +myself +mysteries +mysterious +mysteriously +mystery +mystic +mystical +mystically +mysticism +mystics +mystification +mystified +mystifies +mystify +mystifying +mystique +myth +mythic +mythical +mythological +mythologies +mythologised +mythology +myths +myxomatosis +nab +nabbed +nabs +nadir +nag +nagasaki +nagged +nagger +nagging +nags +naiad +naiads +nail +nailbiting +nailed +nailing +nails +nairobi +naive +naively +naivete +naivety +naked +nakedly +nakedness +name +nameable +namecalling +named +namedropping +nameless +namely +nameplate +nameplates +names +namesake +namesakes +namibia +namibian +naming +namings +nannies +nanny +nanometre +nanometres +nanosecond +nanoseconds +nanotechnology +naomi +nap +napalm +nape +naphtha +napkin +napkins +naples +napoleon +napped +nappies +napping +nappy +naps +narcissism +narcissistic +narcoleptic +narcosis +narcotic +narcotics +narrate +narrated +narrates +narrating +narration +narrations +narrative +narratives +narratology +narrator +narrators +narrow +narrowed +narrower +narrowest +narrowing +narrowly +narrowminded +narrowmindedness +narrowness +narrows +narwhal +nasal +nasalised +nasally +nascent +nastier +nastiest +nastily +nastiness +nasturtium +nasturtiums +nasty +natal +nation +national +nationalisation +nationalisations +nationalise +nationalised +nationalising +nationalism +nationalist +nationalistic +nationalists +nationalities +nationality +nationally +nationals +nationhood +nations +nationwide +native +natives +nativity +nato +nattering +natural +naturalisation +naturalise +naturalised +naturalism +naturalist +naturalistic +naturalists +naturally +naturalness +nature +natures +naturist +naturists +naught +naughtiest +naughtily +naughtiness +naughts +naughty +nausea +nauseate +nauseated +nauseates +nauseating +nauseatingly +nauseous +nauseousness +nautical +nautili +nautilus +naval +nave +navel +navels +navies +navigable +navigate +navigated +navigating +navigation +navigational +navigator +navigators +navvies +navvy +navy +nay +nazi +naziism +nazis +nazism +ndebele +ne +near +nearby +neared +nearer +nearest +nearing +nearly +nearness +nears +nearside +nearsighted +neat +neaten +neatening +neatens +neater +neatest +neatly +neatness +nebula +nebulae +nebular +nebulas +nebulosity +nebulous +nebulously +nebulousness +necessaries +necessarily +necessary +necessitate +necessitated +necessitates +necessitating +necessities +necessity +neck +neckband +necked +necking +necklace +necklaces +neckline +necklines +necks +necktie +necromancer +necromancers +necromancy +necromantic +necrophilia +necrophiliac +necrophiliacs +necropolis +necropsy +necrosis +necrotic +nectar +nectarines +nectars +nee +need +needed +needful +needier +neediest +neediness +needing +needle +needlecraft +needled +needles +needless +needlessly +needlework +needling +needs +needy +negate +negated +negates +negating +negation +negations +negative +negatively +negativeness +negatives +negativism +negativity +negev +neglect +neglected +neglectful +neglecting +neglects +negligee +negligees +negligence +negligent +negligently +negligibility +negligible +negligibly +negotiable +negotiate +negotiated +negotiates +negotiating +negotiation +negotiations +negotiator +negotiators +negroid +neigh +neighbour +neighbourhood +neighbourhoods +neighbouring +neighbourliness +neighbourly +neighbours +neighed +neighing +neither +nematode +nematodes +nemesis +neolithic +neologism +neologisms +neon +neonatal +neonate +neonates +neophyte +neophytes +neoplasm +neoplasms +neoprene +nepal +nephew +nephews +nephritis +nepotism +neptune +neptunium +nerd +nerds +nerve +nerveless +nervelessness +nerves +nervous +nervously +nervousness +nervy +nest +nestable +nested +nestegg +nesting +nestle +nestled +nestles +nestling +nests +net +netball +nether +nethermost +nets +nett +netted +netting +nettle +nettled +nettles +netts +network +networked +networking +networks +neural +neuralgia +neurobiology +neurological +neurologically +neurologist +neurologists +neurology +neuron +neuronal +neurone +neurones +neurons +neurophysiology +neuroscience +neuroscientists +neuroses +neurosis +neurosurgeon +neurosurgeons +neurosurgery +neurotic +neurotically +neurotics +neurotransmitter +neurotransmitters +neuter +neutered +neutering +neuters +neutral +neutralisation +neutralise +neutralised +neutraliser +neutralises +neutralising +neutralism +neutralist +neutrality +neutrally +neutrals +neutrino +neutron +neutrons +never +neverending +nevertheless +new +newborn +newcomer +newcomers +newer +newest +newfangled +newfound +newish +newlook +newly +newlywed +newlyweds +newness +news +newsagent +newsagents +newsboy +newscast +newscasters +newsflash +newsflashes +newsletter +newsletters +newsman +newsmen +newspaper +newspapermen +newspapers +newsprint +newsreader +newsreaders +newsreel +newsreels +newsroom +newsstand +newsstands +newsworthy +newsy +newt +newton +newts +next +ngoing +nguni +ngunis +niagara +nib +nibble +nibbled +nibbler +nibblers +nibbles +nibbling +nibs +nice +nicely +niceness +nicer +nicest +niceties +nicety +niche +niches +nick +nicked +nickel +nicking +nickname +nicknamed +nicknames +nicks +nicotine +niece +nieces +niftily +nifty +niger +nigeria +niggardly +niggle +niggled +niggles +niggling +nigh +night +nightcap +nightcaps +nightclothes +nightclub +nightclubs +nightdress +nightdresses +nightfall +nightgown +nightie +nighties +nightingale +nightingales +nightlife +nightly +nightmare +nightmares +nightmarish +nights +nightwatchman +nightwear +nihilism +nihilist +nihilistic +nil +nile +nils +nimble +nimbleness +nimbly +nimbus +nincompoop +nine +ninefold +nines +nineteen +nineteenth +nineties +ninetieth +ninety +nineveh +ninny +ninth +ninths +nip +nipped +nipper +nipping +nipple +nipples +nippon +nips +nirvana +nit +nitpicking +nitrate +nitrates +nitric +nitrogen +nitrogenous +nitroglycerine +nitrous +nits +nitwit +nixon +no +noah +nobility +noble +nobleman +noblemen +nobleness +nobler +nobles +noblest +nobly +nobodies +nobody +noctuids +nocturnal +nocturnally +nocturne +nocturnes +nod +nodal +nodded +nodding +noddle +noddy +node +nodes +nods +nodular +nodule +noduled +nodules +noel +noggin +nogging +nohow +noise +noiseless +noiselessly +noises +noisier +noisiest +noisily +noisiness +noisome +noisy +nomad +nomadic +nomads +nomenclature +nomenclatures +nominal +nominally +nominate +nominated +nominates +nominating +nomination +nominations +nominative +nominator +nominee +nominees +non +nonbeliever +nonbelievers +nonchalance +nonchalant +nonchalantly +nonconformist +nonconformists +nonconformity +nondrinkers +none +nonentities +nonentity +nonessential +nonessentials +nonetheless +nonevent +nonexistence +nonexistent +nonfunctional +noninterference +nonintervention +nonparticipation +nonpayment +nonplussed +nonsense +nonsenses +nonsensical +nonsmoker +nonsmokers +nonsmoking +nonviolence +nonviolent +noodle +noodles +nook +nooks +noon +noonday +noons +noontide +noose +noosed +nooses +nor +noradrenalin +noradrenaline +nordic +norm +normal +normalcy +normalisable +normalisation +normalisations +normalise +normalised +normaliser +normalisers +normalises +normalising +normality +normally +normals +norman +normandy +normans +normative +normed +norms +norsemen +north +northbound +northerly +northern +northerner +northerners +northernmost +northmen +northward +northwards +norway +nose +nosed +nosedive +noses +nosey +nosier +nosiest +nosily +nosiness +nosing +nostalgia +nostalgic +nostalgically +nostril +nostrils +nostrum +nosy +not +notable +notables +notably +notaries +notary +notation +notational +notationally +notations +notch +notched +notches +notching +note +notebook +notebooks +noted +notepad +notepads +notepaper +notes +noteworthy +nothing +nothingness +nothings +notice +noticeable +noticeably +noticeboard +noticeboards +noticed +notices +noticing +notifiable +notification +notifications +notified +notifies +notify +notifying +noting +notion +notional +notionally +notions +notoriety +notorious +notoriously +notwithstanding +nougat +nougats +nought +noughts +noun +nounal +nouns +nourish +nourished +nourishes +nourishing +nourishment +novel +novelette +novelist +novelistic +novelists +novelle +novels +novelties +novelty +november +novice +novices +now +nowadays +nowhere +noxious +noxiously +noxiousness +nozzle +nozzles +nu +nuance +nuances +nuclear +nuclei +nucleic +nucleus +nude +nudeness +nudes +nudge +nudged +nudges +nudging +nudism +nudist +nudists +nudities +nudity +nugget +nuggets +nuisance +nuisances +nuke +null +nullification +nullified +nullifies +nullify +nullifying +nullity +nulls +numb +numbed +number +numbered +numbering +numberings +numberless +numberplate +numbers +numbing +numbingly +numbly +numbness +numbs +numbskull +numeracy +numeral +numerals +numerate +numerator +numerators +numeric +numerical +numerically +numerological +numerologist +numerologists +numerology +numerous +numismatic +numismatics +numskull +nun +nunneries +nunnery +nuns +nuptial +nuptials +nurse +nursed +nursemaid +nursemaids +nurseries +nursery +nurseryman +nurserymen +nurses +nursing +nurture +nurtured +nurtures +nurturing +nut +nutation +nutcracker +nutcrackers +nutmeg +nutmegs +nutrient +nutrients +nutriment +nutrition +nutritional +nutritionally +nutritionist +nutritionists +nutritious +nutritive +nuts +nutshell +nuttier +nutty +nuzzle +nuzzled +nuzzles +nuzzling +nyala +nylon +nylons +nymph +nympholepsy +nymphomania +nymphomaniac +nymphs +oaf +oafish +oafs +oak +oaken +oaks +oakum +oar +oars +oarsman +oarsmen +oases +oasis +oast +oat +oatcakes +oath +oaths +oatmeal +oats +obduracy +obdurate +obdurately +obedience +obedient +obediently +obeisance +obelisk +obelisks +obese +obesity +obey +obeyed +obeying +obeys +obfuscate +obfuscated +obfuscates +obfuscation +obfuscatory +obituaries +obituary +object +objected +objectified +objecting +objection +objectionable +objectionableness +objectionably +objections +objective +objectively +objectives +objectivity +objectless +objector +objectors +objects +oblate +obligate +obligated +obligation +obligations +obligatorily +obligatory +oblige +obliged +obliges +obliging +obligingly +oblique +obliqued +obliquely +obliqueness +obliquity +obliterate +obliterated +obliterates +obliterating +obliteration +oblivion +oblivious +obliviousness +oblong +oblongs +obloquy +obnoxious +obnoxiously +obnoxiousness +oboe +oboes +oboist +obscene +obscenely +obscenities +obscenity +obscurantism +obscurantist +obscuration +obscure +obscured +obscurely +obscureness +obscurer +obscures +obscurest +obscuring +obscurities +obscurity +obsequious +obsequiously +obsequiousness +observability +observable +observables +observably +observance +observances +observant +observation +observational +observationally +observations +observatories +observatory +observe +observed +observer +observers +observes +observing +obsess +obsessed +obsesses +obsessing +obsession +obsessional +obsessions +obsessive +obsessively +obsessiveness +obsidian +obsolescence +obsolescent +obsolete +obstacle +obstacles +obstetric +obstetrician +obstetricians +obstetrics +obstinacy +obstinate +obstinately +obstreperous +obstruct +obstructed +obstructing +obstruction +obstructionism +obstructions +obstructive +obstructively +obstructiveness +obstructs +obtain +obtainable +obtained +obtaining +obtains +obtrude +obtruded +obtruding +obtrusive +obtrusiveness +obtuse +obtusely +obtuseness +obverse +obviate +obviated +obviates +obviating +obvious +obviously +obviousness +occasion +occasional +occasionally +occasioned +occasioning +occasions +occident +occidental +occipital +occluded +occludes +occlusion +occult +occultism +occults +occupancies +occupancy +occupant +occupants +occupation +occupational +occupationally +occupations +occupied +occupier +occupiers +occupies +occupy +occupying +occur +occurred +occurrence +occurrences +occurring +occurs +ocean +oceanic +oceanographer +oceanographers +oceanographic +oceanography +oceans +ocelot +ocelots +ochre +ochres +octagon +octagonal +octagons +octahedral +octahedron +octal +octane +octanes +octant +octave +octaves +octavo +octet +octets +october +octogenarian +octogenarians +octopus +octopuses +ocular +oculist +odd +odder +oddest +oddities +oddity +oddjob +oddly +oddment +oddments +oddness +odds +ode +odes +odin +odious +odiously +odiousness +odium +odiums +odometer +odoriferous +odorous +odour +odourless +odours +odyssey +oedema +oedipus +oesophagus +oestrogen +oestrogens +oestrus +oeuvre +oeuvres +of +off +offal +offbeat +offcut +offcuts +offence +offences +offend +offended +offender +offenders +offending +offends +offensive +offensively +offensiveness +offensives +offer +offered +offering +offerings +offers +offertory +offhand +office +officer +officers +officership +officerships +offices +official +officialdom +officially +officialness +officials +officiate +officiated +officiating +officious +officiously +officiousness +offprint +offset +offshoot +offshore +oft +often +ogle +ogled +ogling +ogre +ogres +ogrish +oh +ohio +ohm +ohmic +ohms +oil +oilcloth +oiled +oiler +oilers +oilfield +oilfields +oilier +oiliest +oiliness +oiling +oilman +oilmen +oilrig +oils +oily +oink +oinked +oinks +ointment +ointments +ok +okapi +okapis +okay +okayed +okays +oklahoma +old +oldage +olden +older +oldest +oldfashioned +oldie +oldish +oldmaids +oldtimer +oldtimers +ole +oleander +oleanders +olfactory +olive +oliveoil +oliver +olives +olm +olms +olympia +olympiad +olympian +olympic +olympics +olympus +ombudsman +ombudsmen +omega +omelette +omelettes +omen +omens +ominous +ominously +omission +omissions +omit +omits +omitted +omitting +omnibus +omnibuses +omnidirectional +omnipotence +omnipotent +omnipresence +omnipresent +omniscience +omniscient +omnivore +omnivores +omnivorous +on +onager +onagers +once +one +oneness +oner +onerous +ones +oneself +onesided +onesidedly +onesidedness +ongoing +onion +onions +onlooker +onlookers +onlooking +only +onlybegotten +onset +onshore +onslaught +onslaughts +ontario +onto +ontogeny +ontological +ontologically +ontology +onus +onuses +onward +onwards +onyx +onyxes +oocytes +oodles +ooh +oolitic +oology +oompah +oops +ooze +oozed +oozes +oozing +oozy +opacity +opal +opalescent +opals +opaque +open +opened +opener +openers +openhanded +openhandedness +openheart +openhearted +opening +openings +openly +openminded +openmindedness +openness +opens +opera +operable +operand +operands +operas +operate +operated +operates +operatic +operating +operation +operational +operationally +operations +operative +operatives +operator +operators +operculum +operetta +operettas +ophthalmic +ophthalmics +ophthalmologist +ophthalmologists +ophthalmology +opiate +opiates +opine +opined +opines +opining +opinion +opinionated +opinions +opioid +opioids +opium +opossum +opponent +opponents +opportune +opportunely +opportunism +opportunist +opportunistic +opportunistically +opportunists +opportunities +opportunity +oppose +opposed +opposes +opposing +opposite +oppositely +opposites +opposition +oppositional +oppositions +oppress +oppressed +oppresses +oppressing +oppression +oppressions +oppressive +oppressively +oppressiveness +oppressor +oppressors +opprobrious +opprobrium +opt +opted +optic +optical +optically +optician +opticians +optics +optima +optimal +optimality +optimally +optimisation +optimisations +optimise +optimised +optimiser +optimisers +optimises +optimising +optimism +optimist +optimistic +optimistically +optimists +optimum +opting +option +optional +optionality +optionally +options +optoelectronic +opts +opulence +opulent +opus +opuses +or +oracle +oracles +oracular +oral +orally +orang +orange +oranges +orangs +orangutan +orangutans +orate +orated +orates +orating +oration +orations +orator +oratorical +oratorio +orators +oratory +orb +orbit +orbital +orbitals +orbited +orbiter +orbiting +orbits +orbs +orca +orchard +orchards +orchestra +orchestral +orchestras +orchestrate +orchestrated +orchestrates +orchestrating +orchestration +orchestrations +orchestrator +orchid +orchids +ordain +ordained +ordaining +ordains +ordeal +ordeals +order +ordered +ordering +orderings +orderless +orderlies +orderliness +orderly +orders +ordinal +ordinals +ordinance +ordinances +ordinands +ordinarily +ordinariness +ordinary +ordinate +ordinates +ordination +ordinations +ordnance +ordure +ore +ores +organ +organelles +organic +organically +organics +organisable +organisation +organisational +organisationally +organisations +organise +organised +organiser +organisers +organises +organising +organism +organisms +organist +organists +organs +organza +orgies +orgy +orient +orientable +oriental +orientalism +orientals +orientate +orientated +orientates +orientation +orientations +oriented +orienteering +orienting +orifice +orifices +origami +origin +original +originality +originally +originals +originate +originated +originates +originating +origination +originator +originators +origins +orimulsion +ornament +ornamental +ornamentation +ornamented +ornamenting +ornaments +ornate +ornately +ornithological +ornithologist +ornithologists +ornithology +orphan +orphanage +orphanages +orphaned +orphans +orpheus +orthodontist +orthodox +orthodoxies +orthodoxy +orthogonal +orthogonality +orthogonally +orthographic +orthographical +orthographically +orthography +orthonormal +orthopaedic +orthopaedics +orthorhombic +oryxes +oscar +oscars +oscillate +oscillated +oscillates +oscillating +oscillation +oscillations +oscillator +oscillators +oscillatory +oscilloscope +oscilloscopes +osiris +oslo +osmium +osmosis +osmotic +osprey +ospreys +ossification +ossified +ostensible +ostensibly +ostentation +ostentatious +ostentatiously +osteoarthritis +osteopath +osteopaths +osteopathy +osteoporosis +ostler +ostlers +ostracise +ostracised +ostracism +ostrich +ostriches +other +otherness +others +otherwise +otter +otters +ottoman +ouch +ought +ounce +ounces +our +ours +ourselves +oust +ousted +ouster +ousting +ousts +out +outage +outages +outback +outbid +outbids +outboard +outbound +outbreak +outbreaks +outbred +outbuilding +outbuildings +outburst +outbursts +outcall +outcast +outcasts +outclassed +outcome +outcomes +outcries +outcrop +outcrops +outcry +outdated +outdid +outdo +outdoes +outdoing +outdone +outdoor +outdoors +outer +outermost +outface +outfall +outfalls +outfield +outfit +outfits +outfitters +outflank +outflanked +outflow +outflows +outfox +outfoxed +outfoxes +outgo +outgoing +outgoings +outgrew +outgrow +outgrowing +outgrown +outgrowth +outgrowths +outguess +outhouse +outhouses +outing +outings +outlandish +outlast +outlasted +outlasts +outlaw +outlawed +outlawing +outlawry +outlaws +outlay +outlays +outlet +outlets +outlier +outliers +outline +outlined +outlines +outlining +outlive +outlived +outlives +outliving +outlook +outlooks +outlying +outmanoeuvre +outmanoeuvred +outmoded +outmost +outnumber +outnumbered +outnumbering +outnumbers +outpace +outpaced +outpacing +outpatient +outpatients +outperform +outperformed +outperforming +outperforms +outplacement +outplay +outplayed +outpointed +outpointing +outpost +outposts +outpouring +outpourings +output +outputs +outputting +outrage +outraged +outrageous +outrageously +outrages +outraging +outran +outrank +outreach +outride +outrider +outriders +outrigger +outright +outrun +outruns +outs +outsell +outset +outsets +outshine +outshines +outshining +outshone +outside +outsider +outsiders +outsides +outsize +outskirts +outsmart +outsold +outsourcing +outspan +outspoken +outspokenly +outspokenness +outspread +outstanding +outstandingly +outstation +outstations +outstay +outstayed +outstep +outstretched +outstrip +outstripped +outstripping +outstrips +outvoted +outward +outwardly +outwards +outweigh +outweighed +outweighing +outweighs +outwit +outwith +outwits +outwitted +outwitting +outwork +outworking +ova +oval +ovals +ovarian +ovaries +ovary +ovate +ovation +ovations +oven +ovens +over +overact +overacted +overacting +overactive +overacts +overall +overallocation +overalls +overambitious +overanxious +overate +overbearing +overboard +overburdened +overcame +overcapacity +overcast +overcharge +overcharged +overcharging +overcoat +overcoats +overcome +overcomes +overcoming +overcommitment +overcommitments +overcompensate +overcomplexity +overcomplicated +overconfident +overcook +overcooked +overcrowd +overcrowded +overcrowding +overdetermined +overdid +overdo +overdoes +overdoing +overdone +overdose +overdosed +overdoses +overdosing +overdraft +overdrafts +overdramatic +overdraw +overdrawn +overdressed +overdrive +overdubbing +overdue +overeat +overeating +overeats +overemotional +overemphasis +overemphasise +overemphasised +overenthusiastic +overestimate +overestimated +overestimates +overestimating +overestimation +overexposed +overexposure +overextended +overfamiliarity +overfed +overfeed +overfeeding +overfill +overfishing +overflow +overflowed +overflowing +overflown +overflows +overfly +overflying +overfull +overgeneralised +overgeneralising +overgrazing +overground +overgrown +overgrowth +overhand +overhang +overhanging +overhangs +overhasty +overhaul +overhauled +overhauling +overhauls +overhead +overheads +overhear +overheard +overhearing +overhears +overheat +overheated +overheating +overhung +overincredulous +overindulgence +overindulgent +overinflated +overjoyed +overkill +overladen +overlaid +overlain +overland +overlap +overlapped +overlapping +overlaps +overlay +overlaying +overlays +overleaf +overlie +overlies +overload +overloaded +overloading +overloads +overlong +overlook +overlooked +overlooking +overlooks +overlord +overlords +overly +overlying +overmanning +overmantel +overmatching +overmuch +overnight +overoptimistic +overpaid +overpass +overpay +overpayment +overplay +overplayed +overplaying +overpopulated +overpopulation +overpopulous +overpower +overpowered +overpowering +overpoweringly +overpowers +overpressure +overpriced +overprint +overprinted +overprinting +overprints +overproduced +overproduction +overqualified +overran +overrate +overrated +overreach +overreached +overreaching +overreact +overreacted +overreacting +overreaction +overreacts +overrepresented +overridden +override +overrides +overriding +overripe +overrode +overrule +overruled +overruling +overrun +overrunning +overruns +overs +oversampled +oversampling +oversaw +overseas +oversee +overseeing +overseen +overseer +overseers +oversees +oversensitive +oversensitivity +oversexed +overshadow +overshadowed +overshadowing +overshadows +overshoot +overshooting +overshoots +overshot +oversight +oversights +oversimplification +oversimplifications +oversimplified +oversimplifies +oversimplify +oversimplifying +oversize +oversized +oversleep +overslept +overspend +overspending +overspent +overspill +overstaffed +overstate +overstated +overstatement +overstates +overstating +overstep +overstepped +overstepping +oversteps +overstocked +overstocking +overstress +overstressed +overstretch +overstretched +overstrung +overstuffed +oversubscribed +oversupply +overt +overtake +overtaken +overtaker +overtakers +overtakes +overtaking +overtax +overthetop +overthrew +overthrow +overthrowing +overthrown +overthrows +overtightened +overtime +overtly +overtness +overtone +overtones +overtook +overtops +overture +overtures +overturn +overturned +overturning +overturns +overuse +overused +overuses +overvalue +overvalued +overview +overviews +overweening +overweight +overwhelm +overwhelmed +overwhelming +overwhelmingly +overwhelms +overwinter +overwintered +overwintering +overwork +overworked +overworking +overwrite +overwrites +overwriting +overwritten +overwrote +overwrought +oviduct +ovoid +ovular +ovulation +ovum +ow +owe +owed +owes +owing +owl +owlet +owlets +owlish +owlishly +owls +own +owned +owner +owners +ownership +ownerships +owning +owns +ox +oxalate +oxalic +oxcart +oxen +oxford +oxidant +oxidants +oxidation +oxide +oxides +oxidisation +oxidise +oxidised +oxidiser +oxidising +oxtail +oxtails +oxygen +oxygenated +oxygenating +oxygenation +oxymoron +oyster +oysters +ozone +ozonefriendly +pa +pace +paced +pacemaker +pacemakers +paceman +pacemen +pacer +pacers +paces +pacey +pachyderm +pacific +pacification +pacified +pacifier +pacifies +pacifism +pacifist +pacifists +pacify +pacifying +pacing +pack +packable +package +packaged +packages +packaging +packed +packer +packers +packet +packets +packhorse +packing +packings +packs +pact +pacts +pad +padded +padding +paddings +paddle +paddled +paddler +paddlers +paddles +paddling +paddock +paddocks +paddy +padlock +padlocked +padlocking +padlocks +padre +padres +pads +paean +paeans +paediatric +paediatrician +paediatricians +paediatrics +paedophile +paedophiles +paedophilia +paella +paeony +pagan +paganism +pagans +page +pageant +pageantry +pageants +pageboy +paged +pageful +pager +pagers +pages +paginal +paginate +paginated +paginating +pagination +paging +pagoda +pagodas +paid +paidup +pail +pails +pain +pained +painful +painfully +painfulness +paining +painkiller +painkillers +painless +painlessly +pains +painstaking +painstakingly +paint +paintbox +paintbrush +painted +painter +painters +painting +paintings +paints +paintwork +pair +paired +pairing +pairings +pairs +pairwise +pajama +pajamas +pakistan +pal +palace +palaces +palaeographic +palaeolithic +palaeontological +palaeontologist +palaeontologists +palaeontology +palatability +palatable +palatal +palate +palates +palatial +palatinate +palatine +palaver +pale +paled +paleface +palely +paleness +paler +pales +palest +palette +palettes +palimpsest +palindrome +palindromes +palindromic +paling +palisade +palisades +pall +palladium +pallbearers +palled +pallet +pallets +palliative +palliatives +pallid +pallmall +pallor +palls +palm +palmed +palming +palmist +palmistry +palms +palmtop +palmtops +palmy +palp +palpable +palpably +palpate +palpated +palpates +palpitate +palpitated +palpitating +palpitation +palpitations +pals +palsied +palsy +paltrier +paltriest +paltriness +paltry +paludal +pampas +pamper +pampered +pampering +pampers +pamphlet +pamphleteer +pamphleteers +pamphlets +pan +panacea +panaceas +panache +panama +pancake +pancaked +pancakes +pancreas +pancreatic +panda +pandas +pandemic +pandemics +pandemonium +pander +pandering +panders +pandora +pane +paned +panel +panelled +panelling +panellist +panellists +panels +panes +pang +panga +pangas +pangolin +pangs +panic +panicked +panicking +panicky +panics +panicstricken +panjandrum +panned +pannier +panniers +panning +panoply +panorama +panoramas +panoramic +pans +pansies +pansy +pant +pantaloons +pantechnicon +panted +pantheism +pantheist +pantheistic +pantheon +panther +panthers +panties +pantile +pantiled +pantiles +panting +pantograph +pantographs +pantomime +pantomimes +pantries +pantry +pants +panzer +pap +papa +papacy +papal +paparazzi +papas +papaw +papaws +papaya +paper +paperback +paperbacks +papered +papering +paperless +papers +paperthin +paperweight +paperweights +paperwork +papery +papilla +papist +pappy +paprika +papua +papule +papyri +papyrus +par +parable +parables +parabola +parabolas +parabolic +paraboloid +paraboloids +paracetamol +parachute +parachuted +parachutes +parachuting +parachutist +parachutists +parade +paraded +parader +parades +paradigm +paradigmatic +paradigms +parading +paradise +paradises +paradox +paradoxes +paradoxical +paradoxically +paraffin +paragliding +paragon +paragons +paragraph +paragraphing +paragraphs +paraguay +parakeet +parakeets +paralinguistic +parallax +parallaxes +parallel +paralleled +parallelepiped +paralleling +parallelism +parallelogram +parallelograms +parallels +paralyse +paralysed +paralyses +paralysing +paralysis +paralytic +paralytically +paramagnetic +paramagnetism +paramedic +paramedical +paramedics +parameter +parameters +parametric +parametrically +parametrisation +parametrise +parametrised +parametrises +paramilitaries +paramilitary +paramount +paramountcy +paramour +paranoia +paranoiac +paranoiacs +paranoid +paranormal +parapet +parapets +paraphernalia +paraphrase +paraphrased +paraphrases +paraphrasing +paraplegic +parapsychologist +parapsychology +paraquat +parasite +parasites +parasitic +parasitical +parasitised +parasitism +parasitologist +parasitology +parasol +parasols +paratroop +paratrooper +paratroopers +paratroops +parboil +parcel +parcelled +parcelling +parcels +parch +parched +parches +parchment +parchments +pardon +pardonable +pardoned +pardoning +pardons +pare +pared +parent +parentage +parental +parented +parenteral +parentheses +parenthesis +parenthesise +parenthesised +parenthetic +parenthetical +parenthetically +parenthood +parenting +parentinlaw +parents +parentsinlaw +pares +parfait +parfaits +pariah +pariahs +parietal +paring +paris +parish +parishes +parishioner +parishioners +parisian +parities +parity +park +parka +parkas +parked +parking +parkland +parks +parlance +parley +parleying +parliament +parliamentarian +parliamentarians +parliamentary +parliaments +parlour +parlourmaid +parlours +parlous +parochial +parochialism +parochiality +parodied +parodies +parodist +parody +parodying +parole +paroxysm +paroxysms +parquet +parried +parries +parrot +parroting +parrots +parry +parrying +parse +parsec +parsecs +parsed +parser +parsers +parses +parsimonious +parsimony +parsing +parsings +parsley +parsnip +parsnips +parson +parsonage +parsons +part +partake +partaken +partaker +partakers +partakes +partaking +parted +parthenogenesis +partial +partiality +partially +participant +participants +participate +participated +participates +participating +participation +participative +participators +participatory +participle +participles +particle +particles +particular +particularise +particularised +particularism +particularities +particularity +particularly +particulars +particulate +particulates +parties +parting +partings +partisan +partisans +partisanship +partition +partitioned +partitioning +partitions +partly +partner +partnered +partnering +partners +partnership +partnerships +partook +partridge +partridges +parts +parttime +party +parvenu +pascal +pascals +paschal +pass +passable +passably +passage +passages +passageway +passageways +passant +passe +passed +passenger +passengers +passer +passers +passersby +passes +passim +passing +passion +passionate +passionately +passionateness +passionless +passions +passivated +passive +passively +passives +passivity +passmark +passover +passport +passports +password +passwords +past +pasta +pastas +paste +pasteboard +pasted +pastel +pastels +pastes +pasteur +pasteurisation +pasteurised +pastiche +pastiches +pasties +pastille +pastime +pastimes +pasting +pastis +pastor +pastoral +pastoralism +pastors +pastrami +pastries +pastry +pasts +pasture +pastured +pastureland +pastures +pasturing +pasty +pat +patch +patchable +patched +patches +patchier +patchiest +patchily +patchiness +patching +patchup +patchwork +patchy +pate +patella +paten +patent +patentable +patented +patentee +patenting +patently +patents +pater +paternal +paternalism +paternalist +paternalistic +paternally +paternity +pates +path +pathetic +pathetically +pathfinder +pathfinders +pathless +pathogen +pathogenesis +pathogenic +pathogens +pathological +pathologically +pathologies +pathologist +pathologists +pathology +pathos +paths +pathway +pathways +patience +patient +patiently +patients +patina +patination +patio +patisserie +patois +patriarch +patriarchal +patriarchies +patriarchs +patriarchy +patrician +patricians +patrilineal +patrimony +patriot +patriotic +patriotism +patriots +patrol +patrolled +patrolling +patrols +patron +patronage +patroness +patronesses +patronisation +patronise +patronised +patronises +patronising +patronisingly +patrons +pats +patted +patten +pattens +patter +pattered +pattering +pattern +patterned +patterning +patternless +patterns +patters +patties +patting +paucity +paul +paunch +paunchy +pauper +paupers +pause +paused +pauses +pausing +pave +paved +pavement +pavements +paves +pavilion +pavilions +paving +pavings +pavlov +paw +pawed +pawing +pawn +pawnbroker +pawnbrokers +pawned +pawning +pawns +pawnshop +pawnshops +pawpaw +pawpaws +paws +pay +payable +payback +payday +paydays +payed +payee +payees +payer +payers +paying +payload +payloads +paymaster +paymasters +payment +payments +payphone +payphones +payroll +payrolls +pays +payslips +pea +peace +peaceable +peaceably +peaceful +peacefully +peacefulness +peacekeepers +peacekeeping +peacemaker +peacemakers +peacemaking +peacetime +peach +peaches +peachier +peachiest +peachy +peacock +peacocks +peafowl +peahens +peak +peaked +peakiness +peaking +peaks +peaky +peal +pealed +pealing +peals +peanut +peanuts +pear +pearl +pearls +pearly +pears +peartrees +peas +peasant +peasantry +peasants +peat +peatland +peatlands +peaty +pebble +pebbled +pebbles +pebbly +pecan +peccary +peck +pecked +pecker +peckers +pecking +peckish +pecks +pectin +pectoral +pectorals +peculiar +peculiarities +peculiarity +peculiarly +pecuniary +pedagogic +pedagogical +pedagogically +pedagogue +pedagogy +pedal +pedalled +pedalling +pedals +pedant +pedantic +pedantically +pedantry +pedants +peddle +peddled +peddler +peddlers +peddles +peddling +pederasts +pedestal +pedestals +pedestrian +pedestrianisation +pedestrianised +pedestrians +pedigree +pedigrees +pediment +pedimented +pediments +pedlar +pedlars +pedology +peek +peeked +peeking +peeks +peel +peeled +peeler +peelers +peeling +peelings +peels +peep +peeped +peeper +peepers +peephole +peeping +peeps +peer +peerage +peerages +peered +peering +peerless +peers +peevish +peevishly +peevishness +peg +pegasus +pegged +pegging +pegs +pejorative +pejoratively +pejoratives +pekan +peking +pele +pelican +pelicans +pellet +pellets +pelmet +pelmets +pelt +pelted +pelting +pelts +pelvic +pelvis +pelvises +pen +penal +penalisation +penalise +penalised +penalises +penalising +penalties +penalty +penance +penances +pence +penchant +pencil +pencilled +pencilling +pencils +pendant +pendants +pending +pendulous +pendulum +pendulums +penetrable +penetrate +penetrated +penetrates +penetrating +penetratingly +penetration +penetrations +penetrative +penguin +penguins +penicillin +penile +peninsula +peninsular +peninsulas +penitence +penitent +penitential +penitentiary +penitently +penitents +penknife +penname +pennames +pennant +pennants +penned +pennies +penniless +penning +penny +pennypinching +penology +pens +pension +pensionable +pensioned +pensioner +pensioners +pensioning +pensions +pensive +pensively +pensiveness +pent +pentagon +pentagonal +pentagons +pentagram +pentagrams +pentameter +pentameters +pentasyllabic +pentathlete +pentathlon +pentatonic +pentecostal +penthouse +penultimate +penultimately +penumbra +penurious +penury +peonies +people +peopled +peoples +pep +peperoni +pepper +peppercorn +peppercorns +peppered +peppering +peppermint +peppermints +peppers +peppery +peps +peptic +peptide +peptides +per +perambulate +perambulated +perambulating +perambulations +perambulator +perannum +percales +perceivable +perceive +perceived +perceives +perceiving +percent +percentage +percentages +percentile +percentiles +percept +perceptibility +perceptible +perceptibly +perception +perceptions +perceptive +perceptively +perceptiveness +percepts +perceptual +perceptually +perch +perchance +perched +percher +perches +perching +perchlorate +percipient +percolate +percolated +percolates +percolating +percolation +percolator +percolators +percuss +percussed +percusses +percussing +percussion +percussionist +percussionists +percussive +percussively +percutaneous +perdition +peregrinations +peregrine +peregrines +peremptorily +peremptoriness +peremptory +perennial +perennially +perennials +perestroika +perfect +perfected +perfectibility +perfecting +perfection +perfectionism +perfectionist +perfectionists +perfections +perfectly +perfects +perfidious +perfidiously +perfidy +perforate +perforated +perforation +perforations +perforce +perform +performable +performance +performances +performed +performer +performers +performing +performs +perfume +perfumed +perfumery +perfumes +perfuming +perfunctorily +perfunctory +perfused +perfusion +pergola +pergolas +perhaps +peri +periastron +perigee +periglacial +perihelion +peril +perilous +perilously +perils +perimeter +perimeters +perinatal +perineal +perineum +period +periodic +periodical +periodically +periodicals +periodicity +periods +perioperative +peripatetic +peripheral +peripherally +peripherals +peripheries +periphery +periphrasis +periphrastic +periscope +periscopes +perish +perishable +perishables +perished +perishes +perishing +peritoneum +perjure +perjured +perjurer +perjury +perk +perked +perkier +perkiest +perkily +perking +perks +perky +perm +permafrost +permanence +permanency +permanent +permanently +permanganate +permeability +permeable +permeate +permeated +permeates +permeating +permeation +permed +perming +permissibility +permissible +permission +permissions +permissive +permissiveness +permit +permits +permitted +permitting +permittivity +perms +permutation +permutations +permute +permuted +permutes +permuting +pernicious +perniciousness +peroration +peroxidase +peroxide +peroxides +perpendicular +perpendicularly +perpendiculars +perpetrate +perpetrated +perpetrates +perpetrating +perpetration +perpetrator +perpetrators +perpetual +perpetually +perpetuate +perpetuated +perpetuates +perpetuating +perpetuation +perpetuity +perplex +perplexed +perplexedly +perplexing +perplexities +perplexity +perquisite +perquisites +perron +perry +persecute +persecuted +persecuting +persecution +persecutions +persecutor +persecutors +perseverance +persevere +persevered +perseveres +persevering +perseveringly +persia +persian +persist +persisted +persistence +persistent +persistently +persisting +persists +person +persona +personable +personae +personage +personages +personal +personalisation +personalise +personalised +personalising +personalities +personality +personally +personification +personifications +personified +personifies +personify +personifying +personnel +persons +perspective +perspectives +perspex +perspicacious +perspicacity +perspicuity +perspicuous +perspicuously +perspiration +perspire +perspiring +persuade +persuaded +persuaders +persuades +persuading +persuasion +persuasions +persuasive +persuasively +persuasiveness +pert +pertain +pertained +pertaining +pertains +perth +pertinacious +pertinaciously +pertinacity +pertinence +pertinent +pertinently +pertly +pertness +perturb +perturbation +perturbations +perturbed +perturbing +peru +perusal +peruse +perused +peruses +perusing +peruvian +pervade +pervaded +pervades +pervading +pervasive +pervasiveness +perverse +perversely +perverseness +perversion +perversions +perversity +pervert +perverted +perverting +perverts +peseta +pesetas +pesky +pessimism +pessimist +pessimistic +pessimistically +pessimists +pest +pester +pestered +pestering +pesticide +pesticides +pestilence +pestilent +pestilential +pestle +pests +pet +petal +petals +petard +peter +petered +petering +peters +pethidine +petit +petite +petition +petitioned +petitioner +petitioners +petitioning +petitions +petrel +petrels +petrification +petrified +petrifies +petrify +petrifying +petrochemical +petrochemicals +petrographic +petrographical +petrol +petroleum +petrological +petrology +pets +petted +petticoat +petticoats +pettier +pettiest +pettifoggers +pettifogging +pettiness +petting +pettish +pettishly +pettishness +petty +petulance +petulant +petulantly +petunia +petunias +pew +pews +pewter +phalanx +phantasy +phantom +phantoms +pharaoh +pharmaceutical +pharmaceuticals +pharmacies +pharmacist +pharmacists +pharmacological +pharmacologist +pharmacologists +pharmacology +pharmacy +pharynx +phase +phased +phases +phasing +pheasant +pheasants +phenol +phenols +phenomena +phenomenal +phenomenally +phenomenological +phenomenologically +phenomenologists +phenomenology +phenomenon +phenotype +phenotypes +phenylalanine +pheromone +pheromones +phew +philanthropic +philanthropist +philanthropists +philanthropy +philatelic +philatelists +philately +philharmonic +philistine +philological +philologist +philologists +philology +philosopher +philosophers +philosophic +philosophical +philosophically +philosophies +philosophise +philosophising +philosophy +phlebotomy +phlegm +phlegmatic +phlegmatically +phlogiston +phlox +phobia +phobias +phobic +phoenix +phoenixes +phone +phoned +phoneme +phonemes +phonemic +phonemically +phoner +phones +phonetic +phonetically +phoneticians +phoneticist +phonetics +phoney +phoneys +phoning +phonograph +phonographic +phonological +phonologically +phonology +phonon +phony +phooey +phosphatase +phosphate +phosphates +phosphatic +phospholipids +phosphor +phosphorescence +phosphorescent +phosphoric +phosphorous +phosphors +phosphorus +photo +photocells +photochemical +photochemically +photochemistry +photocopied +photocopier +photocopiers +photocopies +photocopy +photocopying +photoelectric +photoelectrically +photogenic +photograph +photographed +photographer +photographers +photographic +photographically +photographing +photographs +photography +photolysis +photolytic +photometric +photometrically +photometry +photomultiplier +photon +photons +photoreceptor +photos +photosensitive +photosphere +photostat +photosynthesis +photosynthesising +photosynthetic +photosynthetically +phototypesetter +phototypesetting +photovoltaic +phrasal +phrase +phrasebook +phrased +phraseology +phrases +phrasing +phrenological +phrenologically +phrenologists +phrenology +phyla +phylactery +phylogenetic +phylogeny +phylum +physic +physical +physicality +physically +physician +physicians +physicist +physicists +physics +physio +physiognomies +physiognomy +physiological +physiologically +physiologist +physiologists +physiology +physiotherapist +physiotherapists +physiotherapy +physique +phytoplankton +pi +pianissimo +pianist +pianistic +pianists +piano +pianoforte +pianola +piazza +piazzas +pica +picaresque +picasso +piccolo +pick +pickaxe +pickaxes +picked +picker +pickerel +pickerels +pickers +picket +picketed +picketing +pickets +picking +pickings +pickle +pickled +pickles +pickling +pickpocket +pickpocketing +pickpockets +picks +pickup +pickups +picnic +picnicked +picnickers +picnicking +picnics +picoseconds +pictogram +pictograms +pictographic +pictorial +pictorially +pictural +picture +pictured +pictures +picturesque +picturesquely +picturesqueness +picturing +pidgin +pie +piebald +piece +pieced +piecemeal +pieces +piecewise +piecework +piecing +pied +pier +pierce +pierced +piercer +piercers +pierces +piercing +piercingly +piers +pies +pieta +piety +piezoelectric +piffle +pig +pigeon +pigeons +piggery +piggish +piggy +piggyback +piglet +piglets +pigment +pigmentation +pigmented +pigments +pigs +pigsties +pigsty +pigtail +pigtailed +pigtails +pike +pikemen +pikes +pikestaff +pilaster +pilasters +pilchard +pilchards +pile +piled +piles +pileup +pilfer +pilfered +pilfering +pilgrim +pilgrimage +pilgrimages +pilgrims +piling +pill +pillage +pillaged +pillages +pillaging +pillar +pillared +pillars +pillbox +pillion +pilloried +pillories +pillory +pillow +pillowcase +pillowcases +pillowed +pillows +pills +pilot +piloted +piloting +pilots +pimp +pimpernel +pimping +pimple +pimpled +pimples +pimply +pimps +pin +pinafore +pinafores +pinball +pincer +pincered +pincers +pinch +pinched +pincher +pinches +pinching +pincushion +pincushions +pine +pineal +pineapple +pineapples +pined +pines +ping +pingpong +pings +pinhead +pinheads +pinhole +pinholes +pining +pinion +pinioned +pinions +pink +pinked +pinker +pinkie +pinkies +pinking +pinkish +pinkness +pinks +pinky +pinnacle +pinnacled +pinnacles +pinned +pinning +pinpoint +pinpointed +pinpointing +pinpoints +pinprick +pinpricks +pins +pinstripe +pinstriped +pinstripes +pint +pints +pintsized +pinup +pinups +piny +pion +pioneer +pioneered +pioneering +pioneers +pions +pious +piously +pip +pipe +piped +pipeline +pipelines +piper +pipers +pipes +pipette +pipettes +pipework +piping +pipings +pipit +pipits +pipped +pippin +pipping +pips +piquancy +piquant +pique +piqued +piracies +piracy +piranha +piranhas +pirate +pirated +pirates +piratical +pirating +pirouette +pirouetted +pirouettes +pirouetting +pisa +pistol +pistols +piston +pistons +pit +pitbull +pitch +pitchdark +pitched +pitcher +pitchers +pitches +pitchfork +pitchforks +pitching +piteous +piteously +pitfall +pitfalls +pith +pithead +pithier +pithiest +pithily +piths +pithy +pitiable +pitiably +pitied +pities +pitiful +pitifully +pitiless +pitilessly +piton +pitons +pits +pittance +pitted +pitting +pituitary +pity +pitying +pityingly +pivot +pivotal +pivoted +pivoting +pivots +pixel +pixels +pixie +pixies +pizazz +pizza +pizzas +pizzeria +pizzerias +pizzicato +placard +placards +placate +placated +placates +placating +placatingly +placatory +place +placebo +placed +placeholder +placemen +placement +placements +placenta +placentae +placental +placentas +placer +placers +places +placid +placidity +placidly +placing +placings +plagiarise +plagiarised +plagiarising +plagiarism +plagiarist +plagiarists +plague +plagued +plagues +plaguing +plaice +plaid +plaids +plain +plainest +plainly +plainness +plains +plaint +plaintiff +plaintiffs +plaintive +plaintively +plait +plaited +plaiting +plaits +plan +planar +plane +planed +planes +planet +planetarium +planetary +planetesimals +planetoids +planets +plangent +planing +plank +planking +planks +plankton +planktonic +planned +planner +planners +planning +plans +plant +plantain +plantation +plantations +planted +planter +planters +planting +plantings +plants +plaque +plaques +plasm +plasma +plasmas +plasmid +plasmids +plaster +plasterboard +plastered +plasterer +plasterers +plastering +plasters +plasterwork +plastic +plasticised +plasticisers +plasticity +plastics +plate +plateau +plateaus +plateaux +plated +plateful +platefuls +platelet +platelets +platen +platens +plates +platform +platforms +plating +platinum +platitude +platitudes +platitudinous +plato +platonic +platoon +platoons +platter +platters +platypus +platypuses +plaudits +plausibility +plausible +plausibly +play +playable +playback +playboy +playboys +played +player +players +playfellow +playfellows +playful +playfully +playfulness +playground +playgrounds +playgroup +playgroups +playhouse +playing +playings +playmate +playmates +playroom +plays +plaything +playthings +playtime +playwright +playwrights +plaza +plazas +plea +plead +pleaded +pleading +pleadingly +pleadings +pleads +pleas +pleasant +pleasanter +pleasantest +pleasantly +pleasantness +pleasantries +pleasantry +please +pleased +pleases +pleasing +pleasingly +pleasurable +pleasurably +pleasure +pleasures +pleat +pleated +pleats +pleb +plebeian +plebiscite +plebs +plectrum +plectrums +pledge +pledged +pledges +pledging +plenary +plenipotentiary +plenitude +plenteous +plenteously +plentiful +plentifully +plenty +plenum +plethora +pleura +pleural +pleurisy +plexus +pliable +pliant +plied +pliers +plies +plight +plights +plimsolls +plinth +plinths +plod +plodded +plodder +plodding +plods +plop +plopped +plopping +plops +plosive +plot +plots +plotted +plotter +plotters +plotting +plough +ploughed +ploughers +ploughing +ploughman +ploughmen +ploughs +ploughshare +ploughshares +plover +plovers +ploy +ploys +pluck +plucked +plucker +pluckier +pluckiest +plucking +plucks +plucky +plug +plugged +plugging +plughole +plugs +plum +plumage +plumages +plumb +plumbago +plumbed +plumber +plumbers +plumbing +plumbs +plume +plumed +plumes +pluming +plummet +plummeted +plummeting +plummets +plummy +plump +plumped +plumper +plumping +plumpness +plums +plumtree +plumy +plunder +plundered +plunderers +plundering +plunders +plunge +plunged +plunger +plungers +plunges +plunging +pluperfect +plural +pluralisation +pluralise +pluralised +pluralising +pluralism +pluralist +pluralistic +pluralists +plurality +plurals +plus +pluses +plush +plushy +pluto +plutocracy +plutocrats +plutonic +plutonium +ply +plying +plywood +pneumatic +pneumatics +pneumonia +poach +poached +poacher +poachers +poaches +poaching +pock +pocked +pocket +pocketbook +pocketed +pocketful +pocketing +pockets +pockmarked +pocks +pod +podded +podgy +podia +podium +podiums +pods +poem +poems +poet +poetess +poetic +poetical +poetically +poetics +poetise +poetry +poets +pogo +pogrom +pogroms +poignancy +poignant +poignantly +poikilothermic +poinsettias +point +pointblank +pointed +pointedly +pointedness +pointer +pointers +pointillism +pointillist +pointing +pointless +pointlessly +pointlessness +points +pointy +poise +poised +poises +poising +poison +poisoned +poisoner +poisoning +poisonings +poisonous +poisons +poke +poked +poker +pokerfaced +pokers +pokes +poking +poky +poland +polar +polarisation +polarisations +polarise +polarised +polarising +polarities +polarity +polder +pole +polecat +polecats +poled +polemic +polemical +polemicist +polemics +poles +polestar +polevaulting +poleward +polewards +police +policed +policeman +policemen +polices +policewoman +policewomen +policies +policing +policy +policyholder +policyholders +polio +poliomyelitis +polish +polished +polisher +polishers +polishes +polishing +polishings +politburo +polite +politely +politeness +politer +politesse +politest +politic +political +politically +politician +politicians +politicisation +politicise +politicised +politicising +politicking +politics +polity +polka +polkas +poll +pollarded +polled +pollen +pollens +pollinate +pollinated +pollinating +pollination +pollinator +pollinators +polling +polls +pollster +pollsters +pollutant +pollutants +pollute +polluted +polluter +polluters +pollutes +polluting +pollution +pollutions +polo +polonaise +polonaises +poloneck +polonies +polonium +polony +poltergeist +poltergeists +poltroon +polyandry +polyatomic +polycarbonate +polychromatic +polychrome +polycotton +polycrystalline +polycyclic +polyester +polyesters +polyethylene +polygamous +polygamy +polyglot +polyglots +polygon +polygonal +polygons +polygraph +polygynous +polygyny +polyhedra +polyhedral +polyhedron +polymath +polymer +polymerase +polymerases +polymeric +polymerisation +polymerised +polymers +polymorphic +polymorphism +polymorphisms +polymorphous +polynomial +polynomially +polynomials +polyp +polypeptide +polypeptides +polyphonic +polyphony +polypropylene +polyps +polysaccharide +polysaccharides +polystyrene +polysyllabic +polysyllable +polysyllables +polytechnic +polytechnics +polytheism +polytheist +polytheistic +polytheists +polythene +polytopes +polyunsaturated +polyunsaturates +polyurethane +pomade +pomades +pomegranate +pomegranates +pomelo +pomp +pompadour +pompeii +pompey +pomposity +pompous +pompously +pompousness +ponce +poncho +pond +ponder +pondered +pondering +ponderous +ponderously +ponders +ponds +ponies +pontiff +pontiffs +pontifical +pontificate +pontificated +pontificating +pontification +pontifications +pontoon +pontoons +pony +ponytail +pooch +pooches +poodle +poodles +poof +pooh +pool +pooled +pooling +pools +poolside +poop +poor +poorer +poorest +poorly +poorness +poorspirited +pop +popcorn +pope +popes +popeyed +poplar +poplars +popmusic +popped +popper +poppet +poppies +popping +poppy +poppycock +pops +populace +popular +popularisation +popularisations +popularise +popularised +popularising +popularity +popularly +populate +populated +populating +population +populations +populism +populist +populists +populous +popup +porcelain +porch +porches +porcine +porcupine +porcupines +pore +pored +pores +poring +pork +porkchop +porker +porky +porn +porno +pornographer +pornographers +pornographic +pornography +porns +porosity +porous +porphyritic +porphyry +porpoise +porpoises +porridge +port +portability +portable +portables +portage +portal +portals +portcullis +portcullises +ported +portend +portended +portending +portends +portent +portentous +portentously +portents +porter +porterage +porters +portfolio +porthole +portholes +portico +porting +portion +portions +portly +portmanteau +portmanteaus +portrait +portraitist +portraits +portraiture +portray +portrayal +portrayals +portrayed +portraying +portrays +ports +portugal +pose +posed +poseidon +poser +posers +poses +poseur +poseurs +posh +posies +posing +posit +posited +positing +position +positionable +positional +positionally +positioned +positioning +positions +positive +positively +positiveness +positives +positivism +positivist +positivists +positivity +positron +positrons +posits +posse +possess +possessed +possesses +possessing +possession +possessions +possessive +possessively +possessiveness +possessives +possessor +possessors +possibilities +possibility +possible +possibles +possibly +possum +possums +post +postage +postal +postbag +postbox +postboxes +postcard +postcards +postcode +postcodes +postdated +posted +poster +posterior +posteriors +posterity +posters +postfixes +postgraduate +postgraduates +posthumous +posthumously +postilion +postilions +postillion +posting +postings +postlude +postman +postmark +postmarked +postmarks +postmaster +postmasters +postmen +postmistress +postmodern +postmodernism +postmodernist +postmortem +postmortems +postnatal +postoperative +postoperatively +postpone +postponed +postponement +postponements +postpones +postponing +posts +postscript +postscripts +postulate +postulated +postulates +postulating +postulation +postural +posture +postured +postures +posturing +posturings +posy +pot +potable +potash +potassium +potato +potbellied +potch +potencies +potency +potent +potentate +potentates +potential +potentialities +potentiality +potentially +potentials +potentiometer +potentiometers +potently +pothole +potholes +potion +potions +potpourri +pots +potsherds +potshot +potshots +pottage +potted +potter +pottered +potteries +pottering +potters +pottery +potties +potting +potty +pouch +pouches +pouffe +pouffes +poult +poulterer +poultice +poultry +pounce +pounced +pounces +pouncing +pound +poundage +pounded +pounding +pounds +pour +pourable +poured +pouring +pours +pout +pouted +pouter +pouting +pouts +poverty +povertystricken +powder +powdered +powdering +powders +powdery +power +powerboat +powerboats +powered +powerful +powerfully +powerfulness +powerhouse +powerhouses +powering +powerless +powerlessness +powers +powersharing +pox +practicabilities +practicability +practicable +practical +practicalities +practicality +practically +practicals +practice +practices +practise +practised +practises +practising +practitioner +practitioners +pragmatic +pragmatically +pragmatics +pragmatism +pragmatist +pragmatists +prague +prairie +prairies +praise +praised +praises +praiseworthy +praising +praline +pram +prams +prance +pranced +prancer +prancing +prang +prank +pranks +prankster +pranksters +prat +prattle +prattled +prattler +prattling +prawn +prawns +pray +prayed +prayer +prayerbook +prayerful +prayerfully +prayers +praying +prays +pre +preach +preached +preacher +preachers +preaches +preaching +preachings +preadolescent +preallocate +preamble +preambles +preamp +preamplifier +prearranged +preauthorise +prebend +prebendary +precarious +precariously +precariousness +precaution +precautionary +precautions +precede +preceded +precedence +precedences +precedent +precedents +precedes +preceding +precept +precepts +precess +precessed +precessing +precession +precinct +precincts +precious +preciously +preciousness +precipice +precipices +precipitate +precipitated +precipitately +precipitates +precipitating +precipitation +precipitous +precipitously +precis +precise +precisely +preciseness +precision +precisions +preclinical +preclude +precluded +precludes +precluding +precocious +precociously +precociousness +precocity +precognition +precognitions +precomputed +preconceived +preconception +preconceptions +precondition +preconditions +precooked +precursor +precursors +predate +predated +predates +predating +predation +predations +predator +predators +predatory +predeceased +predecessor +predecessors +predeclared +predefine +predefined +predefining +predestination +predestined +predetermination +predetermine +predetermined +predetermines +predicament +predicaments +predicate +predicated +predicates +predicating +predicative +predict +predictability +predictable +predictably +predicted +predicting +prediction +predictions +predictive +predictor +predictors +predicts +predilection +predilections +predispose +predisposed +predisposes +predisposing +predisposition +predispositions +predominance +predominant +predominantly +predominate +predominated +predominates +predominating +preen +preened +preening +preens +prefab +prefabricated +prefabrication +prefabs +preface +prefaced +prefaces +prefacing +prefatory +prefect +prefects +prefecture +prefer +preferable +preferably +preference +preferences +preferential +preferentially +preferment +preferred +preferring +prefers +prefigured +prefix +prefixed +prefixes +prefixing +pregnancies +pregnancy +pregnant +preheat +preheating +prehensile +prehistoric +prehistory +prejudge +prejudged +prejudging +prejudice +prejudiced +prejudices +prejudicial +prejudicing +prelate +prelates +preliminaries +preliminarily +preliminary +prelude +preludes +premature +prematurely +prematureness +prematurity +premeditate +premeditated +premeditation +premenstrual +premier +premiere +premiered +premieres +premiers +premiership +premise +premised +premises +premising +premiss +premisses +premium +premiums +premolar +premolars +premonition +premonitions +prenatal +preoccupation +preoccupations +preoccupied +preoccupy +preoccupying +preordained +prep +prepaid +preparation +preparations +preparative +preparatory +prepare +prepared +preparedness +preparer +preparers +prepares +preparing +prepayment +prepays +preplanned +preponderance +preponderant +preponderantly +preposition +prepositional +prepositions +preposterous +preposterously +preps +prerogative +prerogatives +presbytery +preschool +prescribe +prescribed +prescribes +prescribing +prescription +prescriptions +prescriptive +prescriptively +prescriptivism +prescriptivist +preselect +preselected +preselects +presence +presences +present +presentable +presentation +presentational +presentations +presented +presenter +presenters +presentiment +presentiments +presenting +presently +presents +preservation +preservationists +preservative +preservatives +preserve +preserved +preserver +preserves +preserving +preset +presets +presetting +preside +presided +presidencies +presidency +president +presidential +presidents +presides +presiding +presidium +press +pressed +presses +pressing +pressingly +pressings +pressman +pressmen +pressup +pressups +pressure +pressurecooking +pressured +pressures +pressuring +pressurise +pressurised +pressurises +pressurising +prestidigitation +prestidigitator +prestidigitatorial +prestige +prestigious +presto +presumable +presumably +presume +presumed +presumes +presuming +presumption +presumptions +presumptive +presumptively +presumptuous +presumptuously +presumptuousness +presuppose +presupposed +presupposes +presupposing +presupposition +presuppositions +pretence +pretences +pretend +pretended +pretender +pretenders +pretending +pretends +pretension +pretensions +pretentious +pretentiously +pretentiousness +preterite +preternatural +preternaturally +pretext +pretexts +pretor +pretoria +pretreated +pretreatment +pretreatments +prettier +prettiest +prettify +prettily +prettiness +pretty +prevail +prevailed +prevailing +prevails +prevalence +prevalent +prevalently +prevaricate +prevaricated +prevaricating +prevarication +prevent +preventable +prevented +preventing +prevention +preventions +preventive +prevents +preview +previewed +previewer +previewers +previewing +previews +previous +previously +prevue +prevues +prey +preyed +preying +preys +priapic +price +priced +priceless +prices +pricewar +pricey +pricier +pricing +prick +pricked +pricking +prickle +prickled +prickles +pricklier +prickliest +prickliness +prickling +prickly +pricks +pricy +pride +prided +prides +pried +pries +priest +priestess +priestesses +priesthood +priestly +priests +prig +priggish +priggishly +priggishness +prim +primacy +primaeval +primal +primaries +primarily +primary +primate +primates +prime +primed +primeness +primer +primers +primes +primetime +primeval +priming +primitive +primitively +primitiveness +primitives +primly +primness +primogeniture +primordial +primrose +primroses +primus +prince +princelings +princely +princes +princess +princesses +principal +principalities +principality +principally +principals +principle +principled +principles +print +printable +printed +printer +printers +printing +printings +printmakers +printmaking +printout +printouts +prints +prions +prior +priories +priorities +prioritisation +prioritise +prioritised +prioritises +prioritising +priority +priors +priory +prise +prised +prises +prising +prism +prismatic +prisms +prison +prisoner +prisoners +prisons +prissy +pristine +privacy +private +privateer +privateers +privately +privates +privation +privations +privatisation +privatisations +privatise +privatised +privatises +privatising +privet +privilege +privileged +privileges +privileging +privy +prize +prized +prizer +prizes +prizewinner +prizing +pro +proactive +probabilist +probabilistic +probabilistically +probabilities +probability +probable +probably +probate +probation +probationary +probative +probe +probed +prober +probes +probing +probity +problem +problematic +problematical +problematically +problems +proboscis +procedural +procedurally +procedure +procedures +proceed +proceeded +proceeding +proceedings +proceeds +process +processable +processed +processes +processing +procession +processional +processions +processor +processors +proclaim +proclaimed +proclaimers +proclaiming +proclaims +proclamation +proclamations +proclivities +proclivity +procrastinate +procrastinating +procrastination +procrastinations +procrastinator +procrastinators +procreate +procreated +procreating +procreation +procreational +procreative +procreatory +proctor +proctorial +proctors +procurable +procure +procured +procurement +procurements +procures +procuring +prod +prodded +prodding +prodeo +prodigal +prodigality +prodigally +prodigies +prodigious +prodigiously +prodigy +prods +produce +produced +producer +producers +produces +producible +producing +product +production +productions +productive +productively +productivity +products +profanation +profane +profaned +profanely +profaneness +profanities +profanity +profess +professed +professedly +professes +professing +profession +professional +professionalisation +professionalised +professionalism +professionally +professionals +professions +professor +professorial +professors +professorship +professorships +proffer +proffered +proffering +proffers +proficiencies +proficiency +proficient +proficiently +profile +profiled +profiles +profiling +profit +profitability +profitable +profitably +profited +profiteering +profiteers +profiteroles +profiting +profitless +profits +profittaking +profligacy +profligate +profligately +proforma +proformas +profound +profounder +profoundest +profoundly +profundity +profuse +profusely +profuseness +profusion +progenitor +progenitors +progeny +progesterone +prognoses +prognosis +prognosticate +prognostication +prognostications +program +programmable +programmatic +programme +programmed +programmer +programmers +programmes +programming +programs +progress +progressed +progresses +progressing +progression +progressions +progressive +progressively +progressiveness +progressives +prohibit +prohibited +prohibiting +prohibition +prohibitionist +prohibitionists +prohibitions +prohibitive +prohibitively +prohibits +project +projected +projectile +projectiles +projecting +projection +projectionist +projections +projective +projectively +projector +projectors +projects +prokaryotes +prolactin +prolapse +prolapsed +proletarian +proletarianisation +proletarians +proletariat +proliferate +proliferated +proliferates +proliferating +proliferation +proliferative +prolific +prolifically +prolix +prologue +prologues +prolong +prolongation +prolonged +prolonging +prolongs +promenade +promenaded +promenader +promenaders +promenades +prominence +prominences +prominent +prominently +promiscuity +promiscuous +promiscuously +promise +promised +promises +promising +promisingly +promissory +promontories +promontory +promotable +promote +promoted +promoter +promoters +promotes +promoting +promotion +promotional +promotions +prompt +prompted +prompter +prompters +prompting +promptings +promptitude +promptly +promptness +prompts +promulgate +promulgated +promulgating +promulgation +promulgations +prone +proneness +prong +prongs +pronominal +pronoun +pronounce +pronounceable +pronounced +pronouncedly +pronouncement +pronouncements +pronounces +pronouncing +pronouns +pronto +pronunciation +pronunciations +proof +proofed +proofing +proofread +proofreader +proofreaders +proofreading +proofreads +proofs +prop +propaganda +propagandist +propagandists +propagate +propagated +propagates +propagating +propagation +propagator +propagators +propane +propel +propellant +propellants +propelled +propeller +propellers +propelling +propels +propensities +propensity +proper +properly +propertied +properties +property +prophecies +prophecy +prophesied +prophesies +prophesy +prophesying +prophet +prophetess +prophetic +prophetically +prophets +prophylactic +prophylactics +prophylaxis +propinquity +propionate +propitiate +propitiated +propitiating +propitiation +propitiatory +propitious +proponent +proponents +proportion +proportional +proportionality +proportionally +proportionate +proportionately +proportioned +proportions +proposal +proposals +propose +proposed +proposer +proposers +proposes +proposing +proposition +propositional +propositioned +propositioning +propositions +propound +propounded +propounding +propped +propping +proprietary +proprieties +proprietor +proprietorial +proprietorially +proprietors +proprietorship +proprietress +propriety +proprioceptive +props +propulsion +propulsive +propylene +pros +prosaic +prosaically +prosaist +proscenium +proscribe +proscribed +proscription +proscriptive +prose +prosecutable +prosecute +prosecuted +prosecutes +prosecuting +prosecution +prosecutions +prosecutor +prosecutorial +prosecutors +proselytise +proselytising +prosodic +prosody +prospect +prospecting +prospective +prospectively +prospector +prospectors +prospects +prospectus +prospectuses +prosper +prospered +prospering +prosperity +prosperous +prosperously +prospers +prostaglandin +prostaglandins +prostate +prostates +prostatic +prosthesis +prosthetic +prostitute +prostituted +prostitutes +prostituting +prostitution +prostrate +prostrated +prostrates +prostrating +prostration +protactinium +protagonist +protagonists +protea +protean +proteas +protease +protect +protected +protecting +protection +protectionism +protectionist +protectionists +protections +protective +protectively +protectiveness +protector +protectorate +protectorates +protectors +protects +protege +protegee +protegees +proteges +protein +proteins +protest +protestant +protestantism +protestants +protestation +protestations +protested +protester +protesters +protesting +protestor +protestors +protests +protists +protocol +protocols +proton +protons +protoplasm +protoplasmic +prototype +prototyped +prototypes +prototypical +prototyping +protozoa +protozoan +protozoans +protract +protracted +protractor +protractors +protrude +protruded +protrudes +protruding +protrusion +protrusions +protrusive +protuberance +protuberances +proud +prouder +proudest +proudly +provable +provably +prove +proved +proven +provenance +provence +proverb +proverbial +proverbially +proverbs +proves +providable +provide +provided +providence +provident +providential +providentially +provider +providers +provides +providing +province +provinces +provincial +provincialism +proving +provision +provisional +provisionally +provisioned +provisioning +provisions +provocation +provocations +provocative +provocatively +provoke +provoked +provoker +provokes +provoking +provokingly +provost +prow +prowess +prowl +prowled +prowler +prowlers +prowling +prowls +prows +proxies +proximal +proximally +proximate +proximately +proximity +proximo +proxy +prude +prudence +prudent +prudential +prudently +prudery +prudish +prudishness +prune +pruned +pruners +prunes +pruning +prunings +prurience +prurient +pruritus +prussia +prussian +prussic +pry +prying +pryings +psalm +psalmist +psalmody +psalms +psalter +psalters +psaltery +psephologist +pseudo +pseudonym +pseudonymous +pseudonyms +pseudopod +psoriasis +psyche +psychedelia +psychedelic +psychiatric +psychiatrist +psychiatrists +psychiatry +psychic +psychically +psychics +psycho +psychoanalyse +psychoanalysis +psychoanalyst +psychoanalysts +psychoanalytic +psychokinesis +psychokinetic +psycholinguistic +psycholinguistics +psycholinguists +psychological +psychologically +psychologies +psychologist +psychologists +psychology +psychometric +psychopath +psychopathic +psychopathology +psychopaths +psychoses +psychosis +psychosocial +psychosomatic +psychotherapist +psychotherapists +psychotherapy +psychotic +psychotically +psychotics +ptarmigan +ptarmigans +pterodactyl +pterosaurs +ptolemy +pub +puberty +pubescent +pubic +public +publican +publicans +publication +publications +publicise +publicised +publicises +publicising +publicist +publicists +publicity +publicly +publish +publishable +published +publisher +publishers +publishes +publishing +pubs +pudding +puddings +puddle +puddles +puerile +puerility +puerperal +puff +puffballs +puffed +puffer +puffin +puffiness +puffing +puffins +puffs +puffy +pug +pugilist +pugilistic +pugnacious +pugnaciously +pugnacity +pugs +puissant +puke +puking +pulchritude +puling +pull +pulled +puller +pullets +pulley +pulleys +pulling +pullover +pullovers +pulls +pulmonary +pulp +pulped +pulping +pulpit +pulpits +pulps +pulpy +pulsar +pulsars +pulsate +pulsated +pulsates +pulsating +pulsation +pulsations +pulse +pulsed +pulses +pulsing +pulverisation +pulverise +pulverised +pulverising +puma +pumas +pumice +pummel +pummelled +pummelling +pummels +pump +pumped +pumping +pumpkin +pumpkins +pumps +pun +punch +punchable +punchbowl +punchcard +punched +puncher +punches +punching +punchline +punchlines +punchy +punctate +punctilious +punctiliously +punctual +punctuality +punctually +punctuate +punctuated +punctuates +punctuating +punctuation +punctuational +punctuations +puncture +punctured +punctures +puncturing +pundit +pundits +pungency +pungent +pungently +punier +puniest +punish +punishable +punished +punishes +punishing +punishment +punishments +punitive +punitively +punk +punks +punky +punned +punnet +punning +puns +punster +punt +punted +punter +punters +punting +punts +puny +pup +pupa +pupae +pupal +pupated +pupates +pupating +pupil +pupillage +pupils +puppet +puppeteer +puppetry +puppets +puppies +puppy +puppyhood +pups +purblind +purchasable +purchase +purchased +purchaser +purchasers +purchases +purchasing +purdah +pure +puree +purees +purely +pureness +purer +purest +purgative +purgatorial +purgatory +purge +purged +purges +purging +purgings +purification +purified +purifier +purifies +purify +purifying +purims +purines +purist +purists +puritan +puritanical +puritanism +puritans +purities +purity +purl +purlieus +purling +purlins +purloin +purloined +purls +purple +purples +purplish +purport +purported +purportedly +purporting +purports +purpose +purposed +purposeful +purposefully +purposefulness +purposeless +purposelessly +purposely +purposes +purposing +purposive +purr +purred +purring +purrs +purse +pursed +purser +purses +pursing +pursuance +pursuant +pursue +pursued +pursuer +pursuers +pursues +pursuing +pursuit +pursuits +purvey +purveyance +purveyed +purveying +purveyor +purveyors +purview +pus +push +pushable +pushed +pusher +pushers +pushes +pushier +pushing +pushovers +pushups +pushy +puss +pussy +pussycat +pussyfooting +pustular +pustule +pustules +put +putative +putatively +putput +putrefaction +putrefy +putrefying +putrescent +putrid +putridity +puts +putsch +putt +putted +putter +putters +putti +putting +putts +putty +puzzle +puzzled +puzzlement +puzzler +puzzles +puzzling +puzzlingly +pygmies +pygmy +pyjama +pyjamas +pylon +pylons +pyracantha +pyramid +pyramidal +pyramids +pyre +pyres +pyridine +pyrite +pyrites +pyrolyse +pyrolysis +pyromaniac +pyromaniacs +pyrotechnic +pyrotechnics +pyroxene +pyroxenes +python +pythons +qatar +qua +quack +quacked +quacking +quackish +quacks +quadrangle +quadrangles +quadrangular +quadrant +quadrants +quadratic +quadratically +quadratics +quadrature +quadratures +quadrilateral +quadrilaterals +quadrille +quadrilles +quadripartite +quadrophonic +quadruped +quadrupeds +quadruple +quadrupled +quadruples +quadruplets +quadruplicate +quadrupling +quadruply +quadrupole +quaff +quaffed +quaffing +quagga +quaggas +quagmire +quagmires +quail +quailed +quails +quaint +quainter +quaintly +quaintness +quake +quaked +quaker +quakers +quakes +quaking +qualification +qualifications +qualified +qualifier +qualifiers +qualifies +qualify +qualifying +qualitative +qualitatively +qualities +quality +qualm +qualms +quantifiable +quantification +quantified +quantifier +quantifiers +quantifies +quantify +quantifying +quantisation +quantise +quantised +quantitative +quantitatively +quantities +quantity +quantum +quarantine +quarantined +quark +quarks +quarrel +quarrelled +quarrelling +quarrels +quarrelsome +quarried +quarries +quarry +quarrying +quarrymen +quart +quarter +quarterback +quartered +quartering +quarterly +quartermaster +quarters +quarterstaff +quarterstaffs +quartet +quartets +quartic +quartics +quartile +quartiles +quarto +quarts +quartz +quartzite +quasar +quasars +quash +quashed +quashing +quasi +quasilinear +quaternary +quaternion +quaternions +quatrain +quatrains +quaver +quavered +quavering +quavers +quay +quays +quayside +queasiness +queasy +quebec +queen +queenly +queens +queer +queerest +queerly +quell +quelled +quelling +quells +quench +quenched +quencher +quenchers +quenches +quenching +queried +queries +quern +querulous +querulously +querulousness +query +querying +quest +questing +question +questionable +questionably +questioned +questioner +questioners +questioning +questioningly +questionings +questionnaire +questionnaires +questions +quests +queue +queued +queueing +queues +queuing +quibble +quibbles +quibbling +quiche +quiches +quick +quicken +quickened +quickening +quickens +quicker +quickest +quicklime +quickly +quickness +quicksand +quicksands +quicksilver +quickwitted +quid +quids +quiesce +quiesced +quiescence +quiescent +quiet +quieted +quieten +quietened +quietening +quietens +quieter +quietest +quieting +quietly +quietness +quiets +quietus +quiff +quill +quills +quilt +quilted +quilting +quilts +quince +quincentenary +quinces +quinine +quinquennial +quintessence +quintessential +quintessentially +quintet +quintets +quintic +quintillion +quintuple +quip +quipped +quipper +quips +quire +quirk +quirkier +quirkiest +quirkiness +quirks +quirky +quisling +quit +quite +quits +quitted +quitter +quitting +quiver +quivered +quivering +quiveringly +quivers +quixotic +quiz +quizzed +quizzes +quizzical +quizzically +quizzing +quoins +quoits +quondam +quorate +quorum +quota +quotable +quotas +quotation +quotations +quote +quoted +quoter +quotes +quotidian +quotient +quotients +quoting +quovadis +rabat +rabats +rabbi +rabbis +rabbit +rabbiting +rabbits +rabble +rabid +rabidly +rabies +raccoon +raccoons +race +racecourse +racecourses +raced +racegoers +racehorse +racehorses +racer +racers +races +racetrack +rachis +racial +racialism +racialist +racialists +racially +racier +raciest +racily +racing +racings +racism +racist +racists +rack +racked +racket +racketeering +rackets +racking +racks +raconteur +racoon +racquet +racquets +racy +rad +radar +radars +radial +radially +radials +radian +radiance +radiancy +radians +radiant +radiantly +radiate +radiated +radiates +radiating +radiation +radiations +radiative +radiatively +radiator +radiators +radical +radicalism +radically +radicals +radices +radii +radio +radioactive +radioactively +radioactivity +radioastronomical +radiocarbon +radioed +radiogalaxies +radiogalaxy +radiogram +radiograph +radiographer +radiographers +radiographic +radiographs +radiography +radioing +radiological +radiologist +radiologists +radiology +radiometric +radionuclide +radios +radiotherapy +radish +radishes +radium +radius +radix +radon +raffia +raffle +raffled +raffles +raft +rafter +rafters +rafting +raftman +rafts +raftsman +rag +ragamuffin +ragamuffins +ragbag +rage +raged +rages +ragged +raggedly +raging +ragout +rags +ragstoriches +ragtime +ragwort +raid +raided +raider +raiders +raiding +raids +rail +railed +railes +railing +railings +raillery +railroad +rails +railway +railwayman +railwaymen +railways +raiment +rain +rainbow +rainbows +raincloud +rainclouds +raincoat +raincoats +raindrop +raindrops +rained +rainfall +rainforest +rainforests +rainier +rainiest +raining +rainless +rainout +rains +rainstorm +rainstorms +rainswept +rainwater +rainy +raise +raised +raiser +raises +raisin +raising +raisins +raj +rajah +rake +raked +rakes +raking +rakish +rallied +rallies +rally +rallying +ram +ramble +rambled +rambler +ramblers +rambles +rambling +ramblings +ramification +ramifications +ramified +ramifies +ramify +rammed +rammer +ramming +ramp +rampage +rampaged +rampages +rampaging +rampant +rampantly +rampart +ramparts +ramped +ramping +ramps +ramrod +rams +ramshackle +ran +ranch +rancher +ranchers +ranches +ranching +rancid +rancorous +rancour +rand +random +randomisation +randomise +randomised +randomising +randomly +randomness +rands +randy +rang +range +ranged +ranger +rangers +ranges +ranging +rangy +rani +ranis +rank +ranked +ranker +rankers +rankest +ranking +rankings +rankle +rankled +rankles +rankling +rankness +ranks +ransack +ransacked +ransacking +ransom +ransomed +ransoming +ransoms +rant +ranted +ranter +ranters +ranting +rantings +rants +rap +rapacious +rapacity +rape +raped +rapes +rapeseed +rapid +rapidity +rapidly +rapids +rapier +rapiers +rapine +raping +rapist +rapists +rapped +rapping +rapport +rapporteur +rapporteurs +rapports +rapprochement +raps +rapt +raptor +raptors +rapture +raptures +rapturous +rapturously +rare +rarebit +rarefaction +rarefactions +rarefied +rarely +rareness +rarer +rarest +raring +rarities +rarity +rascal +rascally +rascals +rased +rash +rasher +rashers +rashes +rashest +rashly +rashness +rasing +rasp +raspberries +raspberry +rasped +rasper +rasping +rasps +raspy +raster +rasters +rat +ratatouille +rate +rated +ratepayer +ratepayers +rater +rates +rather +ratification +ratifications +ratified +ratifier +ratifies +ratify +ratifying +rating +ratings +ratio +ratiocination +ration +rational +rationale +rationales +rationalisation +rationalisations +rationalise +rationalised +rationalising +rationalism +rationalist +rationalistic +rationalists +rationalities +rationality +rationally +rationed +rationing +rations +ratios +ratlike +ratrace +rats +rattier +rattle +rattled +rattler +rattles +rattlesnake +rattlesnakes +rattling +ratty +raucous +raucously +ravage +ravaged +ravages +ravaging +rave +raved +ravel +ravelled +ravelling +ravels +raven +ravening +ravenous +ravenously +ravens +raver +ravers +raves +ravine +ravines +raving +ravingly +ravings +ravioli +ravish +ravished +ravisher +ravishes +ravishing +ravishingly +raw +rawest +rawness +ray +rayed +rayon +rays +raze +razed +razes +razing +razor +razorbills +razorblades +razoring +razors +razorsharp +razzmatazz +re +reabsorb +reabsorbed +reabsorption +reaccept +reaccessed +reach +reachable +reached +reaches +reachieved +reaching +reacquainting +reacquired +reacquisition +react +reactant +reactants +reacted +reacting +reaction +reactionaries +reactionary +reactions +reactivate +reactivated +reactivates +reactivating +reactivation +reactive +reactivities +reactivity +reactor +reactors +reacts +read +readability +readable +readably +readapt +reader +readers +readership +readerships +readied +readier +readies +readiest +readily +readiness +reading +readings +readjust +readjusted +readjusting +readjustment +readjustments +readmission +readmit +readmits +readmitted +reads +ready +readying +readymade +reaffirm +reaffirmation +reaffirmed +reaffirming +reaffirms +reafforestation +reagent +reagents +real +realign +realigned +realigning +realignment +realignments +realigns +realisable +realisation +realisations +realise +realised +realises +realising +realism +realist +realistic +realistically +realists +realities +reality +reallife +reallocate +reallocated +reallocates +reallocating +reallocation +really +realm +realms +realness +realpolitik +reals +realty +ream +reams +reanimated +reanimating +reap +reaped +reaper +reapers +reaping +reappear +reappearance +reappeared +reappearing +reappears +reapplied +reapply +reapplying +reappoint +reappointed +reappointment +reappraisal +reappraised +reappraising +reaps +rear +reared +rearer +rearguard +rearing +rearm +rearmament +rearmed +rearming +rearms +rearrange +rearranged +rearrangement +rearrangements +rearranges +rearranging +rears +rearview +rearward +reason +reasonable +reasonableness +reasonably +reasoned +reasoner +reasoners +reasoning +reasonless +reasons +reassemble +reassembled +reassembling +reassembly +reassert +reasserted +reasserting +reassertion +reasserts +reassess +reassessed +reassessment +reassessments +reassign +reassigned +reassigning +reassignment +reassigns +reassume +reassuming +reassurance +reassurances +reassure +reassured +reassures +reassuring +reassuringly +reattachment +reattempt +reawaken +reawakened +reawakening +rebalanced +rebate +rebates +rebel +rebelled +rebelling +rebellion +rebellions +rebellious +rebelliously +rebelliousness +rebels +rebind +rebirth +rebirths +rebook +reboot +rebooted +reborn +rebound +rebounded +rebounding +rebounds +rebuff +rebuffed +rebuffing +rebuffs +rebuild +rebuilding +rebuilds +rebuilt +rebuke +rebuked +rebukes +rebuking +reburial +reburied +rebury +rebus +rebut +rebuttable +rebuttal +rebuttals +rebutted +rebutting +recalcitrance +recalcitrant +recalculate +recalculated +recalculation +recalibrate +recalibrating +recalibration +recall +recalled +recalling +recalls +recant +recantation +recanted +recanting +recants +recap +recapitalisation +recapitulate +recapitulates +recapitulation +recapped +recaps +recapture +recaptured +recapturing +recast +recasting +recasts +recede +receded +recedes +receding +receipt +receipted +receipts +receivable +receive +received +receiver +receivers +receivership +receives +receiving +recency +recension +recent +recently +receptacle +receptacles +reception +receptionist +receptionists +receptions +receptive +receptiveness +receptivity +receptor +receptors +recess +recessed +recesses +recession +recessional +recessionary +recessions +recessive +recharge +rechargeable +recharged +recharger +recharges +recharging +recheck +rechecked +rechecking +recidivism +recidivist +recidivists +recipe +recipes +recipient +recipients +reciprocal +reciprocally +reciprocals +reciprocate +reciprocated +reciprocating +reciprocation +reciprocity +recirculate +recirculated +recirculating +recirculation +recital +recitals +recitation +recitations +recitative +recitatives +recite +recited +recites +reciting +reckless +recklessly +recklessness +reckon +reckoned +reckoner +reckoning +reckons +reclaim +reclaimable +reclaimed +reclaimer +reclaiming +reclaims +reclamation +reclamations +reclassification +reclassified +reclassifies +reclassify +reclassifying +recline +reclined +recliner +reclines +reclining +reclothe +recluse +recluses +reclusive +recode +recoded +recodes +recoding +recognisable +recognisably +recognisances +recognise +recognised +recogniser +recognisers +recognises +recognising +recognition +recognitions +recoil +recoiled +recoiling +recoils +recollect +recollected +recollecting +recollection +recollections +recollects +recombinant +recombinants +recombination +recombine +recombined +recombines +recombining +recommence +recommenced +recommencement +recommences +recommencing +recommend +recommendable +recommendation +recommendations +recommended +recommending +recommends +recommissioning +recompense +recompensed +recompenses +recompilation +recompilations +recompile +recompiled +recompiling +recomputable +recompute +recomputed +recomputes +recomputing +reconcilable +reconcile +reconciled +reconcilement +reconciles +reconciliation +reconciliations +reconciling +recondite +reconditioned +reconditioning +reconfigurable +reconfiguration +reconfigurations +reconfigure +reconfigured +reconfigures +reconfiguring +reconnaissance +reconnect +reconnected +reconnecting +reconnection +reconnoitre +reconnoitred +reconnoitring +reconquer +reconquest +reconsider +reconsideration +reconsidered +reconsidering +reconsiders +reconstitute +reconstituted +reconstitutes +reconstituting +reconstitution +reconstruct +reconstructed +reconstructing +reconstruction +reconstructions +reconstructs +reconsult +reconsulted +reconsulting +recontribute +reconvene +reconvened +reconvening +reconversion +reconvert +reconverted +recopied +recopy +record +recordable +recordbreaking +recorded +recorder +recorders +recording +recordings +recordist +recordists +records +recount +recounted +recounting +recounts +recoup +recouped +recouping +recouple +recoups +recourse +recover +recoverability +recoverable +recovered +recoveries +recovering +recovers +recovery +recreate +recreated +recreates +recreating +recreation +recreational +recreations +recriminate +recrimination +recriminations +recruit +recruited +recruiter +recruiters +recruiting +recruitment +recruits +recrystallisation +rectal +rectangle +rectangles +rectangular +rectifiable +rectification +rectified +rectifier +rectifies +rectify +rectifying +rectilinear +rectitude +recto +rector +rectors +rectory +rectrix +rectum +rectums +recumbent +recuperate +recuperated +recuperates +recuperating +recuperation +recuperative +recur +recured +recures +recuring +recurred +recurrence +recurrences +recurrent +recurrently +recurring +recurs +recursion +recursions +recursive +recursively +recyclable +recycle +recycled +recyclers +recycles +recycling +red +redaction +redblooded +redbreast +redcoats +redcross +redden +reddened +reddening +reddens +redder +reddest +reddish +redeclaration +redecorated +redecorating +redecoration +rededication +redeem +redeemable +redeemed +redeemer +redeeming +redeems +redefine +redefined +redefiner +redefines +redefining +redefinition +redefinitions +redeliver +redelivery +redemption +redemptions +redemptive +redeploy +redeployed +redeploying +redeployment +redeposited +redeposition +redesign +redesigned +redesigning +redesigns +redevelop +redeveloped +redeveloping +redevelopment +redfaced +redhanded +redhead +redheaded +redheads +redial +redialling +redirect +redirected +redirecting +redirection +redirects +rediscover +rediscovered +rediscoveries +rediscovering +rediscovers +rediscovery +rediscussed +redisplay +redisplayed +redistributable +redistribute +redistributed +redistributes +redistributing +redistribution +redistributions +redistributive +redneck +redness +redo +redoing +redolent +redone +redouble +redoubled +redoubling +redoubt +redoubtable +redoubts +redound +redounded +redox +redraft +redrafted +redrafting +redraw +redrawing +redrawn +redraws +redress +redressed +redressing +reds +redsea +redshift +redshifts +redstarts +redtape +reduce +reduced +reducer +reducers +reduces +reducibility +reducible +reducing +reduction +reductionism +reductionist +reductionists +reductions +reductive +redundancies +redundancy +redundant +redundantly +redwood +reed +reeds +reef +reefed +reefing +reefs +reek +reeked +reeking +reeks +reel +reelects +reeled +reeling +reels +ref +refer +referable +referee +refereed +refereeing +referees +reference +referenced +referencer +references +referencing +referenda +referendum +referendums +referent +referential +referentially +referents +referral +referrals +referred +referring +refers +refile +refiled +refiling +refill +refillable +refilled +refilling +refillings +refills +refinance +refinanced +refinancing +refine +refined +refinement +refinements +refiner +refineries +refiners +refinery +refines +refining +refinish +refit +refits +refitted +refitting +reflation +reflect +reflectance +reflected +reflecting +reflection +reflectional +reflections +reflective +reflectively +reflectiveness +reflectivity +reflector +reflectors +reflects +reflex +reflexes +reflexion +reflexions +reflexive +reflexively +reflexiveness +reflexivity +reflexology +refloat +reflooring +reflux +refluxed +refluxing +refocus +refocused +refocuses +refocusing +refocussed +refocusses +refocussing +refolded +refolding +reforestation +reform +reformable +reformat +reformation +reformations +reformative +reformatted +reformatting +reformed +reformer +reformers +reforming +reformist +reformists +reforms +reformulate +reformulated +reformulates +reformulating +reformulation +reformulations +refract +refracted +refracting +refraction +refractions +refractive +refractors +refractory +refracts +refrain +refrained +refraining +refrains +refreeze +refresh +refreshable +refreshed +refresher +refreshes +refreshing +refreshingly +refreshment +refreshments +refrigerant +refrigerants +refrigerate +refrigerated +refrigeration +refrigerator +refrigerators +refs +refuel +refuelled +refuelling +refuels +refuge +refugee +refugees +refuges +refund +refundable +refunded +refunding +refunds +refurbish +refurbished +refurbishing +refurbishment +refurbishments +refusal +refusals +refuse +refused +refuseniks +refuses +refusing +refutable +refutation +refutations +refute +refuted +refutes +refuting +regain +regained +regaining +regains +regal +regale +regaled +regales +regalia +regaling +regality +regally +regard +regarded +regarding +regardless +regards +regatta +regattas +regelate +regency +regenerate +regenerated +regenerates +regenerating +regeneration +regenerations +regenerative +regent +regents +reggae +regicide +regime +regimen +regimens +regiment +regimental +regimentation +regimented +regiments +regimes +regina +reginas +region +regional +regionalisation +regionalism +regionally +regions +register +registered +registering +registers +registrable +registrar +registrars +registration +registrations +registries +registry +regrading +regress +regressed +regresses +regressing +regression +regressions +regressive +regret +regretful +regretfully +regrets +regrettable +regrettably +regretted +regretting +regroup +regrouped +regrouping +regrow +regrowth +regular +regularisation +regularise +regularised +regularities +regularity +regularly +regulars +regulate +regulated +regulates +regulating +regulation +regulations +regulative +regulator +regulators +regulatory +regurgitate +regurgitated +regurgitating +regurgitation +rehabilitate +rehabilitated +rehabilitating +rehabilitation +rehash +rehashed +rehashes +rehashing +reheard +rehearing +rehears +rehearsal +rehearsals +rehearse +rehearsed +rehearses +rehearsing +reheat +reheated +reheating +reheats +rehouse +rehoused +rehousing +rehydrate +reich +reification +reify +reign +reigned +reigning +reigns +reimburse +reimbursed +reimbursement +reimburses +reimbursing +reimplementation +reimplemented +reimplementing +reimporting +reimpose +reimposed +rein +reincarnate +reincarnated +reincarnating +reincarnation +reincarnations +reindeer +reined +reinfection +reinforce +reinforced +reinforcement +reinforcements +reinforces +reinforcing +reining +reinitialisation +reinitialise +reinitialised +reinitialising +reins +reinsert +reinserted +reinstall +reinstalled +reinstalling +reinstate +reinstated +reinstatement +reinstates +reinstating +reinsurance +reintegration +reinterpret +reinterpretation +reinterpreted +reinterpreting +reintroduce +reintroduced +reintroduces +reintroducing +reintroduction +reintroductions +reinvent +reinvented +reinventing +reinvention +reinventions +reinvents +reinvest +reinvested +reinvestigation +reinvestment +reinvigorate +reinvigorated +reissue +reissued +reissues +reissuing +reiterate +reiterated +reiterates +reiterating +reiteration +reject +rejected +rejecting +rejection +rejections +rejects +rejoice +rejoiced +rejoices +rejoicing +rejoicings +rejoin +rejoinder +rejoinders +rejoined +rejoining +rejoins +rejustified +rejuvenate +rejuvenated +rejuvenating +rejuvenation +rejuvenations +rejuvenatory +rekindle +rekindled +relabel +relabelled +relabelling +relabellings +relaid +relapse +relapsed +relapses +relapsing +relate +related +relatedness +relates +relating +relation +relational +relationally +relations +relationship +relationships +relative +relatively +relatives +relativism +relativist +relativistic +relativistically +relativists +relativity +relator +relaunch +relaunched +relaunching +relax +relaxant +relaxants +relaxation +relaxations +relaxed +relaxes +relaxing +relaxingly +relay +relayed +relaying +relays +relearn +relearning +releasable +release +released +releases +releasing +relegate +relegated +relegates +relegating +relegation +relent +relented +relenting +relentless +relentlessly +relentlessness +relents +relevance +relevancy +relevant +relevantly +reliabilities +reliability +reliable +reliably +reliance +reliant +relic +relics +relict +relicts +relied +relief +reliefs +relies +relieve +relieved +relieves +relieving +relight +relighting +religion +religions +religiosity +religious +religiously +religiousness +relined +relink +relinked +relinking +relinquish +relinquished +relinquishes +relinquishing +reliquaries +reliquary +relish +relished +relishes +relishing +relit +relive +relived +relives +reliving +reload +reloaded +reloading +reloads +relocatable +relocate +relocated +relocates +relocating +relocation +relocations +relocked +reluctance +reluctant +reluctantly +rely +relying +rem +remade +remain +remainder +remaindered +remaindering +remainders +remained +remaining +remains +remake +remakes +remaking +remand +remanded +remands +remap +remaps +remark +remarkable +remarkably +remarked +remarking +remarks +remarriage +remarried +remarry +remaster +remastered +remastering +remasters +rematch +rematching +rematerialised +remediable +remedial +remedied +remedies +remedy +remedying +remember +remembered +remembering +remembers +remembrance +remembrances +remind +reminded +reminder +reminders +reminding +reminds +reminisce +reminisced +reminiscence +reminiscences +reminiscent +reminiscently +reminisces +reminiscing +remiss +remission +remissions +remit +remits +remittal +remittance +remittances +remitted +remitting +remix +remixed +remixes +remnant +remnants +remodel +remodelled +remodelling +remonstrance +remonstrate +remonstrated +remonstrating +remonstration +remonstrations +remorse +remorseful +remorsefully +remorseless +remorselessly +remote +remotely +remoteness +remoter +remotest +remould +remount +remounted +remounts +removable +removal +removals +remove +removed +remover +removers +removes +removing +remunerate +remunerated +remuneration +remunerative +remus +renaissance +renal +rename +renamed +renames +renaming +render +rendered +rendering +renderings +renders +rendezvous +rendezvoused +rending +rendition +renditions +rends +renegade +renegades +renege +reneged +reneging +renegotiate +renegotiated +renegotiating +renegotiation +renew +renewable +renewal +renewals +renewed +renewing +renews +renormalisation +renounce +renounced +renouncement +renounces +renouncing +renovate +renovated +renovating +renovation +renovations +renown +renowned +rent +rental +rentals +rented +renter +renters +rentiers +renting +rents +renumber +renumbered +renumbering +renunciation +renunciations +reoccupation +reoccupied +reoccupy +reoccupying +reoccur +reopen +reopened +reopening +reopens +reorder +reordered +reordering +reorders +reorganisation +reorganisations +reorganise +reorganised +reorganises +reorganising +reorientated +reorientates +reorientation +rep +repack +repackage +repackaged +repacked +repacking +repaid +repaint +repainted +repainting +repair +repairable +repaired +repairer +repairers +repairing +repairman +repairs +repaper +reparation +reparations +repartee +repartition +repartitioned +repartitioning +repast +repasts +repatriate +repatriated +repatriating +repatriation +repatriations +repay +repayable +repaying +repayment +repayments +repays +repeal +repealed +repealing +repeals +repeat +repeatability +repeatable +repeatably +repeated +repeatedly +repeater +repeaters +repeating +repeats +repel +repelled +repellent +repelling +repellingly +repels +repent +repentance +repentant +repentantly +repented +repenting +repents +repercussion +repercussions +repertoire +repertoires +repertory +repetition +repetitions +repetitious +repetitive +repetitively +repetitiveness +rephrase +rephrased +rephrases +rephrasing +repine +repined +repining +replace +replaceable +replaced +replacement +replacements +replaces +replacing +replanning +replant +replanted +replanting +replay +replayed +replaying +replays +replenish +replenished +replenishing +replenishment +replete +replica +replicable +replicas +replicate +replicated +replicates +replicating +replication +replications +replicator +replicators +replied +replier +repliers +replies +replotted +replug +replugged +replugging +reply +replying +repopulate +repopulated +report +reportable +reportage +reported +reportedly +reporter +reporters +reporting +reports +repose +reposed +reposes +reposing +reposition +repositioned +repositioning +repositions +repositories +repository +repossess +repossessed +repossessing +repossession +repossessions +reprehend +reprehensible +represent +representable +representation +representational +representations +representative +representativeness +representatives +represented +representing +represents +repress +repressed +represses +repressing +repression +repressions +repressive +repressively +reprieve +reprieved +reprimand +reprimanded +reprimanding +reprimands +reprint +reprinted +reprinting +reprints +reprisal +reprisals +reprise +reproach +reproached +reproaches +reproachful +reproachfully +reproachfulness +reproaching +reprobate +reprobates +reprocess +reprocessed +reprocessing +reproduce +reproduced +reproduces +reproducibility +reproducible +reproducibly +reproducing +reproduction +reproductions +reproductive +reproductively +reprogram +reprogrammable +reprogramme +reprogrammed +reprogramming +reprojected +reproof +reproofs +reprove +reproved +reprovingly +reps +reptile +reptiles +reptilian +reptilians +republic +republican +republicanism +republicans +republication +republics +republish +republished +republishes +republishing +repudiate +repudiated +repudiates +repudiating +repudiation +repugnance +repugnant +repulse +repulsed +repulsing +repulsion +repulsions +repulsive +repulsively +repulsiveness +repurchase +reputable +reputably +reputation +reputations +repute +reputed +reputedly +reputes +request +requested +requester +requesting +requests +requiem +requiems +require +required +requirement +requirements +requires +requiring +requisite +requisites +requisition +requisitioned +requisitioning +requisitions +requital +requite +requited +reran +reread +rereading +rereads +reregistration +rerolled +reroute +rerouted +rerouteing +reroutes +rerouting +rerun +rerunning +reruns +resale +rescale +rescaled +rescales +rescaling +rescan +rescanned +rescanning +rescans +reschedule +rescheduled +rescheduling +rescind +rescinded +rescinding +rescue +rescued +rescuer +rescuers +rescues +rescuing +resea +resealed +research +researched +researcher +researchers +researches +researching +reseated +reseeding +reselect +reselected +reselection +resell +reseller +resellers +reselling +resemblance +resemblances +resemble +resembled +resembles +resembling +resend +resending +resent +resented +resentful +resentfully +resenting +resentment +resentments +resents +reservation +reservations +reserve +reserved +reserver +reserves +reserving +reservists +reservoir +reservoirs +reset +resets +resettable +resetting +resettle +resettled +resettlement +resettling +reshape +reshaped +reshapes +reshaping +resharpen +resharpened +resharpening +reshow +reshowing +reshuffle +reshuffled +reshuffles +reshuffling +reside +resided +residence +residences +residency +resident +residential +residents +resides +residing +residual +residuals +residuary +residue +residues +residuum +resign +resignal +resignation +resignations +resigned +resignedly +resigning +resigns +resilience +resilient +resin +resinous +resins +resiny +resist +resistance +resistances +resistant +resisted +resistible +resisting +resistive +resistively +resistivity +resistor +resistors +resists +resit +resiting +resits +resize +resizing +resold +resolute +resolutely +resolution +resolutions +resolvability +resolvable +resolve +resolved +resolvent +resolver +resolvers +resolves +resolving +resonance +resonances +resonant +resonantly +resonate +resonated +resonates +resonating +resonator +resonators +resort +resorted +resorting +resorts +resound +resounded +resounding +resoundingly +resounds +resource +resourced +resourceful +resourcefulness +resources +resourcing +respecified +respecify +respect +respectability +respectable +respectably +respected +respectful +respectfully +respecting +respective +respectively +respects +respiration +respirator +respirators +respiratory +respire +respired +respite +resplendent +respond +responded +respondent +respondents +responder +responders +responding +responds +response +responses +responsibilities +responsibility +responsible +responsibly +responsive +responsively +responsiveness +respray +resprayed +resprays +rest +restart +restartable +restarted +restarting +restarts +restate +restated +restatement +restates +restating +restaurant +restaurants +restaurateur +restaurateurs +rested +restful +restfulness +resting +restitution +restive +restiveness +restless +restlessly +restlessness +restock +restocking +restoration +restorations +restorative +restore +restored +restorer +restorers +restores +restoring +restrain +restrained +restraining +restrains +restraint +restraints +restrict +restricted +restricting +restriction +restrictions +restrictive +restrictively +restricts +restroom +restructure +restructured +restructures +restructuring +rests +restyled +resubmission +resubmissions +resubmit +resubmits +resubmitted +resubmitting +resubstitute +result +resultant +resulted +resulting +results +resume +resumed +resumes +resuming +resumption +resupply +resurface +resurfaced +resurfacing +resurgence +resurgent +resurrect +resurrected +resurrecting +resurrection +resurrects +resuscitate +resuscitated +resuscitating +resuscitation +retail +retailed +retailer +retailers +retailing +retails +retain +retained +retainer +retainers +retaining +retains +retake +retaken +retakes +retaking +retaliate +retaliated +retaliates +retaliating +retaliation +retaliatory +retard +retardant +retardation +retarded +retarding +retards +retch +retched +retching +retell +retelling +retention +retentions +retentive +retentiveness +retentivity +retest +retested +retesting +retests +rethink +rethinking +rethought +reticence +reticent +reticular +reticulated +reticulation +reticule +reticules +reticulum +retied +retina +retinal +retinas +retinitis +retinue +retinues +retire +retired +retiree +retirement +retirements +retires +retiring +retitle +retitled +retitling +retold +retook +retort +retorted +retorting +retorts +retouch +retouched +retouching +retrace +retraced +retraces +retracing +retract +retractable +retracted +retracting +retraction +retractions +retracts +retrain +retrained +retraining +retral +retransmission +retransmissions +retransmit +retransmits +retransmitted +retransmitting +retread +retreads +retreat +retreated +retreating +retreats +retrench +retrenchment +retrial +retribution +retributive +retried +retries +retrievable +retrieval +retrievals +retrieve +retrieved +retriever +retrievers +retrieves +retrieving +retro +retroactive +retroactively +retrofit +retrofitted +retrofitting +retrograde +retrogressive +retrospect +retrospection +retrospective +retrospectively +retrospectives +retroviruses +retry +retrying +retsina +retted +retune +retuning +return +returnable +returned +returnees +returning +returns +retype +retyped +retypes +retyping +reunification +reunified +reunify +reunion +reunions +reunite +reunited +reunites +reuniting +reusable +reuse +reused +reuses +reusing +rev +revaluation +revaluations +revalue +revalued +revalues +revamp +revamped +revamping +revamps +revanchist +reveal +revealable +revealed +revealing +revealingly +reveals +reveille +revel +revelation +revelations +revelatory +revelled +reveller +revellers +revelling +revelries +revelry +revels +revenant +revenge +revenged +revengeful +revenges +revenging +revenue +revenues +reverberant +reverberate +reverberated +reverberates +reverberating +reverberation +reverberations +revere +revered +reverence +reverend +reverent +reverential +reverentially +reverently +reveres +reverie +reveries +revering +reversal +reversals +reverse +reversed +reverser +reverses +reversibility +reversible +reversibly +reversing +reversion +revert +reverted +reverting +reverts +review +reviewable +reviewed +reviewer +reviewers +reviewing +reviews +revile +reviled +reviling +revisable +revisal +revise +revised +reviser +revises +revising +revision +revisionary +revisionism +revisionist +revisionists +revisions +revisit +revisited +revisiting +revisits +revitalisation +revitalise +revitalised +revitalising +revival +revivalism +revivalist +revivalists +revivals +revive +revived +reviver +revives +revivify +revivifying +reviving +revocable +revocation +revocations +revoke +revoked +revoker +revokers +revokes +revoking +revolt +revolted +revolting +revoltingly +revolts +revolution +revolutionaries +revolutionary +revolutionise +revolutionised +revolutionises +revolutionising +revolutions +revolve +revolved +revolver +revolvers +revolves +revolving +revs +revue +revues +revulsion +revved +revving +reward +rewarded +rewarding +rewards +reweighed +rewind +rewindable +rewinding +rewinds +rewire +rewired +rewiring +reword +reworded +rewording +rewordings +rework +reworked +reworking +reworks +rewound +rewrap +rewritable +rewrite +rewrites +rewriting +rewritings +rewritten +rewrote +rhapsodic +rhapsodical +rhapsodies +rhapsody +rhea +rhein +rhenium +rheological +rheology +rheostat +rhesus +rhetoric +rhetorical +rhetorically +rhetorician +rhetoricians +rheumatic +rheumatics +rheumatism +rheumatoid +rheumatology +rhine +rhinestone +rhinitis +rhino +rhinoceros +rhinoceroses +rhizome +rho +rhodesia +rhodium +rhododendron +rhododendrons +rhombic +rhomboids +rhombus +rhombuses +rhubarb +rhumbas +rhyme +rhymed +rhymer +rhymes +rhyming +rhythm +rhythmic +rhythmical +rhythmically +rhythms +ria +rial +rials +rialto +rib +ribald +ribaldry +ribbed +ribbing +ribbon +ribbons +ribcage +riboflavin +ribonucleic +ribosomal +ribosome +ribosomes +ribs +rice +rich +richer +riches +richest +richly +richness +rick +rickets +rickety +ricking +ricks +ricksha +rickshas +rickshaw +rickshaws +ricochet +ricocheted +ricocheting +rid +riddance +ridden +ridding +riddle +riddled +riddles +riddling +ride +rider +riders +rides +ridge +ridged +ridges +ridicule +ridiculed +ridicules +ridiculing +ridiculous +ridiculously +ridiculousness +riding +ridings +rids +rife +riff +riffle +riffled +riffs +rifle +rifled +rifleman +riflemen +rifles +rifling +riflings +rift +rifting +rifts +rig +rigged +rigger +riggers +rigging +right +righted +righten +righteous +righteously +righteousness +righter +rightful +rightfully +righthand +righthanded +righthandedness +righthander +righthanders +righting +rightist +rightly +rightminded +rightmost +rightness +rights +rightthinking +rightward +rightwards +rightwing +rightwinger +rightwingers +rigid +rigidifies +rigidify +rigidities +rigidity +rigidly +rigmarole +rigor +rigorous +rigorously +rigour +rigours +rigs +rile +riled +riles +riling +rill +rills +rim +rime +rimless +rimmed +rims +rind +rinds +ring +ringed +ringer +ringers +ringing +ringingly +ringleader +ringleaders +ringless +ringlet +ringlets +ringmaster +rings +ringside +ringworm +rink +rinks +rinse +rinsed +rinses +rinsing +riot +rioted +rioter +rioters +rioting +riotous +riotously +riots +rip +ripcord +ripe +ripely +ripen +ripened +ripeness +ripening +ripens +riper +ripest +riping +ripoff +riposte +riposted +ripostes +ripped +ripper +rippers +ripping +ripple +rippled +ripples +rippling +rips +ripstop +rise +risen +riser +risers +rises +risible +rising +risings +risk +risked +riskier +riskiest +riskiness +risking +risks +risky +risotto +risque +rissole +rissoles +rite +rites +ritual +ritualised +ritualistic +ritualistically +ritually +rituals +rival +rivalled +rivalling +rivalries +rivalry +rivals +riven +river +riverine +rivers +riverside +rivet +riveted +riveter +riveting +rivetingly +rivets +riviera +rivulet +rivulets +roach +roaches +road +roadblock +roadblocks +roadhouse +roadmap +roads +roadshow +roadshows +roadside +roadsides +roadsigns +roadster +roadsweepers +roadway +roadways +roadworks +roadworthy +roam +roamed +roamer +roaming +roams +roan +roar +roared +roarer +roaring +roars +roast +roasted +roaster +roasting +roasts +rob +robbed +robber +robberies +robbers +robbery +robbing +robe +robed +robes +robin +robins +robot +robotic +robotics +robots +robs +robust +robustly +robustness +roc +rock +rockbottom +rocked +rocker +rockers +rockery +rocket +rocketed +rocketing +rocketry +rockets +rockfall +rockfalls +rockier +rockiest +rocking +rocks +rocksolid +rocky +rococo +rocs +rod +rode +rodent +rodents +rodeo +rodeos +rods +roe +roebuck +roentgen +roes +rogue +roguery +rogues +roguish +roguishly +roguishness +roister +roistering +role +roles +roll +rollcall +rolled +roller +rollercoaster +rollers +rollerskating +rollicking +rolling +rolls +rolypoly +rom +roman +romance +romanced +romancer +romances +romancing +romans +romantic +romantically +romanticised +romanticises +romanticising +romanticism +romantics +romany +rome +rommel +romp +romped +romper +romping +romps +romulus +rondavel +roo +roof +roofed +roofer +roofgarden +roofing +roofings +roofless +roofs +rooftop +rooftops +rooibos +rook +rookeries +rookery +rookies +rooks +room +roomful +roomier +roomiest +roommate +rooms +roomy +roost +roosted +rooster +roosters +roosting +roosts +root +rooted +rooting +rootings +rootless +roots +rope +roped +ropes +roping +rosaries +rosary +rose +rosebud +rosebuds +rosebush +rosemary +roses +rosette +rosettes +rosewood +rosier +rosiest +rosily +rosin +roster +rostering +rosters +rostrum +rostrums +rosy +rot +rota +rotary +rotas +rotatable +rotate +rotated +rotates +rotating +rotation +rotational +rotationally +rotations +rotator +rotators +rotatory +rote +rotor +rotors +rots +rotted +rotten +rottenly +rottenness +rotter +rotting +rotund +rotunda +rotundity +rouble +roubles +rouge +rouged +rouges +rough +roughage +roughed +roughen +roughened +roughens +rougher +roughest +roughie +roughing +roughly +roughness +roughs +roughshod +roulette +round +roundabout +roundabouts +rounded +roundel +roundels +rounder +rounders +roundest +roundhouse +rounding +roundish +roundly +roundness +rounds +roundtheclock +roundup +roundups +rouse +roused +rouses +rousing +rout +route +routed +routeing +router +routers +routes +routine +routinely +routines +routing +routs +rove +roved +rover +rovers +roves +roving +rovings +row +rowboat +rowboats +rowdier +rowdiest +rowdily +rowdiness +rowdy +rowdyism +rowed +rower +rowers +rowing +rows +royal +royalist +royalists +royally +royals +royalties +royalty +ruanda +rub +rubbed +rubber +rubberised +rubbers +rubberstamp +rubberstamped +rubberstamping +rubbery +rubbing +rubbings +rubbish +rubbished +rubbishes +rubbishing +rubbishy +rubble +rubbles +rubella +rubicon +rubicund +rubidium +rubies +rubric +rubs +ruby +ruck +rucks +rucksack +rucksacks +ruction +ructions +rudder +rudderless +rudders +ruddiness +ruddy +rude +rudely +rudeness +ruder +rudest +rudimentary +rudiments +rue +rueful +ruefully +ruefulness +rues +ruff +ruffian +ruffians +ruffle +ruffled +ruffles +ruffling +ruffs +rug +rugby +rugged +ruggedly +ruggedness +rugs +ruin +ruination +ruinations +ruined +ruiner +ruining +ruinous +ruinously +ruins +rule +rulebook +rulebooks +ruled +ruler +rulers +rules +ruling +rulings +rum +rumania +rumba +rumbas +rumble +rumbled +rumbles +rumbling +rumblings +rumbustious +rumen +ruminant +ruminants +ruminate +ruminated +ruminating +rumination +ruminations +ruminative +ruminatively +rummage +rummaged +rummages +rummaging +rummy +rumour +rumoured +rumours +rump +rumple +rumpled +rumpling +rumps +rumpus +rumpuses +run +runaway +rundown +rune +runes +rung +rungs +runnable +runner +runners +runnersup +runnerup +runnier +runniest +running +runny +runofthemill +runs +runt +runts +runway +runways +rupee +rupees +rupert +rupture +ruptured +ruptures +rupturing +rural +ruralist +rurally +ruse +rush +rushed +rushes +rushhour +rushier +rushing +rusk +rusks +russet +russia +russian +rust +rusted +rustic +rustically +rusticate +rusticated +rusticity +rustics +rustier +rustiest +rustiness +rusting +rustle +rustled +rustler +rustlers +rustles +rustling +rustproof +rusts +rusty +rut +ruth +ruthless +ruthlessly +ruthlessness +ruts +rutted +rwanda +rye +sabbat +sabbath +sabbaths +sabbatical +sabbaticals +saber +sable +sables +sabotage +sabotaged +sabotages +sabotaging +saboteur +saboteurs +sabra +sabras +sabre +sabres +sabretoothed +sac +saccharides +saccharin +saccharine +sacerdotal +sachet +sachets +sack +sackcloth +sacked +sackful +sackfuls +sacking +sacks +sacral +sacrament +sacramental +sacraments +sacred +sacredly +sacredness +sacrifice +sacrificed +sacrifices +sacrificial +sacrificing +sacrilege +sacrilegious +sacristy +sacrosanct +sacrum +sacs +sad +sadden +saddened +saddening +saddens +sadder +saddest +saddle +saddlebag +saddlebags +saddled +saddler +saddlers +saddles +saddling +sadism +sadist +sadistic +sadistically +sadists +sadly +sadness +sadomasochism +sadomasochistic +sadsack +safari +safaris +safe +safeguard +safeguarded +safeguarding +safeguards +safely +safeness +safer +safes +safest +safeties +safety +saffron +sag +saga +sagacious +sagaciously +sagacity +sagas +sage +sagely +sages +sagest +sagged +sagging +sago +sags +sahara +sahib +said +saigon +sail +sailcloth +sailed +sailer +sailing +sailings +sailmaker +sailor +sailors +sails +saint +sainted +sainthood +saintlier +saintliest +saintliness +saintly +saints +saipan +sake +sakes +saki +salaam +salacious +salad +salads +salamander +salamanders +salami +salamis +salaried +salaries +salary +sale +saleability +saleable +salem +sales +salesgirl +salesman +salesmanship +salesmen +salespeople +salesperson +saleswoman +salicylic +salience +salient +saline +salinity +saliva +salivary +salivas +salivate +salivating +salivation +salivations +sallied +sallies +sallow +sally +sallying +salmon +salmonella +salmons +salome +salon +salons +saloon +saloons +salsa +salt +salted +saltier +saltiest +saltiness +saltpetre +salts +saltwater +salty +salubrious +salubrity +salutary +salutation +salutations +salute +saluted +salutes +saluting +salvage +salvageable +salvaged +salvager +salvages +salvaging +salvation +salve +salved +salver +salvers +salving +salvo +sam +samba +sambas +same +sameness +samizdat +samoa +samosas +samovar +sampan +sample +sampled +sampler +samplers +samples +sampling +samplings +samurai +san +sanatorium +sanctification +sanctified +sanctifies +sanctify +sanctifying +sanctimonious +sanction +sanctioned +sanctioning +sanctions +sanctity +sanctuaries +sanctuary +sanctum +sand +sandal +sandalled +sandals +sandalwood +sandbag +sandbagged +sandbags +sandbank +sandbanks +sandcastle +sandcastles +sanddune +sanded +sander +sandier +sandiest +sanding +sandman +sandpaper +sandpapering +sandpiper +sandpipers +sandpit +sands +sandstone +sandstones +sandwich +sandwiched +sandwiches +sandwiching +sandy +sane +sanely +saner +sanest +sang +sanguine +sanitary +sanitation +sanitise +sanitised +sanitiser +sanitisers +sanity +sank +sanserif +sanskrit +santiago +sap +sapient +sapling +saplings +sapped +sapper +sappers +sapphire +sapphires +sapping +saps +sarcasm +sarcasms +sarcastic +sarcastically +sarcoma +sarcophagi +sarcophagus +sardine +sardines +sardinia +sardonic +sardonically +sarge +sari +saris +sarong +sartorial +sartorially +sash +sashes +sat +satan +satanic +satanically +satanism +satchel +satchels +sated +satellite +satellites +satiate +satiated +satiation +satin +sating +satins +satinwood +satiny +satire +satires +satiric +satirical +satirically +satirise +satirised +satirises +satirising +satirist +satirists +satisfaction +satisfactions +satisfactorily +satisfactory +satisfiable +satisfied +satisfies +satisfy +satisfying +satisfyingly +satrap +satraps +satsumas +saturate +saturated +saturates +saturating +saturation +saturday +saturn +saturnalia +saturnine +satyr +satyric +satyrs +sauce +saucepan +saucepans +saucer +saucers +sauces +saucier +sauciest +saucily +sauciness +saucy +saudi +saudis +sauerkraut +sauna +saunas +saunter +sauntered +sauntering +saunters +sausage +sausages +saute +savage +savaged +savagely +savagery +savages +savaging +savanna +savannah +savant +savants +save +saved +saveloy +saver +savers +saves +saving +savings +saviour +saviours +savour +savoured +savouring +savours +savoury +savvy +saw +sawdust +sawed +sawing +sawmill +sawmills +sawn +saws +sawtooth +sawyer +sawyers +saxon +saxons +saxony +saxophone +saxophones +saxophonist +say +saying +sayings +says +scab +scabbard +scabbards +scabbed +scabby +scabies +scabs +scaffold +scaffolding +scaffolds +scalability +scalable +scalar +scalars +scald +scalded +scalding +scalds +scale +scaled +scalene +scales +scaling +scallop +scalloped +scallops +scalp +scalped +scalpel +scalpels +scalping +scalps +scaly +scam +scamp +scamped +scamper +scampered +scampering +scampi +scams +scan +scandal +scandalise +scandalised +scandalous +scandalously +scandals +scanned +scanner +scanners +scanning +scans +scansion +scant +scantier +scantiest +scantily +scantiness +scanty +scape +scapegoat +scapegoats +scapula +scar +scarab +scarce +scarcely +scarceness +scarcer +scarcest +scarcities +scarcity +scare +scarecrow +scarecrows +scared +scaremonger +scaremongering +scares +scarf +scarfs +scarier +scariest +scarified +scarify +scarifying +scarily +scaring +scarlet +scarlets +scarp +scarred +scarring +scars +scarves +scary +scat +scathe +scathed +scathing +scathingly +scatological +scatter +scattered +scatterer +scatterers +scattering +scatterings +scatters +scavenge +scavenged +scavenger +scavengers +scavenging +scenario +scene +scenery +scenes +scenic +scenically +scent +scented +scenting +scentless +scents +sceptic +sceptical +sceptically +scepticism +sceptics +sceptre +sceptred +sceptres +schedule +scheduled +scheduler +schedulers +schedules +scheduling +schema +schemas +schemata +schematic +schematically +schematics +scheme +schemed +schemer +schemes +scheming +scherzi +scherzo +schism +schismatic +schismatics +schisms +schist +schistosomiasis +schists +schizoid +schizophrenia +schizophrenic +schizophrenically +schizophrenics +schmalz +schnapps +scholar +scholarly +scholars +scholarship +scholarships +scholastic +scholasticism +school +schoolboy +schoolboys +schoolchild +schoolchildren +schooldays +schooled +schoolgirl +schoolgirls +schoolhouse +schooling +schoolmaster +schoolmasters +schoolmates +schoolmistress +schoolroom +schools +schoolteacher +schoolteachers +schooner +schooners +schwa +schwas +sciatica +science +sciences +scientific +scientifically +scientist +scientists +scifi +scimitar +scimitars +scintigraphy +scintillate +scintillated +scintillating +scintillation +scintillations +scintillator +scintillators +scissor +scissored +scissors +sclerosis +scoff +scoffed +scoffing +scold +scolded +scolder +scolding +scolds +scone +scones +scoop +scooped +scooper +scoopful +scooping +scoops +scoot +scooter +scooters +scooting +scoots +scope +scopes +scorch +scorched +scorcher +scorches +scorching +score +scoreboard +scoreboards +scorecard +scorecards +scored +scoreless +scoreline +scorer +scorers +scores +scoring +scorn +scorned +scornful +scornfully +scorning +scorns +scorpion +scorpions +scot +scotch +scotched +scotches +scotfree +scotland +scots +scotsman +scottish +scoundrel +scoundrels +scour +scoured +scourge +scourged +scourges +scourging +scouring +scours +scout +scouted +scouting +scoutmaster +scoutmasters +scouts +scowl +scowled +scowling +scowls +scrabble +scrabbled +scrabbling +scram +scramble +scrambled +scrambler +scramblers +scrambles +scrambling +scrams +scrap +scrapbook +scrapbooks +scrape +scraped +scraper +scrapers +scrapes +scrapie +scraping +scrapings +scrapped +scrappier +scrappiest +scrapping +scrappy +scraps +scrapyard +scrapyards +scratch +scratched +scratches +scratchier +scratchiest +scratchiness +scratching +scratchings +scratchy +scrawl +scrawled +scrawling +scrawls +scrawnier +scrawniest +scrawny +scream +screamed +screamer +screamers +screaming +screamingly +screams +scree +screech +screeched +screeches +screechier +screechiest +screeching +screechy +screed +screeds +screen +screened +screening +screenings +screenplay +screenplays +screens +screenwriter +screw +screwdriver +screwdrivers +screwed +screwing +screws +screwy +scribal +scribble +scribbled +scribbler +scribblers +scribbles +scribbling +scribblings +scribe +scribed +scribes +scribing +scrimped +script +scripted +scripting +scriptorium +scripts +scriptural +scripture +scriptures +scriptwriter +scriptwriters +scriptwriting +scroll +scrollable +scrolled +scrolling +scrolls +scrooge +scrooges +scrotum +scrub +scrubbed +scrubber +scrubbers +scrubbing +scrubby +scrubland +scrubs +scruff +scruffier +scruffy +scrum +scrumhalf +scrummage +scrummaging +scrums +scrunched +scruple +scruples +scrupulous +scrupulously +scrupulousness +scrutineers +scrutinies +scrutinise +scrutinised +scrutinises +scrutinising +scrutiny +scuba +scubas +scud +scudded +scudding +scuds +scuff +scuffed +scuffing +scuffle +scuffled +scuffles +scuffling +scull +sculled +sculler +sculleries +scullery +sculling +sculls +sculpt +sculpted +sculpting +sculptor +sculptors +sculptress +sculptural +sculpture +sculptured +sculptures +scum +scupper +scuppered +scurried +scurries +scurrilous +scurry +scurrying +scurryings +scurvy +scuttle +scuttled +scuttles +scuttling +scythe +scythed +scythes +scything +sea +seabed +seabird +seabirds +seaboard +seaborne +seacow +seacows +seafarer +seafarers +seafaring +seafood +seafront +seagod +seagoing +seagreen +seagull +seagulls +seal +sealant +sealants +sealed +sealer +sealers +sealing +sealion +seals +seam +seamail +seaman +seamanship +seamed +seamen +seamier +seamless +seamlessly +seams +seamstress +seamstresses +seamy +seance +seances +seaplane +seaplanes +seaport +seaports +sear +search +searched +searcher +searchers +searches +searching +searchingly +searchlight +searchlights +seared +searing +sears +seas +seascape +seascapes +seashells +seashore +seashores +seasick +seasickness +seaside +season +seasonable +seasonably +seasonal +seasonality +seasonally +seasoned +seasoner +seasoning +seasons +seat +seated +seating +seatings +seats +seattle +seaward +seawards +seawater +seaweed +seaweeds +seaworthy +sebaceous +sec +secant +secateurs +secede +seceded +secedes +seceding +secession +secessionist +secessionists +secessions +seclude +secluded +seclusion +second +secondaries +secondarily +secondary +secondbest +secondclass +seconded +seconder +seconders +secondhand +seconding +secondly +secondment +secondments +secondrate +seconds +secrecy +secret +secretarial +secretariat +secretariats +secretaries +secretary +secretaryship +secrete +secreted +secretes +secreting +secretion +secretions +secretive +secretively +secretiveness +secretly +secretory +secrets +sect +sectarian +sectarianism +section +sectional +sectioned +sectioning +sections +sector +sectoral +sectored +sectors +sects +secular +secularisation +secularised +secularism +secularist +secularists +secure +secured +securely +securer +secures +securest +securing +securities +security +sedan +sedate +sedated +sedately +sedateness +sedater +sedates +sedating +sedation +sedative +sedatives +sedentary +sedge +sedges +sediment +sedimentary +sedimentation +sediments +sedition +seditious +seduce +seduced +seducer +seducers +seduces +seducing +seduction +seductions +seductive +seductively +seductiveness +sedulously +see +seeable +seed +seedbed +seeded +seeder +seedier +seediest +seediness +seeding +seedless +seedling +seedlings +seeds +seedy +seeing +seeings +seek +seeker +seekers +seeking +seeks +seem +seemed +seeming +seemingly +seemlier +seemliest +seemly +seems +seen +seep +seepage +seeped +seeping +seeps +seer +seers +sees +seesaw +seesaws +seethe +seethed +seethes +seething +seethrough +segment +segmental +segmentation +segmented +segmenting +segments +segregate +segregated +segregates +segregating +segregation +seine +seisin +seismic +seismogram +seismograph +seismological +seismologist +seismologists +seismology +seismometer +seismometers +seize +seized +seizer +seizes +seizing +seizure +seizures +seldom +select +selectable +selected +selectee +selecting +selection +selections +selective +selectively +selectivity +selector +selectors +selects +selenium +selenology +self +selfcentred +selfcentredness +selfconfidence +selfconfident +selfconscious +selfconsciously +selfconsciousness +selfcontrol +selfcontrolled +selfdefence +selfdestruct +selfdestructed +selfdestructing +selfdestruction +selfdestructive +selfdestructs +selfdiscipline +selfemployed +selfesteem +selfevident +selfgoverning +selfgovernment +selfinflicted +selfinterest +selfish +selfishly +selfishness +selfless +selflessly +selfmade +selfpity +selfportrait +selfportraits +selfrespect +selfrespecting +selfrestraint +selfrighteous +selfrighteously +selfrighteousness +selfsacrifice +selfsacrificing +selfsame +selfsupporting +selftaught +sell +sellable +seller +sellers +selling +sells +selves +semantic +semantically +semantics +semaphore +semaphores +semaphoring +semblance +semblances +semen +semester +semesters +semi +semicircle +semicircular +semicolon +semicolons +semiconducting +semiconductor +semiconductors +semiconscious +semidetached +semifinal +semifinalist +semifinalists +semifinals +seminar +seminaries +seminars +seminary +semite +semites +semitic +semitics +sen +senate +senates +senator +senatorial +senators +send +sender +senders +sending +sends +senegal +senhor +senhors +senile +senility +senior +seniority +seniors +senora +senoritas +sensation +sensational +sensationalised +sensationalism +sensationalist +sensationalistic +sensationally +sensations +sense +sensed +senseless +senselessly +senselessness +senses +sensibilities +sensibility +sensible +sensibleness +sensibly +sensing +sensings +sensitisation +sensitised +sensitisers +sensitive +sensitively +sensitiveness +sensitivities +sensitivity +sensor +sensors +sensory +sensual +sensuality +sensually +sensuous +sensuously +sensuousness +sent +sentence +sentenced +sentences +sentencing +sentential +sententious +sententiously +sentience +sentient +sentiment +sentimental +sentimentalised +sentimentalism +sentimentalist +sentimentality +sentimentally +sentiments +sentinel +sentinels +sentries +sentry +seoul +separability +separable +separate +separated +separately +separateness +separates +separating +separation +separations +separatism +separatist +separatists +separator +separators +sepia +september +septet +septets +septic +septicaemia +sepulchral +sepulchre +sepulchres +sequel +sequels +sequence +sequenced +sequencer +sequencers +sequences +sequencing +sequent +sequential +sequentially +sequestered +sequestrated +sequestration +sequin +sequinned +sequins +sequoia +seraglio +serai +seraphic +seraphically +seraphim +seraphs +serenade +serenader +serenades +serenading +serenata +serendipitous +serendipitously +serendipity +serene +serenely +serener +serenest +serenity +serf +serfdom +serfhood +serfs +serge +sergeant +sergeants +serial +serialisation +serialisations +serialise +serialised +serialising +serially +serials +series +serif +serifed +serifs +serious +seriously +seriousness +sermon +sermons +serological +serology +seronegative +serotonin +serpent +serpentine +serpents +serrate +serrated +serried +serum +serums +servant +servants +serve +served +server +servers +serves +service +serviceability +serviceable +serviced +serviceman +servicemen +services +servicing +serviette +servile +servilely +servility +serving +servings +servitude +sesame +sesotho +sessile +session +sessions +set +setback +setbacks +seth +sets +setswana +settee +settees +setter +setters +setting +settings +settle +settled +settlement +settlements +settler +settlers +settles +settling +setts +setup +seven +sevenfold +sevenpence +sevens +seventeen +seventeenth +seventh +seventies +seventieth +seventy +sever +severable +several +severally +severance +severe +severed +severely +severer +severest +severing +severity +severs +sew +sewage +sewed +sewer +sewerage +sewerrat +sewers +sewing +sewings +sewn +sews +sex +sexed +sexes +sexier +sexiest +sexily +sexiness +sexing +sexism +sexist +sexists +sexless +sexologists +sexology +sextant +sextants +sextet +sextets +sexton +sextons +sextuplet +sextuplets +sexual +sexualities +sexuality +sexually +sexy +shabbier +shabbiest +shabbily +shabbiness +shabby +shack +shackle +shackled +shackles +shacks +shade +shaded +shadeless +shades +shadier +shadiest +shadily +shading +shadings +shadow +shadowed +shadowing +shadowless +shadows +shadowy +shady +shaft +shafted +shafting +shafts +shag +shagged +shaggiest +shaggy +shags +shah +shahs +shakable +shake +shakeable +shakedown +shaken +shaker +shakers +shakes +shakeup +shakeups +shakier +shakiest +shakily +shaking +shaky +shale +shall +shallot +shallots +shallow +shallower +shallowest +shallowly +shallowness +shallows +sham +shaman +shamanic +shamanism +shamanistic +shamans +shamble +shambled +shambles +shambling +shame +shamed +shamefaced +shamefacedly +shameful +shamefully +shameless +shamelessly +shamelessness +shames +shaming +shammed +shamming +shampoo +shampooed +shampooing +shampoos +shamrock +shams +shandy +shank +shanks +shanties +shanty +shape +shaped +shapeless +shapelier +shapeliest +shapely +shaper +shapers +shapes +shaping +sharable +shard +shards +share +shareable +shared +shareholder +shareholders +shareholding +shareholdings +sharer +shares +shareware +sharing +shark +sharks +sharp +sharpen +sharpened +sharpener +sharpeners +sharpening +sharpens +sharper +sharpest +sharply +sharpness +sharps +shatter +shattered +shattering +shatteringly +shatterproof +shatters +shave +shaved +shaven +shaver +shavers +shaves +shaving +shavings +shaw +shawl +shawls +she +sheaf +shear +sheared +shearer +shearers +shearing +shears +shearwater +shearwaters +sheath +sheathe +sheathed +sheathing +sheaths +sheaves +shed +shedding +sheds +sheen +sheep +sheepdog +sheepdogs +sheepish +sheepishly +sheepishness +sheepskin +sheepskins +sheer +sheered +sheerest +sheerness +sheet +sheeted +sheeting +sheets +sheik +sheikh +sheikhs +sheiks +shekel +shekels +shelf +shell +shellac +shelled +shellfire +shellfish +shelling +shells +shelter +sheltered +sheltering +shelters +shelve +shelved +shelves +shelving +shepherd +shepherded +shepherdess +shepherding +shepherds +sherbet +sherds +sheriff +sheriffs +sherlock +sherries +sherry +shetland +shibboleth +shibboleths +shied +shield +shielded +shielding +shields +shielings +shies +shift +shifted +shifter +shifters +shiftier +shiftily +shiftiness +shifting +shiftless +shifts +shifty +shilling +shimmer +shimmered +shimmering +shimmers +shin +shinbone +shindig +shine +shined +shiner +shines +shingle +shingles +shinier +shiniest +shining +shinned +shinning +shins +shiny +ship +shipboard +shipborne +shipbuilder +shipbuilders +shipbuilding +shipload +shiploads +shipmate +shipmates +shipment +shipments +shipowner +shipowners +shippable +shipped +shipping +ships +shipshape +shipwreck +shipwrecked +shipwrecks +shipwright +shipwrights +shipyard +shipyards +shire +shires +shirk +shirked +shirking +shirt +shirtless +shirts +shirtsleeves +shiver +shivered +shivering +shiveringly +shivers +shivery +shoal +shoals +shock +shocked +shocker +shockers +shocking +shockingly +shocks +shod +shoddier +shoddiest +shoddily +shoddiness +shoddy +shoe +shoebox +shoed +shoehorn +shoeing +shoelace +shoelaces +shoeless +shoemaker +shoemakers +shoes +shoestring +shoestrings +shogun +shoguns +shone +shoo +shooed +shooing +shook +shoot +shooter +shooters +shooting +shootings +shoots +shop +shopfront +shopfronts +shopkeeper +shopkeepers +shopkeeping +shoplift +shoplifted +shoplifter +shoplifters +shoplifting +shopped +shopper +shoppers +shopping +shops +shore +shored +shoreline +shorelines +shores +shoreward +shorewards +shoring +shorn +short +shortage +shortages +shortbread +shortcircuit +shortcircuited +shortcircuiting +shortcoming +shortcomings +shortcrust +shortcut +shortcuts +shorted +shorten +shortened +shortening +shortens +shorter +shortest +shortfall +shortfalls +shorthand +shorting +shortish +shortlist +shortlisted +shortlisting +shortlived +shortly +shortness +shorts +shortsighted +shortsightedly +shortsightedness +shortstaffed +shorttempered +shortterm +shortwinded +shorty +shot +shotgun +shotguns +shots +should +shoulder +shouldered +shouldering +shoulders +shout +shouted +shouter +shouters +shouting +shouts +shove +shoved +shovel +shovelful +shovelled +shoveller +shovelling +shovels +shoves +shoving +show +showcase +showcases +showcasing +showdown +showed +shower +showered +showering +showers +showery +showgirl +showground +showier +showiest +showing +showings +showjumpers +showman +showmanship +showmen +shown +showoff +showpiece +showpieces +showplace +showroom +showrooms +shows +showy +shrank +shrapnel +shred +shredded +shredder +shredders +shredding +shreds +shrew +shrewd +shrewder +shrewdest +shrewdly +shrewdness +shrews +shriek +shrieked +shrieker +shriekers +shrieking +shrieks +shrift +shrill +shrilled +shrillest +shrillness +shrills +shrilly +shrimp +shrimps +shrine +shrines +shrink +shrinkable +shrinkage +shrinking +shrinkingly +shrinks +shrivel +shrivelled +shrivelling +shrivels +shroud +shrouded +shrouding +shrouds +shrub +shrubberies +shrubbery +shrubby +shrubs +shrug +shrugged +shrugging +shrugs +shrunk +shrunken +shudder +shuddered +shuddering +shudders +shuffle +shuffled +shuffler +shufflers +shuffles +shuffling +shun +shunned +shunning +shuns +shunt +shunted +shunter +shunters +shunting +shunts +shushed +shut +shutdown +shutdowns +shuts +shutter +shuttered +shuttering +shutters +shutting +shuttle +shuttlecock +shuttlecocks +shuttled +shuttles +shuttling +shutup +shy +shyer +shyest +shying +shyly +shyness +siam +siamese +siberia +siberian +sibilance +sibilancy +sibilant +sibling +siblings +sibyl +sic +sicilian +sicily +sick +sickbay +sickbed +sicken +sickened +sickening +sickeningly +sickens +sicker +sickest +sickle +sickles +sickliest +sickly +sickness +sicknesses +sickroom +side +sideband +sidebands +sideboard +sideboards +sideburns +sidecar +sided +sidekick +sidelight +sidelights +sideline +sidelines +sidelong +sider +sidereal +sides +sideshow +sideshows +sidestep +sidestepped +sidestepping +sidesteps +sideswipes +sidetrack +sidetracked +sidetracking +sidewalk +sidewards +sideways +sidewinders +siding +sidings +sidle +sidled +sidling +siege +sieges +sienna +sierra +siesta +siestas +sieve +sieved +sieves +sieving +sift +sifted +sifter +sifters +sifting +siftings +sifts +sigh +sighed +sighing +sighs +sight +sighted +sightedness +sighting +sightings +sightless +sightlessly +sightly +sights +sightsee +sightseeing +sightseers +sigma +sigmoid +sign +signal +signalled +signaller +signallers +signalling +signally +signalman +signalmen +signals +signatories +signatory +signature +signatures +signboards +signed +signer +signers +signet +significance +significances +significant +significantly +signification +significations +signified +signifier +signifies +signify +signifying +signing +signings +signor +signora +signors +signpost +signposted +signposting +signposts +signs +signwriter +silage +silence +silenced +silencer +silencers +silences +silencing +silent +silently +silhouette +silhouetted +silhouettes +silica +silicate +silicates +silicon +silicone +silicosis +silk +silken +silkier +silkiest +silkily +silkiness +silklike +silks +silkworm +silkworms +silky +sillier +silliest +silliness +silly +silo +silt +silted +silting +silts +siltstone +silty +silver +silvered +silvering +silvers +silversmith +silversmiths +silverware +silvery +simeon +similar +similarities +similarity +similarly +simile +similes +similitude +simmer +simmered +simmering +simmers +simper +simpered +simpering +simpers +simple +simpleminded +simpler +simplest +simpleton +simpletons +simplex +simplexes +simplicities +simplicity +simplification +simplifications +simplified +simplifier +simplifies +simplify +simplifying +simplism +simplistic +simplistically +simply +simulacrum +simulate +simulated +simulates +simulating +simulation +simulations +simulator +simulators +simulcasts +simultaneity +simultaneous +simultaneously +sin +sinai +since +sincere +sincerely +sincerest +sincerity +sine +sinecure +sinecures +sinecurist +sines +sinew +sinews +sinewy +sinful +sinfully +sinfulness +sing +singable +singalong +singe +singed +singeing +singer +singers +singes +singing +single +singlehanded +singlehandedly +singleminded +singlemindedly +singlemindedness +singleness +singles +singly +sings +singsong +singular +singularisation +singularities +singularity +singularly +singulars +sinister +sinisterly +sinistral +sink +sinkable +sinker +sinkers +sinking +sinks +sinless +sinned +sinner +sinners +sinning +sins +sinter +sinters +sinuous +sinuously +sinus +sinuses +sinusitis +sinusoid +sinusoidal +sinusoidally +sip +siphon +siphoned +siphoning +siphons +sipped +sipper +sippers +sipping +sips +sir +sire +sired +siren +sirens +sires +sirius +sirloin +sirloins +sirs +sis +sisal +sissies +sissy +sister +sisterhood +sisterinlaw +sisterly +sisters +sistersinlaw +sit +sitar +sitcom +sitcoms +site +sited +sites +siting +sitings +sits +sitter +sitters +sitting +sittings +situate +situated +situating +situation +situational +situationally +situationist +situations +six +sixes +sixfold +sixpence +sixteen +sixteenth +sixth +sixths +sixties +sixtieth +sixty +size +sizeable +sized +sizes +sizing +sizzle +sizzled +sizzles +sizzling +sjambok +skate +skateboard +skateboards +skated +skater +skaters +skates +skating +skein +skeletal +skeleton +skeletons +skeptic +skerries +sketch +sketchbook +sketchbooks +sketched +sketcher +sketches +sketchier +sketchiest +sketchily +sketching +sketchpad +sketchy +skew +skewed +skewer +skewered +skewers +skewness +skews +ski +skid +skidded +skidding +skids +skied +skier +skiers +skies +skiing +skilful +skilfully +skill +skilled +skillet +skillful +skills +skim +skimmed +skimmer +skimming +skimp +skimped +skimping +skimpy +skims +skin +skincare +skindeep +skinflint +skinhead +skinheads +skinless +skinned +skinner +skinners +skinnier +skinniest +skinning +skinny +skins +skintight +skip +skipped +skipper +skippered +skippering +skippers +skipping +skips +skirl +skirmish +skirmishes +skirmishing +skirt +skirted +skirting +skirts +skis +skit +skits +skittish +skittishly +skittishness +skittle +skittles +skua +skuas +skulduggery +skulk +skulked +skulking +skulks +skull +skullcap +skullduggery +skulls +skunk +skunks +sky +skydive +skydived +skydiver +skydivers +skydives +skydiving +skyhigh +skylark +skylarks +skylight +skylights +skyline +skylines +skyscape +skyscraper +skyscrapers +skyward +skywards +slab +slabs +slack +slacked +slacken +slackened +slackening +slackens +slacker +slackers +slackest +slacking +slackly +slackness +slacks +slag +slags +slain +slake +slaked +slalom +slaloms +slam +slammed +slamming +slams +slander +slandered +slanderer +slanderers +slandering +slanderous +slanders +slang +slanging +slant +slanted +slanting +slants +slantwise +slap +slapdash +slapped +slapper +slapping +slaps +slapstick +slash +slashed +slasher +slashes +slashing +slat +slate +slated +slater +slaters +slates +slating +slats +slatted +slaughter +slaughtered +slaughterer +slaughterhouse +slaughterhouses +slaughtering +slaughterings +slaughters +slav +slave +slaved +slavedriver +slavedrivers +slaver +slavered +slavering +slavers +slavery +slaves +slavic +slaving +slavish +slavishly +slavs +slay +slayed +slayer +slayers +slaying +slays +sleaze +sleazier +sleaziest +sleazy +sled +sledding +sledge +sledgehammer +sledgehammers +sledges +sledging +sleds +sleek +sleeker +sleekly +sleekness +sleeks +sleep +sleeper +sleepers +sleepier +sleepiest +sleepily +sleepiness +sleeping +sleepless +sleeplessness +sleeps +sleepwalk +sleepwalker +sleepwalking +sleepwalks +sleepy +sleet +sleets +sleeve +sleeved +sleeveless +sleeves +sleigh +sleighs +sleight +sleights +slender +slenderest +slenderly +slenderness +slept +sleuth +sleuths +slew +slewed +slewing +slice +sliced +slicer +slicers +slices +slicing +slicings +slick +slicked +slicker +slickest +slickly +slickness +slicks +slid +slide +slided +slider +sliders +slides +sliding +slight +slighted +slighter +slightest +slighting +slightingly +slightly +slights +slily +slim +slime +slimes +slimier +slimiest +slimline +slimly +slimmed +slimmer +slimmers +slimmest +slimming +slimness +slims +slimy +sling +slinging +slings +slingshot +slink +slinking +slinky +slip +slippage +slipped +slipper +slipperiness +slippers +slippery +slipping +slips +slipshod +slipstream +slipup +slipway +slit +slither +slithered +slithering +slithers +slithery +slits +slitting +sliver +slivers +slob +slobber +slobbering +slobbers +slobbery +slobs +slog +slogan +slogans +slogged +slogging +slogs +sloop +slop +slope +sloped +slopes +sloping +slopped +sloppier +sloppiest +sloppily +sloppiness +slopping +sloppy +slops +slosh +sloshed +sloshing +slot +sloth +slothful +sloths +slots +slotted +slotting +slouch +slouched +slouches +slouching +slough +sloughed +sloughing +slovak +slovenia +slovenliness +slovenly +slow +slowcoaches +slowdown +slowed +slower +slowest +slowing +slowish +slowly +slowness +slowpoke +slows +sludge +sludgy +slug +sluggard +sluggards +slugged +slugging +sluggish +sluggishly +sluggishness +slugs +sluice +sluiced +sluices +sluicing +slum +slumber +slumbered +slumbering +slumbers +slumming +slump +slumped +slumping +slumps +slums +slung +slunk +slur +slurp +slurped +slurping +slurps +slurred +slurring +slurry +slurs +slush +slushed +slushes +slushier +slushiest +slushy +slut +sluts +sly +slyer +slyly +slyness +smack +smacked +smacker +smacking +smacks +small +smaller +smallest +smallholder +smallholders +smallholding +smallholdings +smallish +smallminded +smallmindedness +smallness +smallpox +smalls +smallscale +smalltalk +smalltime +smalltown +smart +smarted +smarten +smartened +smartening +smarter +smartest +smarting +smartly +smartness +smarts +smash +smashed +smasher +smashes +smashing +smattering +smatterings +smear +smeared +smearing +smears +smegma +smell +smellable +smelled +smellier +smelliest +smelling +smells +smelly +smelt +smelted +smelter +smelters +smelting +smidgeon +smile +smiled +smiler +smilers +smiles +smiling +smilingly +smirk +smirked +smirking +smirks +smite +smith +smithereens +smiths +smithy +smiting +smitten +smock +smocks +smog +smoggy +smogs +smoke +smoked +smokeless +smoker +smokers +smokes +smokescreen +smokestack +smokestacks +smokier +smokiest +smokiness +smoking +smoky +smolder +smooch +smooth +smoothed +smoother +smoothest +smoothing +smoothly +smoothness +smooths +smoothtongued +smote +smother +smothered +smothering +smothers +smoulder +smouldered +smouldering +smoulders +smudge +smudged +smudges +smudgier +smudgiest +smudging +smudgy +smug +smuggle +smuggled +smuggler +smugglers +smuggles +smuggling +smugly +smugness +smut +smuts +smutty +snack +snacks +snaffle +snag +snagged +snagging +snags +snail +snails +snake +snaked +snakepit +snakes +snakeskin +snaking +snaky +snap +snapped +snapper +snappier +snappily +snapping +snappy +snaps +snapshot +snapshots +snare +snared +snares +snaring +snarl +snarled +snarling +snarls +snatch +snatched +snatcher +snatchers +snatches +snatching +sneak +sneaked +sneakers +sneakier +sneakiest +sneakily +sneaking +sneaks +sneaky +sneer +sneered +sneering +sneeringly +sneers +sneeze +sneezed +sneezes +sneezing +snick +snide +sniff +sniffed +sniffer +sniffers +sniffing +sniffle +sniffles +sniffling +sniffly +sniffs +snifter +snigger +sniggered +sniggering +sniggers +snip +snipe +sniper +snipers +snipes +sniping +snipped +snippet +snippets +snipping +snips +snits +snivel +snivelling +snob +snobbery +snobbish +snobbishly +snobbishness +snobs +snoek +snooker +snoop +snooped +snooper +snoopers +snooping +snoops +snoopy +snooze +snoozed +snoozes +snoozing +snore +snored +snorer +snorers +snores +snoring +snorkel +snorkelling +snorkels +snort +snorted +snorting +snorts +snotty +snout +snouts +snow +snowball +snowballed +snowballing +snowballs +snowbound +snowcapped +snowdrift +snowdrifts +snowdrop +snowdrops +snowed +snowfall +snowfalls +snowfields +snowflake +snowflakes +snowier +snowiest +snowing +snowline +snowman +snowmen +snowplough +snowploughs +snows +snowstorm +snowstorms +snowwhite +snowy +snub +snubbed +snubbing +snubnosed +snubs +snuff +snuffbox +snuffed +snuffing +snuffle +snuffled +snuffles +snuffling +snuffs +snug +snugger +snuggle +snuggled +snuggles +snuggling +snugly +snugness +so +soak +soaked +soaker +soakers +soaking +soakings +soaks +soandso +soap +soapbox +soaped +soapier +soapiest +soaping +soaps +soapy +soar +soared +soaring +soaringly +soars +sob +sobbed +sobbing +sobbings +sober +sobered +soberer +sobering +soberly +sobers +sobriety +sobriquet +sobs +socalled +soccer +sociability +sociable +sociably +social +socialisation +socialise +socialised +socialising +socialism +socialist +socialistic +socialists +socialite +socially +socials +societal +societies +society +sociobiology +sociocultural +socioeconomic +sociolinguistic +sociolinguistics +sociolinguists +sociological +sociologically +sociologist +sociologists +sociology +sociopolitical +sock +socked +socket +sockets +socking +socks +socrates +sod +soda +sodas +sodded +sodden +soddy +sodium +sodom +sodomise +sodomised +sodomising +sodomite +sodomites +sodomy +sods +sofa +sofas +soffit +soft +softball +softboiled +soften +softened +softener +softeners +softening +softens +softer +softest +softhearted +softie +softish +softly +softness +softspoken +software +softwood +softy +soggier +soggiest +soggy +soh +soil +soiled +soiling +soilings +soils +soiree +sojourn +sojourned +sojourner +sojourners +sojourning +sojourns +solace +solaces +solanum +solar +solaria +solarium +sold +solder +soldered +soldering +solders +soldier +soldiered +soldiering +soldierly +soldiers +soldiery +sole +solecism +solecisms +solely +solemn +solemnities +solemnity +solemnly +solenoid +solenoidal +solenoids +soler +soles +solfa +solicit +solicitation +solicitations +solicited +soliciting +solicitor +solicitors +solicitous +solicitously +solicits +solicitude +solid +solidarity +solidification +solidified +solidifies +solidify +solidifying +solidity +solidly +solidness +solids +solitaire +solitary +solitude +solitudes +solo +soloing +soloist +soloists +solstice +solstices +solubility +soluble +solute +solutes +solution +solutions +solvable +solve +solved +solvency +solvent +solvents +solver +solvers +solves +solving +soma +somali +somalia +somas +somatic +sombre +sombrely +sombreness +sombrero +some +somebody +someday +somehow +someone +somersault +somersaulted +somersaulting +somersaults +something +sometime +sometimes +someway +someways +somewhat +somewhere +somnambulist +somnolence +somnolent +son +sonar +sonars +sonata +sonatas +sones +song +songbird +songbirds +songbook +songs +songsters +songwriter +songwriters +songwriting +sonic +sonically +soninlaw +sonnet +sonnets +sonny +sonora +sonorities +sonority +sonorous +sonorously +sonorousness +sons +sonsinlaw +soon +sooner +soonest +soonish +soot +soothe +soothed +soothers +soothes +soothing +soothingly +soothsayer +soothsayers +soothsaying +sootier +soots +sooty +sop +sophist +sophisticate +sophisticated +sophisticates +sophistication +sophistry +sophists +soporific +sopping +soppy +soprano +sorbet +sorbets +sorcerer +sorcerers +sorceress +sorcery +sordid +sordidly +sordidness +sore +sorely +soreness +sores +sorghum +sorority +sorrel +sorrier +sorriest +sorrow +sorrowed +sorrowful +sorrowfully +sorrowing +sorrows +sorry +sort +sortable +sorted +sorter +sorters +sortie +sorties +sorting +sorts +sos +soso +sot +sotho +soubriquet +soudan +souffle +sought +soughtafter +souk +souks +soul +souldestroying +souled +soulful +soulfully +soulless +souls +soulsearching +sound +soundcheck +sounded +sounder +soundest +sounding +soundings +soundless +soundlessly +soundly +soundness +soundproof +soundproofed +soundproofing +sounds +soundtrack +soundtracks +soup +soups +soupy +sour +source +sourced +sourceless +sources +sourcing +soured +sourest +souring +sourly +sourness +sours +soused +south +southbound +southerly +southern +southerner +southerners +southernmost +southward +southwards +souvenir +souvenirs +sovereign +sovereigns +sovereignty +soviet +sow +sowed +sower +sowers +soweto +sowing +sown +sows +soy +soya +soybean +soybeans +spa +space +spaceage +spacecraft +spaced +spaceflight +spaceman +spacemen +spacer +spacers +spaces +spaceship +spaceships +spacesuit +spacesuits +spacey +spacial +spacing +spacings +spacious +spaciously +spaciousness +spade +spaded +spades +spadework +spaghetti +spain +spam +span +spandrels +spangle +spangled +spangles +spaniel +spaniels +spanish +spank +spanked +spanker +spanking +spankings +spanks +spanned +spanner +spanners +spanning +spans +spar +spare +spared +sparely +spares +sparetime +sparing +sparingly +spark +sparked +sparking +sparkle +sparkled +sparkler +sparklers +sparkles +sparkling +sparklingly +sparkly +sparks +sparred +sparring +sparrow +sparrowhawk +sparrows +spars +sparse +sparsely +sparseness +sparser +sparsest +sparsity +sparta +spartan +spartans +spas +spasm +spasmodic +spasmodically +spasms +spastic +spastics +spat +spate +spatial +spatially +spats +spatter +spattered +spattering +spatters +spatula +spatulas +spawn +spawned +spawning +spawns +spay +spayed +spaying +spays +speak +speakable +speaker +speakers +speaking +speaks +spear +speared +spearhead +spearheaded +spearheading +spearheads +spearing +spears +spec +special +specialisation +specialisations +specialise +specialised +specialises +specialising +specialism +specialisms +specialist +specialists +specialities +speciality +specially +specialness +specials +specialty +speciation +species +specifiable +specifiably +specific +specifically +specification +specifications +specificities +specificity +specificness +specifics +specified +specifier +specifiers +specifies +specify +specifying +specimen +specimens +specious +speck +speckle +speckled +speckles +specks +specs +spectacle +spectacles +spectacular +spectacularly +spectaculars +spectator +spectators +spectra +spectral +spectre +spectres +spectrogram +spectrograph +spectrometer +spectrometers +spectrometric +spectrometry +spectrophotometer +spectrophotometers +spectrophotometry +spectroscope +spectroscopes +spectroscopic +spectroscopically +spectroscopy +spectrum +specular +speculate +speculated +speculates +speculating +speculation +speculations +speculative +speculatively +speculator +speculators +speculum +sped +speech +speeches +speechifying +speechless +speechlessly +speed +speedboat +speedboats +speedcop +speeded +speedier +speediest +speedily +speeding +speedometer +speedometers +speeds +speedup +speedway +speedwell +speedy +spell +spellable +spellbinder +spellbinding +spellbound +spelled +speller +spellers +spelling +spellings +spells +spelt +spencer +spend +spender +spenders +spending +spends +spendthrift +spent +spermatozoa +spew +spewed +spewing +spews +sphagnum +sphere +spheres +spheric +spherical +spherically +spheroid +spheroidal +sphincter +sphincters +sphinx +sphygmomanometer +spice +spiced +spicer +spicery +spices +spicier +spicily +spicing +spicy +spider +spiders +spidery +spied +spies +spigot +spike +spiked +spikes +spikier +spikiest +spiking +spiky +spill +spillage +spillages +spilled +spiller +spilling +spills +spilt +spin +spinach +spinal +spindle +spindles +spindly +spindrier +spindriers +spindrift +spindry +spine +spinechilling +spineless +spines +spinet +spinnaker +spinner +spinners +spinney +spinning +spinoff +spinoffs +spins +spinster +spinsterhood +spinsters +spiny +spiral +spiralled +spiralling +spirally +spirals +spirant +spirants +spire +spires +spirit +spirited +spiritedl +spiritedly +spiritless +spirits +spiritual +spiritualised +spiritualism +spiritualist +spiritualists +spirituality +spiritually +spirituals +spit +spite +spiteful +spitefully +spitfire +spitfires +spits +spitting +spittle +spittoon +spittoons +splash +splashdown +splashed +splashes +splashing +splashy +splat +splatter +splattered +splattering +splayed +splaying +spleen +spleens +splendid +splendidly +splendour +splendours +splenetic +splice +spliced +splicer +splicers +splices +splicing +spline +splines +splint +splinted +splinter +splintered +splintering +splinters +splints +split +splits +splittable +splitter +splitters +splitting +splittings +splodge +splodges +splotches +splurge +splutter +spluttered +spluttering +splutters +spoil +spoilage +spoiled +spoiler +spoilers +spoiling +spoils +spoilsport +spoilt +spoke +spoken +spokes +spokeshave +spokeshaves +spokesman +spokesmen +spokespeople +spokesperson +spokespersons +spokeswoman +spokeswomen +sponge +sponged +sponger +sponges +spongier +spongiest +sponginess +sponging +spongy +sponsor +sponsored +sponsoring +sponsors +sponsorship +sponsorships +spontaneity +spontaneous +spontaneously +spoof +spoofs +spook +spooked +spooking +spooks +spooky +spool +spooled +spooling +spools +spoon +spooned +spoonful +spoonfuls +spooning +spoons +spoor +sporadic +sporadically +spore +spores +sporran +sporrans +sport +sported +sporting +sportingly +sportive +sports +sportsman +sportsmanship +sportsmen +sportswear +sporty +spot +spotless +spotlessly +spotlessness +spotlight +spotlighting +spotlights +spotlit +spoton +spots +spotted +spotter +spotters +spottier +spottiest +spotting +spotty +spouse +spouses +spout +spouted +spouting +spouts +sprain +sprained +spraining +sprains +sprang +sprat +sprats +sprawl +sprawled +sprawling +sprawls +spray +sprayed +sprayer +sprayers +spraying +sprays +spread +spreadeagled +spreaders +spreading +spreads +spreadsheet +spreadsheets +spree +spreeing +sprig +sprightlier +sprightliest +sprightliness +sprightly +sprigs +spring +springboard +springboards +springbok +springboks +springclean +springcleaned +springer +springier +springiest +springing +springs +springtime +springy +sprinkle +sprinkled +sprinkler +sprinklers +sprinkles +sprinkling +sprint +sprinted +sprinter +sprinters +sprinting +sprints +sprite +sprites +sprocket +sprockets +sprout +sprouted +sprouting +sprouts +spruce +spruced +sprucing +sprung +spry +spud +spume +spun +spunky +spur +spurge +spurges +spurious +spuriously +spurn +spurned +spurning +spurns +spurred +spurring +spurs +spurt +spurted +spurting +spurts +sputnik +sputniks +sputter +sputtered +sputtering +sputum +spy +spyglass +spyhole +spying +spyings +squabble +squabbled +squabbles +squabbling +squad +squadron +squadrons +squads +squalid +squall +squalling +squalls +squally +squalor +squander +squandered +squandering +squanders +square +squared +squarely +squareness +squarer +squares +squaring +squarish +squash +squashed +squashes +squashier +squashiest +squashing +squashy +squat +squats +squatted +squatter +squatters +squatting +squaw +squawk +squawked +squawking +squawks +squeak +squeaked +squeaker +squeakier +squeakiest +squeaking +squeaks +squeaky +squeal +squealed +squealer +squealing +squeals +squeamish +squeamishly +squeamishness +squeegee +squeeze +squeezed +squeezer +squeezes +squeezing +squeezy +squelch +squelched +squelching +squelchy +squib +squibs +squid +squids +squiggle +squiggles +squint +squinted +squinting +squints +squire +squirearchy +squires +squirm +squirmed +squirming +squirms +squirrel +squirrelled +squirrels +squirt +squirted +squirting +squirts +srilanka +stab +stabbed +stabber +stabbing +stabbings +stabilisation +stabilise +stabilised +stabiliser +stabilisers +stabilises +stabilising +stability +stable +stabled +stablemate +stabler +stables +stabling +stably +stabs +staccato +stack +stacked +stacker +stacking +stacks +stadia +stadium +stadiums +staff +staffed +staffing +staffroom +staffs +stag +stage +stagecoach +stagecoaches +staged +stagehands +stager +stages +stagey +stagflation +stagger +staggered +staggering +staggeringly +staggers +staging +stagings +stagnancy +stagnant +stagnate +stagnated +stagnates +stagnating +stagnation +stags +staid +staidness +stain +stained +stainer +staining +stainless +stains +stair +staircase +staircases +stairhead +stairs +stairway +stairways +stairwell +stairwells +stake +staked +stakeholder +stakeholders +stakes +staking +stalactite +stalactites +stalagmite +stalagmites +stale +stalemate +stalemated +stalemates +staleness +stalin +stalk +stalked +stalker +stalkers +stalking +stalks +stall +stalled +stallholders +stalling +stallion +stallions +stalls +stalwart +stalwarts +stamen +stamens +stamina +stammer +stammered +stammering +stammers +stamp +stamped +stampede +stampeded +stampeding +stamper +stampers +stamping +stampings +stamps +stance +stances +stanchion +stanchions +stand +standard +standardisation +standardisations +standardise +standardised +standardises +standardising +standards +standby +standing +standings +standpoint +standpoints +stands +standstill +stank +stanza +stanzas +stapes +staphylococcus +staple +stapled +stapler +staplers +staples +stapling +star +starboard +starch +starched +starches +starchier +starchiest +starchy +stardom +stardust +stare +stared +starer +stares +starfish +stargaze +stargazer +stargazers +stargazing +staring +stark +starker +starkest +starkly +starkness +starless +starlet +starlets +starlight +starlike +starling +starlings +starlit +starred +starrier +starriest +starring +starry +starryeyed +stars +starship +starspangled +starstruck +starstudded +start +started +starter +starters +starting +startle +startled +startles +startling +startlingly +starts +startup +startups +starvation +starve +starved +starves +starving +stashed +stashes +stashing +stasis +state +statecraft +stated +statehood +stateless +stateliest +stateliness +stately +statement +statements +stateoftheart +staterooms +states +statesman +statesmanlike +statesmanship +statesmen +static +statical +statically +statics +stating +station +stationary +stationed +stationer +stationers +stationery +stationing +stationmaster +stations +statistic +statistical +statistically +statistician +statisticians +statistics +stator +stators +statuary +statue +statues +statuesque +statuette +statuettes +stature +statures +status +statuses +statute +statutes +statutorily +statutory +staunch +staunchest +staunching +staunchly +staunchness +stave +staved +staves +staving +stay +stayed +stayers +staying +stays +stead +steadfast +steadfastly +steadfastness +steadied +steadier +steadiest +steadily +steadiness +steady +steadygoing +steadying +steak +steaks +steal +stealer +stealers +stealing +steals +stealth +stealthier +stealthiest +stealthily +stealthy +steam +steamboat +steamboats +steamed +steamer +steamers +steamier +steamiest +steaming +steamroller +steamrollers +steams +steamship +steamships +steamy +steed +steeds +steel +steelclad +steeled +steeling +steels +steelwork +steelworker +steelworkers +steelworks +steely +steep +steeped +steepen +steepened +steepening +steepens +steeper +steepest +steeping +steeple +steeplechase +steeplechaser +steeplechasers +steeplechasing +steepled +steeplejack +steeples +steeply +steepness +steeps +steer +steerable +steerage +steered +steering +steers +stegosaurus +stellar +stellated +stem +stemmed +stemming +stems +stench +stenches +stencil +stencilled +stencils +stenographer +stenographers +stenographic +stenography +stenosis +stentor +stentorian +step +stepbrother +stepchildren +stepdaughter +stepfather +stepladder +stepmother +stepparents +steppe +stepped +steppes +stepping +steps +stepsister +stepson +stepsons +stepwise +steradians +stereo +stereographic +stereophonic +stereos +stereoscopic +stereoscopically +stereoscopy +stereotype +stereotyped +stereotypes +stereotypical +stereotypically +stereotyping +sterile +sterilisation +sterilisations +sterilise +sterilised +steriliser +sterilising +sterility +sterling +stern +sterner +sternest +sternly +sternness +sterns +sternum +steroid +steroids +stet +stethoscope +stevedore +stew +steward +stewardess +stewardesses +stewards +stewardship +stewed +stewing +stews +stick +sticker +stickers +stickiest +stickily +stickiness +sticking +stickleback +sticklebacks +stickler +sticks +sticky +sties +stiff +stiffen +stiffened +stiffener +stiffening +stiffens +stiffer +stiffest +stiffly +stiffnecked +stiffness +stifle +stifled +stifles +stifling +stiflingly +stigma +stigmas +stigmata +stigmatisation +stigmatise +stigmatised +stigmatising +stiletto +still +stillbirths +stillborn +stilled +stiller +stilling +stillness +stills +stilt +stilted +stilts +stimulant +stimulants +stimulate +stimulated +stimulates +stimulating +stimulation +stimulator +stimulatory +stimuli +stimulus +sting +stinged +stinger +stingers +stingier +stingily +stinging +stingray +stings +stingy +stink +stinker +stinkers +stinking +stinks +stinky +stint +stinted +stints +stipel +stipend +stipendiary +stipends +stippled +stipples +stipulate +stipulated +stipulates +stipulating +stipulation +stipulations +stir +stirfried +stirfry +stirred +stirrer +stirrers +stirring +stirrings +stirrup +stirrups +stirs +stitch +stitched +stitcher +stitches +stitching +stoa +stoat +stoats +stochastic +stock +stockade +stockbroker +stockbrokers +stockbroking +stockcar +stocked +stockholders +stockholding +stockier +stockily +stocking +stockinged +stockings +stockist +stockists +stockpile +stockpiled +stockpiles +stockpiling +stockroom +stocks +stocktaking +stocky +stodge +stodgier +stodgiest +stodgy +stoep +stoic +stoical +stoically +stoicism +stoics +stoke +stoked +stoker +stokers +stokes +stoking +stole +stolen +stolid +stolidity +stolidly +stoma +stomach +stomachache +stomachs +stomata +stomp +stomped +stomping +stomps +stone +stonecold +stoned +stoneless +stonemason +stonemasons +stones +stonewalled +stoneware +stonework +stonier +stoniest +stonily +stoning +stony +stood +stooge +stooges +stool +stoolpigeon +stools +stoop +stooped +stooping +stoops +stop +stopcock +stopgap +stopover +stoppable +stoppage +stoppages +stopped +stopper +stoppered +stoppers +stopping +stops +stopwatch +storage +storages +store +stored +storehouse +storehouses +storekeeper +storekeepers +storeman +storeroom +storerooms +stores +storey +storeys +stories +storing +stork +storks +storm +stormed +stormer +stormers +stormier +stormiest +storming +storms +stormtroopers +stormy +story +storybook +storyline +storylines +storyteller +storytellers +storytelling +stout +stouter +stoutest +stoutly +stoutness +stove +stovepipe +stoves +stow +stowage +stowaway +stowed +stowing +stows +straddle +straddled +straddles +straddling +strafe +strafed +strafing +straggle +straggled +straggler +stragglers +straggling +straggly +straight +straightaway +straighten +straightened +straightening +straightens +straighter +straightest +straightforward +straightforwardly +straightforwardness +straightness +strain +strained +strainer +strainers +straining +strains +strait +straiten +straitened +straitjacket +straitjackets +straits +strand +stranded +stranding +strands +strange +strangely +strangeness +stranger +strangers +strangest +strangle +strangled +stranglehold +strangler +stranglers +strangles +strangling +strangulated +strangulation +strap +strapless +strapped +strapper +strapping +straps +strata +stratagem +stratagems +strategic +strategically +strategies +strategist +strategists +strategy +stratification +stratified +stratifies +stratifying +stratigraphic +stratigraphical +stratigraphy +stratosphere +stratospheric +stratospherically +stratum +stratus +straw +strawberries +strawberry +strawman +straws +stray +strayed +strayer +straying +strays +streak +streaked +streaker +streakers +streakier +streakiest +streaking +streaks +streaky +stream +streamed +streamer +streamers +streaming +streamline +streamlined +streamlines +streamlining +streams +street +streets +streetwalkers +streetwise +strength +strengthen +strengthened +strengthening +strengthens +strengths +strenuous +strenuously +streptococcal +streptococci +streptomycin +stress +stressed +stresses +stressful +stressfulness +stressing +stretch +stretchability +stretchable +stretched +stretcher +stretchered +stretchers +stretches +stretchiness +stretching +stretchy +strew +strewed +strewing +strewn +striated +striation +striations +stricken +strict +stricter +strictest +strictly +strictness +stricture +strictures +stride +stridency +strident +stridently +strider +strides +striding +strife +strifes +strike +striker +strikers +strikes +striking +strikingly +string +stringed +stringencies +stringency +stringent +stringently +stringer +stringing +strings +stringy +strip +stripe +striped +striper +stripes +stripier +stripiest +striping +stripling +stripped +stripper +strippers +stripping +strips +stripy +strive +strived +striven +striver +strives +striving +strivings +strode +stroke +stroked +strokes +stroking +stroll +strolled +stroller +strollers +strolling +strolls +strong +stronger +strongest +stronghold +strongholds +strongish +strongly +strongman +strongmen +strongminded +strongroom +strontium +strop +stropped +stropping +strops +strove +struck +structural +structuralism +structuralist +structuralists +structurally +structure +structured +structureless +structures +structuring +strudel +strudels +struggle +struggled +struggles +struggling +strum +strummed +strumming +strumpet +strung +strut +struts +strutted +strutter +strutting +strychnine +stub +stubbed +stubbing +stubble +stubbled +stubbles +stubbly +stubborn +stubbornly +stubbornness +stubby +stubs +stucco +stuccoed +stuck +stuckup +stud +studded +student +students +studentship +studentships +studied +studier +studiers +studies +studio +studios +studious +studiously +studiousness +studs +study +studying +stuff +stuffed +stuffer +stuffier +stuffiest +stuffiness +stuffing +stuffs +stuffy +stultified +stultify +stultifying +stumble +stumbled +stumbles +stumbling +stumblingly +stump +stumped +stumping +stumps +stumpy +stun +stung +stunned +stunner +stunning +stunningly +stuns +stunt +stunted +stunting +stuntman +stunts +stupefaction +stupefied +stupefy +stupefying +stupefyingly +stupendous +stupendously +stupid +stupider +stupidest +stupidities +stupidity +stupidly +stupor +stupors +sturdier +sturdiest +sturdily +sturdy +sturgeon +sturgeons +stutter +stuttered +stuttering +stutters +sty +style +styled +styles +styli +styling +stylisation +stylised +stylish +stylishly +stylishness +stylist +stylistic +stylistically +stylistics +stylists +stylus +styluses +stymie +stymied +styrene +styx +suasion +suave +suavely +sub +subaltern +subalterns +subarctic +subatomic +subbed +subbing +subclass +subclasses +subcommittee +subcommittees +subconscious +subconsciously +subconsciousness +subcontinent +subcontract +subcontracted +subcontracting +subcontractor +subcontractors +subcultural +subculture +subcultures +subcutaneous +subcutaneously +subdivide +subdivided +subdivides +subdividing +subdivision +subdivisions +subducted +subduction +subdue +subdued +subdues +subduing +subeditor +subeditors +subfamily +subgroup +subgroups +subharmonic +subharmonics +subhuman +subject +subjected +subjecting +subjection +subjective +subjectively +subjectivism +subjectivist +subjectivity +subjects +subjugate +subjugated +subjugating +subjugation +subjunctive +sublayer +sublimate +sublimated +sublimation +sublime +sublimed +sublimely +sublimes +sublimest +subliminal +subliminally +sublimity +sublunary +submarine +submarines +submerge +submerged +submergence +submerges +submerging +submersible +submersion +submission +submissions +submissive +submissively +submissiveness +submit +submits +submittable +submitted +submitter +submitters +submitting +subnormal +suboptimal +subordinate +subordinated +subordinates +subordinating +subordination +subplot +subplots +subpoena +subpoenaed +subprogram +subprograms +subregional +subroutine +subroutines +subs +subscribe +subscribed +subscriber +subscribers +subscribes +subscribing +subscript +subscription +subscriptions +subscripts +subsection +subsections +subsequent +subsequently +subservience +subservient +subset +subsets +subside +subsided +subsidence +subsides +subsidiaries +subsidiarity +subsidiary +subsidies +subsiding +subsidise +subsidised +subsidises +subsidising +subsidy +subsist +subsisted +subsistence +subsisting +subsists +subsoil +subsonic +subspace +subspaces +subspecies +substance +substances +substandard +substantial +substantially +substantiate +substantiated +substantiates +substantiating +substantiation +substantive +substantively +substantives +substation +substitutable +substitute +substituted +substitutes +substituting +substitution +substitutions +substrata +substrate +substrates +substratum +substructure +substructures +subsume +subsumed +subsumes +subsuming +subsurface +subsystem +subsystems +subtenants +subtend +subtended +subtending +subtends +subterfuge +subterranean +subtext +subtitle +subtitled +subtitles +subtitling +subtle +subtler +subtlest +subtleties +subtlety +subtly +subtotal +subtotals +subtract +subtracted +subtracting +subtraction +subtractions +subtractive +subtractively +subtracts +subtropical +subtropics +subtype +subtypes +subunit +subunits +suburb +suburban +suburbanisation +suburbanites +suburbia +suburbs +subvention +subventions +subversion +subversive +subversively +subversives +subvert +subverted +subverting +subverts +subway +subways +subzero +succeed +succeeded +succeeding +succeeds +success +successes +successful +successfully +succession +successions +successive +successively +successor +successors +succinct +succinctly +succinctness +succour +succulence +succulent +succumb +succumbed +succumbing +succumbs +such +suchandsuch +suchlike +suck +suckable +sucked +sucker +suckers +sucking +suckle +suckled +suckles +suckling +sucklings +sucks +sucrose +suction +sud +sudan +sudden +suddenly +suddenness +suds +sue +sued +suede +sues +suet +suffer +sufferance +suffered +sufferer +sufferers +suffering +sufferings +suffers +suffice +sufficed +suffices +sufficiency +sufficient +sufficiently +sufficing +suffix +suffixed +suffixes +suffocate +suffocated +suffocates +suffocating +suffocatingly +suffocation +suffrage +suffragette +suffragettes +suffragist +suffuse +suffused +suffuses +suffusing +suffusion +sugar +sugarcoated +sugared +sugaring +sugarplums +sugars +sugary +suggest +suggested +suggester +suggesters +suggestibility +suggestible +suggesting +suggestion +suggestions +suggestive +suggestively +suggestiveness +suggests +sugillate +suicidal +suicidally +suicide +suicides +suing +suit +suitabilities +suitability +suitable +suitableness +suitably +suitcase +suitcases +suite +suited +suites +suiting +suitor +suitors +suits +sulk +sulked +sulkier +sulkiest +sulkily +sulkiness +sulking +sulks +sulky +sullen +sullenly +sullenness +sullied +sully +sullying +sulphate +sulphates +sulphide +sulphides +sulphonamides +sulphur +sulphuric +sulphurous +sultan +sultana +sultanas +sultans +sultry +sum +sumatra +summa +summability +summable +summaries +summarily +summarise +summarised +summariser +summarisers +summarises +summarising +summary +summation +summations +summed +summer +summers +summertime +summery +summing +summit +summits +summon +summoned +summoner +summoning +summonings +summons +summonsed +summonses +summonsing +sumo +sump +sumps +sumptuous +sumptuously +sumptuousness +sums +sun +sunbath +sunbathe +sunbathed +sunbathers +sunbathing +sunbeam +sunbeams +sunbed +sunbeds +sunblock +sunburn +sunburned +sunburns +sunburnt +sunburst +suncream +sundaes +sunday +sundays +sundial +sundials +sundown +sundried +sundries +sundry +sunflower +sunflowers +sung +sunglasses +sunk +sunken +sunking +sunless +sunlight +sunlit +sunlounger +sunned +sunnier +sunniest +sunning +sunny +sunrise +sunrises +sunroof +suns +sunscreen +sunscreens +sunset +sunsets +sunshade +sunshine +sunspot +sunspots +sunstroke +suntan +suntanned +sup +super +superabundance +superabundant +superannuate +superannuated +superannuating +superannuation +superb +superbly +supercharged +supercharger +supercilious +superciliously +superciliousness +supercomputer +supercomputers +supercomputing +superconducting +superconductivity +superconductor +superconductors +supercooled +supercooling +supercritical +superdense +superfamily +superficial +superficiality +superficially +superfix +superfluities +superfluity +superfluous +superfluously +superglue +superheat +superheated +superhero +superhuman +superimpose +superimposed +superimposes +superimposing +superimposition +superintend +superintendence +superintendent +superintendents +superior +superiority +superiors +superlative +superlatively +superlatives +superman +supermarket +supermarkets +supermen +supermodel +supermodels +supernatant +supernatural +supernaturally +supernova +supernovae +supernumerary +superordinate +superpose +superposed +superposition +superpositions +superpower +superpowers +supersaturated +supersaturation +superscript +superscripts +supersede +superseded +supersedes +superseding +supersonic +supersonically +superstar +superstars +superstate +superstates +superstition +superstitions +superstitious +superstitiously +superstore +superstores +superstructure +superstructures +supertanker +supertankers +supervene +supervise +supervised +supervises +supervising +supervision +supervisions +supervisor +supervisors +supervisory +supine +supped +supper +suppers +supping +supplant +supplanted +supplanting +supple +supplement +supplemental +supplementary +supplementation +supplemented +supplementing +supplements +suppleness +suppliant +suppliants +supplicant +supplicants +supplicate +supplicating +supplication +supplications +supplied +supplier +suppliers +supplies +supply +supplying +support +supportability +supportable +supported +supporter +supporters +supporting +supportive +supports +suppose +supposed +supposedly +supposes +supposing +supposition +suppositions +suppositories +suppress +suppressed +suppresses +suppressible +suppressing +suppression +suppressive +suppressor +suppressors +suppurating +supranational +supranationalism +supremacist +supremacy +supremal +supreme +supremely +supremo +sups +surcharge +surcharged +surcharges +surd +sure +surefooted +surely +sureness +surer +surest +sureties +surety +surf +surface +surfaced +surfacer +surfaces +surfacing +surfactant +surfactants +surfboard +surfed +surfeit +surfer +surfers +surfing +surfings +surfs +surge +surged +surgeon +surgeons +surgeries +surgery +surges +surgical +surgically +surging +surliest +surlily +surliness +surly +surmise +surmised +surmises +surmising +surmount +surmountable +surmounted +surmounting +surname +surnames +surpass +surpassed +surpasses +surpassing +surplice +surplus +surpluses +surprise +surprised +surprises +surprising +surprisingly +surreal +surrealism +surrealist +surrealistic +surrealists +surreality +surrender +surrendered +surrendering +surrenders +surreptitious +surreptitiously +surrey +surreys +surrogacy +surrogate +surrogates +surround +surrounded +surrounding +surroundings +surrounds +surtax +surtitles +surveillance +survey +surveyed +surveying +surveyor +surveyors +surveys +survivability +survivable +survival +survivals +survive +survived +survives +surviving +survivor +survivors +susceptibilities +susceptibility +susceptible +sushi +sushis +suspect +suspected +suspecting +suspects +suspend +suspended +suspender +suspenders +suspending +suspends +suspense +suspension +suspensions +suspicion +suspicions +suspicious +suspiciously +sustain +sustainability +sustainable +sustainably +sustained +sustaining +sustains +sustenance +suture +sutures +suzerainty +swab +swabbed +swabbing +swabs +swad +swaddled +swaddling +swads +swag +swagger +swaggered +swaggering +swags +swahili +swains +swallow +swallowed +swallower +swallowing +swallows +swallowtail +swam +swamp +swamped +swampier +swampiest +swamping +swampland +swamplands +swamps +swampy +swan +swans +swansong +swap +swappable +swapped +swapper +swappers +swapping +swaps +sward +swarm +swarmed +swarming +swarms +swarthier +swarthiest +swarthy +swashbuckling +swastika +swastikas +swat +swathe +swathed +swathes +swats +swatted +swatting +sway +swayed +swaying +sways +swazi +swazis +swear +swearer +swearers +swearing +swears +swearword +swearwords +sweat +sweatband +sweated +sweater +sweaters +sweatier +sweatiest +sweatily +sweating +sweats +sweatshirt +sweatshirts +sweatshop +sweatshops +sweaty +swede +sweden +swedish +sweep +sweepable +sweeper +sweepers +sweeping +sweepingly +sweepings +sweeps +sweepstake +sweet +sweetbread +sweetcorn +sweeten +sweetened +sweetener +sweeteners +sweetening +sweetens +sweeter +sweetest +sweetheart +sweethearts +sweetie +sweetish +sweetly +sweetmeat +sweetmeats +sweetness +sweetpea +sweets +sweetshop +swell +swelled +swelling +swellings +swells +sweltering +sweltry +swept +swerve +swerved +swerves +swerving +swift +swifter +swiftest +swiftlet +swiftly +swiftness +swifts +swill +swilled +swilling +swim +swimmer +swimmers +swimming +swimmingly +swims +swimsuit +swimsuits +swimwear +swindle +swindled +swindler +swindlers +swindles +swindling +swine +swines +swing +swingeing +swinger +swingers +swinging +swings +swingy +swipe +swiped +swipes +swirl +swirled +swirling +swirls +swish +swished +swishing +swishy +swiss +switch +switchable +switchback +switchboard +switchboards +switched +switcher +switches +switchgear +switching +swivel +swivelled +swivelling +swivels +swollen +swoon +swooned +swooning +swoons +swoop +swooped +swooping +swoops +swop +swopped +swopping +swops +sword +swordfish +swords +swordsman +swordsmen +swore +sworn +swot +swots +swotted +swotting +swum +swung +sycamore +sycamores +sycophancy +sycophant +sycophantic +sycophantically +sycophants +sydney +syllabary +syllabi +syllabic +syllable +syllables +syllabub +syllabus +syllabuses +syllogism +syllogisms +syllogistic +sylph +sylphs +symbiont +symbiosis +symbiotic +symbiotically +symbol +symbolic +symbolical +symbolically +symbolisation +symbolise +symbolised +symbolises +symbolising +symbolism +symbolist +symbolists +symbols +symmetric +symmetrical +symmetrically +symmetries +symmetrisation +symmetrising +symmetry +sympathetic +sympathetically +sympathies +sympathise +sympathised +sympathiser +sympathisers +sympathises +sympathising +sympathy +symphonic +symphonies +symphonists +symphony +symposia +symposium +symptom +symptomatic +symptomatically +symptomless +symptoms +synagogue +synagogues +synapse +synapses +synaptic +sync +synchronic +synchronicity +synchronisation +synchronise +synchronised +synchronises +synchronising +synchronous +synchronously +synchrony +synchrotron +syncopated +syncopation +syncretic +syndicalism +syndicalist +syndicate +syndicated +syndicates +syndication +syndrome +syndromes +synergism +synergistic +synergy +synod +synodic +synods +synonym +synonymic +synonymous +synonymously +synonyms +synonymy +synopses +synopsis +synoptic +synovial +syntactic +syntactical +syntactically +syntagmatic +syntax +syntheses +synthesis +synthesise +synthesised +synthesiser +synthesisers +synthesises +synthesising +synthetic +synthetically +synthetics +syphilis +syphilitic +syphon +syphoned +syphoning +syphons +syria +syrian +syringe +syringes +syrup +syrups +syrupy +system +systematic +systematically +systematisation +systematise +systemic +systemically +systems +systoles +systolic +taal +tab +tabasco +tabbed +tabbing +tabby +tabernacle +tabernacles +table +tableau +tableaux +tablebay +tablecloth +tablecloths +tabled +tableland +tables +tablespoon +tablespoonfuls +tablespoons +tablet +tablets +tableware +tabling +tabloid +tabloids +taboo +taboos +tabs +tabular +tabulate +tabulated +tabulates +tabulating +tabulation +tabulations +tabulator +tachograph +tachographs +tachycardia +tachyon +tachyons +tacit +tacitly +taciturn +tack +tacked +tackier +tackiest +tackiness +tacking +tackle +tackled +tackler +tackles +tackling +tacks +tacky +tact +tactful +tactfully +tactic +tactical +tactically +tactician +tactics +tactile +tactless +tactlessly +tactlessness +tactual +tadpole +tadpoles +taffeta +tag +tagged +tagging +tags +tahiti +tahr +tail +tailed +tailing +tailless +taillessness +tailor +tailorable +tailored +tailoring +tailormade +tailors +tailpiece +tailplane +tails +tailspin +tailwind +taint +tainted +tainting +taints +taipei +taiwan +take +takeable +takeaway +takeaways +taken +takeover +takeovers +taker +takers +takes +taking +takings +talc +talcum +tale +talent +talented +talentless +talents +tales +talisman +talismans +talk +talkative +talkativeness +talkback +talked +talker +talkers +talkie +talkies +talking +talkings +talks +tall +tallboy +taller +tallest +tallied +tallies +tallish +tallness +tallow +tally +tallyho +tallying +talmud +talon +talons +tambourine +tambourines +tame +tamed +tamely +tameness +tamer +tamers +tames +tamest +taming +tamp +tamped +tamper +tampered +tampering +tampers +tan +tandem +tandems +tang +tangelo +tangent +tangential +tangentially +tangents +tangerine +tangerines +tangible +tangibly +tangle +tangled +tangles +tangling +tango +tangy +tank +tankage +tankard +tankards +tanked +tanker +tankers +tankful +tanking +tanks +tanned +tanner +tanneries +tanners +tannery +tannic +tannin +tanning +tannins +tannoy +tans +tantalise +tantalised +tantalising +tantalisingly +tantalum +tantamount +tantrum +tantrums +tanzania +tap +tapas +tapdance +tapdancing +tape +taped +taper +taperecorded +taperecording +tapered +taperer +tapering +tapers +tapes +tapestries +tapestry +tapeworm +tapeworms +taping +tapioca +tapir +tapped +tappers +tapping +tappings +taproom +taps +tar +taramasalata +tarantula +tarantulas +tardily +tardiness +tardy +tares +target +targeted +targeting +targets +tariff +tariffs +tarmac +tarmacadam +tarn +tarnish +tarnished +tarnishing +tarns +tarot +tarpaulin +tarpaulins +tarragon +tarred +tarried +tarrier +tarriest +tarring +tarry +tarrying +tars +tarsal +tarsus +tart +tartan +tartans +tartar +tartaric +tartly +tartness +tartrate +tarts +tarty +tarzan +task +tasked +tasking +taskmaster +tasks +tasmania +tassel +tasselled +tassels +taste +tasted +tasteful +tastefully +tastefulness +tasteless +tastelessly +tastelessness +taster +tasters +tastes +tastier +tastiest +tasting +tastings +tasty +tat +tattered +tatters +tattle +tattoo +tattooed +tattooing +tattoos +tatty +tau +taught +taunt +taunted +taunter +taunting +tauntingly +taunts +taut +tauter +tautest +tautly +tautness +tautological +tautologically +tautologies +tautologous +tautology +tavern +taverna +tavernas +taverns +tawdry +tawny +tax +taxable +taxation +taxdeductible +taxed +taxes +taxfree +taxi +taxicab +taxidermist +taxidermists +taxidermy +taxied +taxies +taxiing +taxing +taxis +taxman +taxonomic +taxonomical +taxonomies +taxonomist +taxonomists +taxonomy +taxpayer +taxpayers +taxpaying +taylor +tea +teabag +teabags +teach +teachable +teacher +teachers +teaches +teaching +teachings +teacloth +teacup +teacups +teak +teal +team +teamed +teaming +teammate +teammates +teams +teamster +teamwork +teaparty +teapot +teapots +tear +tearaway +teardrop +teardrops +tearful +tearfully +tearfulness +teargas +tearing +tearless +tearoom +tearooms +tears +tearstained +teas +tease +teased +teaser +teasers +teases +teashop +teashops +teasing +teasingly +teaspoon +teaspoonful +teaspoonfuls +teaspoons +teat +teatime +teatimes +teats +tech +technical +technicalities +technicality +technically +technician +technicians +technique +techniques +technocracies +technocracy +technocrat +technocratic +technocrats +technological +technologically +technologies +technologist +technologists +technology +technophiles +technophobia +technophobic +tectonic +tectonically +tectonics +ted +teddies +teddy +tedious +tediously +tediousness +tedium +tediums +teds +tee +teed +teehee +teeing +teem +teemed +teeming +teems +teen +teenage +teenaged +teenager +teenagers +teeniest +teens +teensy +teeny +teenyweeny +teepee +teepees +tees +teeter +teetered +teetering +teeth +teethe +teethed +teethes +teething +teethmarks +teetotal +teetotalism +teetotaller +teetotallers +teheran +telaviv +telecommunication +telecommunications +telecommuting +telecoms +teleconference +telegram +telegrams +telegraph +telegraphed +telegraphic +telegraphing +telegraphs +telegraphy +telekinesis +telemetry +teleological +teleology +telepathic +telepathically +telepathy +telephone +telephoned +telephones +telephonic +telephoning +telephonist +telephonists +telephony +telephoto +teleprinter +teleprinters +telesales +telescope +telescoped +telescopes +telescopic +telescoping +teletext +telethon +teletype +teletypes +televise +televised +televising +television +televisions +televisual +teleworking +telex +telexes +tell +teller +tellers +telling +tellingly +tells +telltale +telly +temerity +temper +tempera +temperament +temperamental +temperamentally +temperaments +temperance +temperate +temperately +temperature +temperatures +tempered +tempering +tempers +tempest +tempests +tempestuous +tempi +template +templates +temple +temples +tempo +temporal +temporality +temporally +temporaries +temporarily +temporary +tempt +temptation +temptations +tempted +tempter +tempters +tempting +temptingly +temptress +tempts +ten +tenability +tenable +tenacious +tenaciously +tenacity +tenancies +tenancy +tenant +tenanted +tenantry +tenants +tench +tend +tended +tendencies +tendency +tendentious +tendentiously +tender +tendered +tenderer +tenderest +tendering +tenderly +tenderness +tenders +tending +tendon +tendons +tendril +tendrils +tends +tenement +tenements +tenet +tenets +tenfold +tenners +tennis +tenon +tenor +tenors +tens +tense +tensed +tensely +tenseness +tenser +tenses +tensest +tensile +tensing +tension +tensional +tensioned +tensions +tensity +tensor +tensors +tent +tentacle +tentacled +tentacles +tentative +tentatively +tented +tenterhooks +tenth +tenths +tents +tenuous +tenuously +tenure +tenured +tenures +tenurial +tepee +tepid +tequila +tercentenary +term +termed +terminal +terminally +terminals +terminate +terminated +terminates +terminating +termination +terminations +terminator +terminators +terming +termini +terminological +terminologies +terminology +terminus +termite +termites +termly +terms +tern +ternary +terns +terrace +terraced +terraces +terracing +terracotta +terraform +terraformed +terrain +terrains +terrapin +terrapins +terrazzo +terrestrial +terrible +terribly +terrier +terriers +terrific +terrifically +terrified +terrifies +terrify +terrifying +terrifyingly +terrine +territorial +territoriality +territorially +territories +territory +terror +terrorise +terrorised +terrorising +terrorism +terrorist +terrorists +terrors +terrorstricken +terry +terse +tersely +terseness +terser +tertiaries +tertiary +tessellated +tessellation +tessellations +tesseral +test +testability +testable +testament +testamentary +testaments +testdrive +testdriving +tested +tester +testers +testes +testicle +testicles +testicular +testier +testiest +testified +testifies +testify +testifying +testily +testimonial +testimonials +testimonies +testimony +testiness +testing +testings +testis +testosterone +tests +testtube +testy +tetanus +tetchily +tetchy +tether +tethered +tethering +tethers +tetra +tetrachloride +tetrahedra +tetrahedral +tetrahedron +tetrahedrons +tetrameters +tetroxide +texan +texans +texas +text +textbook +textbooks +textile +textiles +texts +textual +textuality +textually +textural +texturally +texture +textured +textures +thai +thalamus +thalidomide +thallium +thames +than +thane +thank +thanked +thankful +thankfully +thankfulness +thanking +thankless +thanklessly +thanks +thanksgiving +that +thatch +thatched +thatcher +thatchers +thatching +thaumaturge +thaw +thawed +thawing +thaws +the +theatre +theatres +theatrical +theatricality +theatrically +theatricals +thebes +thee +theft +thefts +their +theirs +theism +theist +theistic +theists +them +themas +thematic +thematically +theme +themed +themes +themselves +then +thence +thenceforth +thenceforward +theocracies +theocracy +theodolite +theodolites +theologian +theologians +theological +theologically +theologies +theologists +theology +theorem +theorems +theoretic +theoretical +theoretically +theoretician +theoreticians +theories +theorisation +theorise +theorised +theorises +theorising +theorist +theorists +theory +theosophy +therapeutic +therapeutically +therapies +therapist +therapists +therapy +there +thereabouts +thereafter +thereby +therefor +therefore +therefrom +therein +thereof +thereon +thereto +thereunder +thereupon +therewith +thermal +thermally +thermals +thermochemical +thermodynamic +thermodynamical +thermodynamically +thermodynamics +thermoelectric +thermometer +thermometers +thermoplastic +thermostat +thermostatic +thermostatically +thermostats +therms +thesauri +thesaurus +these +thesis +thespian +thespians +theta +they +thick +thicken +thickened +thickening +thickens +thicker +thickest +thicket +thickets +thickish +thickly +thickness +thicknesses +thickset +thickskinned +thief +thieve +thieved +thievery +thieves +thieving +thievish +thievishness +thigh +thighs +thimble +thimbleful +thimblefuls +thimbles +thin +thine +thing +things +think +thinkable +thinker +thinkers +thinking +thinks +thinktank +thinly +thinned +thinner +thinners +thinness +thinnest +thinning +thinnish +thins +third +thirdly +thirds +thirst +thirsted +thirstier +thirstiest +thirstily +thirsting +thirsts +thirsty +thirteen +thirteenth +thirties +thirtieth +thirty +this +thistle +thistles +thither +thomas +thong +thongs +thor +thoracic +thorax +thorium +thorn +thornier +thorniest +thorns +thorny +thorough +thoroughbred +thoroughbreds +thoroughfare +thoroughfares +thoroughgoing +thoroughly +thoroughness +those +thou +though +thought +thoughtful +thoughtfully +thoughtfulness +thoughtless +thoughtlessly +thoughtlessness +thoughtprovoking +thoughts +thousand +thousandfold +thousands +thousandth +thousandths +thrall +thrash +thrashed +thrasher +thrashes +thrashing +thrashings +thread +threadbare +threaded +threading +threads +threat +threaten +threatened +threatening +threateningly +threatens +threats +three +threedimensional +threefold +threequarters +threes +threesome +threesomes +thresh +threshed +thresher +threshers +threshing +threshold +thresholds +threw +thrice +thrift +thriftier +thriftiest +thriftless +thrifts +thrifty +thrill +thrilled +thriller +thrillers +thrilling +thrillingly +thrills +thrive +thrived +thrives +thriving +throat +throatier +throatiest +throatily +throats +throaty +throb +throbbed +throbbing +throbs +thromboses +thrombosis +thrombus +throne +throned +thrones +throng +thronged +thronging +throngs +throroughly +throttle +throttled +throttles +throttling +through +throughout +throughput +throw +throwaway +throwback +thrower +throwers +throwing +thrown +throws +thrum +thrush +thrushes +thrust +thruster +thrusters +thrusting +thrusts +thud +thudded +thudding +thuds +thug +thuggery +thuggish +thugs +thumb +thumbed +thumbing +thumbnail +thumbprint +thumbs +thumbscrew +thumbscrews +thump +thumped +thumping +thumps +thunder +thunderbolt +thunderbolts +thunderclap +thunderclaps +thundercloud +thundered +thunderflashes +thundering +thunderous +thunderously +thunders +thunderstorm +thunderstorms +thunderstruck +thundery +thursday +thus +thwack +thwart +thwarted +thwarting +thwarts +thy +thyme +thymus +thyristor +thyristors +thyroid +thyroids +thyself +tiara +tiaras +tibia +tibiae +tic +tick +ticked +ticker +tickers +ticket +ticketed +tickets +ticking +tickle +tickled +tickler +tickles +tickling +ticklish +ticks +tics +tidal +tidbit +tidbits +tiddlers +tiddlywinks +tide +tideless +tides +tideway +tidied +tidier +tidies +tidiest +tidily +tidiness +tiding +tidings +tidy +tidying +tie +tiebreak +tied +tier +tiered +tiers +ties +tiger +tigerish +tigers +tight +tighten +tightened +tightening +tightens +tighter +tightest +tightfisted +tightlipped +tightly +tightness +tightrope +tights +tightwad +tigress +tigris +tikka +tilde +tildes +tile +tiled +tiler +tiles +tiling +tilings +till +tillage +tilled +tiller +tillers +tilling +tills +tilt +tilted +tilting +tilts +timber +timbered +timbre +time +timebase +timeconsuming +timed +timeframe +timehonoured +timekeeper +timekeepers +timekeeping +timelapse +timeless +timelessness +timeliness +timely +timeout +timepiece +timer +timers +times +timescale +timescales +timeshare +timetable +timetabled +timetables +timetabling +timid +timidity +timidly +timing +timings +tin +tincan +tincture +tinctured +tinder +tinderbox +tinfoil +tinge +tinged +tinges +tingle +tingled +tingles +tinglier +tingliest +tingling +tingly +tinier +tiniest +tinker +tinkered +tinkering +tinkers +tinkle +tinkled +tinkling +tinkly +tinned +tinner +tinnier +tinniest +tinnily +tinnitus +tinny +tinopener +tinpot +tins +tinsel +tinsels +tint +tinted +tinting +tintings +tints +tinware +tiny +tip +tipoff +tipoffs +tipped +tipper +tipping +tipple +tippling +tips +tipster +tipsters +tipsy +tiptoe +tiptoed +tiptoeing +tiptoes +tiptop +tirade +tirades +tire +tired +tiredly +tiredness +tireless +tirelessly +tires +tiresome +tiresomely +tiring +tiro +tissue +tissues +tit +titan +titanic +titanically +titanium +titans +titbit +titbits +titfortat +tithe +tithes +tithing +titillate +titillated +titillating +titillation +title +titled +titles +titling +titrated +titration +titre +titres +tits +titter +tittered +tittering +titters +titular +to +toad +toadies +toads +toadstool +toadstools +toady +toast +toasted +toaster +toasters +toasting +toasts +toasty +tobacco +tobacconist +tobacconists +tobago +toboggan +tobogganing +toby +toccata +tocsin +today +toddle +toddled +toddler +toddlers +toddling +toddy +todies +toe +toed +toehold +toeing +toeless +toenail +toenails +toes +toffee +toffees +toffy +tofu +tog +toga +togas +together +togetherness +toggle +toggled +toggles +toggling +togo +togs +toil +toiled +toiler +toilet +toileting +toiletries +toiletry +toilets +toilette +toiling +toils +toitoi +tokamak +token +tokenism +tokenistic +tokens +tokyo +tolbooth +told +toledo +tolerable +tolerably +tolerance +tolerances +tolerant +tolerantly +tolerate +tolerated +tolerates +tolerating +toleration +toll +tolled +tollgate +tolling +tolls +toluene +tomahawk +tomahawks +tomato +tomb +tombola +tomboy +tomboys +tombs +tombstone +tombstones +tomcat +tome +tomes +tomfoolery +tomography +tomorrow +tomorrows +tomtom +ton +tonal +tonalities +tonality +tonally +tone +toned +tonedeaf +toneless +tonelessly +toner +toners +tones +tonga +tongs +tongue +tongueincheek +tongues +tonguetied +tonguetwister +tonguetwisters +tonic +tonics +tonight +toning +tonnage +tonnages +tonne +tonnes +tons +tonsil +tonsillectomy +tonsillitis +tonsils +tonsure +tony +too +took +tool +toolbox +toolboxes +tooled +tooling +toolmaker +toolmaking +tools +toot +tooted +tooth +toothache +toothbrush +toothbrushes +toothed +toothier +toothiest +toothless +toothmarks +toothpaste +toothpick +toothpicks +toothsome +toothy +tooting +tootle +top +topaz +topazes +topcoat +topheavy +topiary +topic +topical +topicality +topically +topics +topless +toplevel +topmost +topnotch +topographic +topographical +topographically +topography +topological +topologically +topologies +topologist +topologists +topology +topped +topper +topping +toppings +topple +toppled +topples +toppling +tops +topsoil +topspin +topsyturvy +torah +torch +torchbearer +torchbearers +torched +torches +torchlight +torchlit +tore +tori +tories +torment +tormented +tormenting +tormentor +tormentors +torments +torn +tornado +toronto +torpedo +torpedoed +torpid +torpor +torque +torques +torrent +torrential +torrents +torrid +torsion +torsional +torsions +torso +tortoise +tortoises +tortoiseshell +torts +tortuous +tortuously +torture +tortured +torturer +torturers +tortures +torturing +torturous +torus +tory +toss +tossed +tossers +tosses +tossing +tossup +tossups +tot +total +totalising +totalitarian +totalitarianism +totality +totalled +totalling +totally +totals +totem +totemic +totems +tots +totted +totter +tottered +tottering +totters +totting +toucans +touch +touchandgo +touchdown +touchdowns +touche +touched +toucher +touches +touchier +touchiest +touchiness +touching +touchingly +touchy +tough +toughen +toughened +toughens +tougher +toughest +toughie +toughies +toughly +toughness +toughs +toupee +tour +toured +tourer +tourers +touring +tourism +tourist +touristic +tourists +touristy +tournament +tournaments +tourney +tourniquet +tours +tousled +tousles +tout +touted +touting +touts +tow +toward +towards +towed +towel +towelled +towelling +towels +tower +towered +towering +towers +towing +town +towns +townscape +townscapes +townsfolk +township +townships +townsman +townsmen +townspeople +towpath +towpaths +tows +toxaemia +toxic +toxicity +toxicological +toxicology +toxin +toxins +toy +toyed +toying +toymaker +toys +toyshop +trace +traceability +traceable +traced +traceless +tracer +tracers +tracery +traces +trachea +tracheal +tracheostomy +tracheotomy +tracing +tracings +track +trackbed +tracked +tracker +trackers +tracking +trackless +tracks +tracksuit +tracksuits +trackway +trackways +tract +tractability +tractable +traction +tractor +tractors +tracts +trad +trade +tradeable +traded +tradein +tradeins +trademark +trademarked +trademarks +trader +traders +trades +tradesman +tradesmen +tradespeople +trading +tradings +tradition +traditional +traditionalism +traditionalist +traditionalists +traditionally +traditions +traduced +traducer +traffic +trafficked +trafficker +traffickers +trafficking +tragedian +tragedians +tragedies +tragedy +tragic +tragical +tragically +trail +trailed +trailer +trailers +trailing +trails +train +trained +trainee +trainees +trainer +trainers +training +trainings +trainload +trains +trait +traitor +traitorous +traitorously +traitors +traits +trajectories +trajectory +tram +tramcar +tramcars +tramlines +trammel +tramp +tramped +tramping +trample +trampled +tramples +trampling +trampoline +trampolines +trampolining +trampolinist +tramps +trams +tramway +tramways +trance +trances +tranche +tranches +tranny +tranquil +tranquillise +tranquillised +tranquilliser +tranquillisers +tranquillity +tranquilly +transact +transacted +transacting +transaction +transactional +transactions +transactor +transatlantic +transceiver +transceivers +transcend +transcended +transcendence +transcendent +transcendental +transcendentally +transcendentals +transcending +transcends +transcontinental +transcribe +transcribed +transcriber +transcribers +transcribes +transcribing +transcript +transcription +transcriptional +transcriptions +transcripts +transducer +transducers +transduction +transection +transept +transepts +transfer +transferability +transferable +transferee +transferees +transference +transferral +transferred +transferring +transfers +transfiguration +transfigured +transfinite +transfinitely +transfixed +transform +transformation +transformational +transformations +transformative +transformed +transformer +transformers +transforming +transforms +transfused +transfusing +transfusion +transfusions +transgress +transgressed +transgresses +transgressing +transgression +transgressions +transgressive +transgressor +transgressors +transhipment +transience +transient +transiently +transients +transistor +transistorised +transistors +transit +transition +transitional +transitions +transitive +transitively +transitivity +transitoriness +transitory +transits +translatable +translate +translated +translates +translating +translation +translational +translations +translator +translators +transliterate +transliterated +transliterates +transliterating +transliteration +transliterations +translucence +translucency +translucent +transmigration +transmissible +transmission +transmissions +transmissive +transmit +transmits +transmittable +transmittance +transmitted +transmitter +transmitters +transmitting +transmogrification +transmogrifies +transmogrify +transmutation +transmute +transmuted +transmuting +transnational +transom +transonic +transparencies +transparency +transparent +transparently +transpiration +transpire +transpired +transpires +transplant +transplantation +transplanted +transplanting +transplants +transponder +transponders +transport +transportability +transportable +transportation +transported +transporter +transporters +transporting +transports +transpose +transposed +transposes +transposing +transposition +transpositions +transverse +transversely +transvestism +transvestite +transvestites +trap +trapdoor +trapdoors +trapeze +trappable +trapped +trapper +trappers +trapping +trappings +traps +trash +trashed +trashy +trauma +traumas +traumata +traumatic +traumatise +traumatised +travail +travails +travel +travelled +traveller +travellers +travelling +travelogue +travelogues +travels +traversal +traversals +traverse +traversed +traverses +traversing +travesties +travesty +trawl +trawled +trawler +trawlers +trawling +trawlnet +trawls +tray +trays +treacherous +treacherously +treachery +treacle +tread +treader +treading +treadle +treadmill +treadmills +treads +treason +treasonable +treasonous +treasons +treasure +treasured +treasurer +treasurers +treasurership +treasures +treasuries +treasuring +treasury +treat +treatable +treated +treaties +treating +treatise +treatises +treatment +treatments +treats +treaty +treble +trebled +trebles +trebling +tree +treeless +trees +treetop +treetops +trefoil +trefoils +trek +trekked +trekker +trekkers +trekking +treks +trellis +trellised +trellises +tremble +trembled +trembler +trembles +trembling +tremblingly +tremblings +tremendous +tremendously +tremolo +tremor +tremors +tremulous +tremulously +tremulousness +trench +trenchant +trenchantly +trenched +trencher +trenches +trenching +trend +trendier +trendiest +trendiness +trends +trendy +trepanned +trepidation +trepidations +trespass +trespassed +trespasser +trespassers +trespasses +trespassing +tress +tresses +trestle +trestles +trews +triad +triadic +triads +triage +trial +trials +triangle +triangles +triangular +triangulate +triangulated +triangulating +triangulation +triangulations +triathlon +triatomic +tribal +tribalism +tribally +tribe +tribes +tribesman +tribesmen +tribespeople +tribulation +tribulations +tribunal +tribunals +tribune +tribunes +tributaries +tributary +tribute +tributes +trice +trick +tricked +trickery +trickier +trickiest +trickily +tricking +trickle +trickled +trickles +trickling +tricks +trickster +tricksters +tricky +tricolour +tricolours +tricycle +tricycles +trident +tridents +tried +triennial +trier +tries +triffid +triffids +trifle +trifled +trifler +trifles +trifling +trigger +triggered +triggerhappy +triggering +triggers +triglyceride +trigonometric +trigonometrical +trigonometry +trigram +trigrams +trigs +trikes +trilateral +trilby +trilingual +trill +trilled +trilling +trillion +trillions +trills +trilobite +trilobites +trilogies +trilogy +trim +trimaran +trimmed +trimmer +trimmers +trimming +trimmings +trimodal +trims +trinidad +trinity +trinket +trinkets +trio +trip +tripartite +tripe +triplane +triple +tripled +triples +triplet +triplets +triplex +triplicate +triplication +tripling +triply +tripod +tripods +tripoli +tripped +trippers +tripping +trips +triptych +tripwire +tripwires +trireme +trisecting +trisection +trisector +tristan +trite +triteness +tritium +triumph +triumphal +triumphalism +triumphalist +triumphant +triumphantly +triumphed +triumphing +triumphs +triumvirate +trivia +trivial +trivialisation +trivialisations +trivialise +trivialised +trivialises +trivialising +trivialities +triviality +trivially +trod +trodden +troglodyte +troglodytes +troika +troikas +troll +trolley +trolleys +trolling +trollish +trolls +trombone +trombones +trombonist +trombonists +troop +trooped +trooper +troopers +trooping +troops +troopship +trope +tropes +trophies +trophy +tropic +tropical +tropically +tropics +tropopause +troposphere +tropospheric +trot +trots +trotted +trotter +trotters +trotting +troubadour +troubadours +trouble +troubled +troublemaker +troublemakers +troubles +troubleshooter +troubleshooters +troubleshooting +troublesome +troublesomeness +troubling +trough +troughs +trounce +trounced +trounces +trouncing +troupe +trouper +troupers +troupes +trouser +trousers +trout +trouts +trove +trowel +trowels +troy +truancy +truant +truanting +truants +truce +truces +truck +trucks +truculence +truculent +truculently +trudge +trudged +trudges +trudging +true +trueblue +truer +truest +truffle +truffles +truism +truisms +truly +trump +trumped +trumpery +trumpet +trumpeted +trumpeter +trumpeters +trumpeting +trumpets +trumps +truncate +truncated +truncates +truncating +truncation +truncations +truncheon +truncheons +trundle +trundled +trundles +trundling +trunk +trunking +trunks +trunnion +trunnions +truss +trussed +trusses +trussing +trust +trusted +trustee +trustees +trusteeship +trustful +trustfully +trustfulness +trusties +trusting +trustingly +trusts +trustworthiness +trustworthy +trusty +truth +truthful +truthfully +truthfulness +truths +try +trying +tsetse +tshirt +tsunami +tswana +tswanas +tuareg +tuaregs +tuatara +tub +tuba +tubas +tubby +tube +tubed +tubeless +tuber +tubercular +tuberculosis +tubers +tubes +tubing +tubs +tubular +tubules +tuck +tucked +tucker +tuckers +tucking +tucks +tues +tuesday +tuesdays +tuft +tufted +tufting +tufts +tug +tugela +tugged +tugging +tugs +tuition +tulip +tulips +tumble +tumbled +tumbledown +tumbler +tumblers +tumbles +tumbling +tumbrils +tumescent +tummies +tummy +tumour +tumours +tumult +tumults +tumultuous +tumultuously +tumulus +tun +tuna +tunable +tunas +tundra +tundras +tune +tuned +tuneful +tunefully +tuneless +tunelessly +tuner +tuners +tunes +tungsten +tunic +tunics +tuning +tunings +tunisia +tunisian +tunnel +tunnelled +tunnellers +tunnelling +tunnels +tunny +tuns +tuppence +tuppences +turban +turbans +turbid +turbidity +turbine +turbines +turbo +turbocharged +turbocharger +turboprop +turbot +turbulence +turbulent +tureen +tureens +turf +turfed +turfs +turfy +turgid +turgidity +turgidly +turin +turk +turkey +turkeys +turkish +turks +turmeric +turmoil +turmoils +turn +turnabout +turnaround +turncoat +turncoats +turned +turner +turners +turning +turnings +turnip +turnips +turnkey +turnout +turnouts +turnover +turnovers +turnpike +turnround +turns +turnstile +turnstiles +turntable +turntables +turpentine +turpitude +turquoise +turret +turreted +turrets +turtle +turtleneck +turtles +tuscany +tusk +tusked +tusker +tusks +tussle +tussles +tussling +tussock +tussocks +tussocky +tutelage +tutelary +tutor +tutored +tutorial +tutorials +tutoring +tutors +tutu +tuxedo +twain +twang +twanged +twanging +twangs +tweak +tweaked +tweaking +tweaks +twee +tweed +tweeds +tweedy +tweeness +tweet +tweeter +tweeters +tweets +tweezers +twelfth +twelfths +twelve +twelves +twenties +twentieth +twenty +twice +twiddle +twiddled +twiddler +twiddles +twiddling +twiddly +twig +twigged +twiggy +twigs +twilight +twilit +twill +twin +twine +twined +twines +twinge +twinges +twining +twinkle +twinkled +twinkles +twinkling +twinned +twinning +twins +twirl +twirled +twirling +twirls +twist +twisted +twister +twisters +twisting +twists +twisty +twit +twitch +twitched +twitches +twitching +twitchy +twitter +twittered +twittering +two +twodimensional +twofaced +twofold +twosome +tycoon +tycoons +tying +tyke +tykes +type +typecast +typecasting +typed +typeface +typefaces +typeless +types +typescript +typescripts +typeset +typesets +typesetter +typesetters +typesetting +typewriter +typewriters +typewriting +typewritten +typhoid +typhoon +typhoons +typhus +typical +typicality +typically +typified +typifies +typify +typifying +typing +typings +typist +typists +typographer +typographers +typographic +typographical +typographically +typography +typological +typologically +typologies +typology +tyrannic +tyrannical +tyrannically +tyrannicide +tyrannies +tyrannise +tyrannised +tyrannous +tyranny +tyrant +tyrants +tyre +tyres +uboats +udder +udders +ufo +uganda +ugandan +uglier +ugliest +uglification +ugliness +ugly +uhuh +uke +ukraine +ukulele +ukuleles +ulcer +ulcerate +ulcerated +ulceration +ulcerations +ulcerous +ulcers +ulster +ulsters +ulterior +ultimacy +ultimate +ultimately +ultimatum +ultimatums +ultimo +ultra +ultramarine +ultramontane +ultrasonic +ultrasonics +ultrasound +ultraviolet +umbilical +umbilicus +umbra +umbrae +umbrage +umbrageous +umbras +umbrella +umbrellas +umlaut +umlauts +umpire +umpired +umpires +umpiring +umpteen +umpteenth +unabashed +unabashedly +unabated +unable +unabridged +unabsorbed +unacceptability +unacceptable +unacceptably +unaccepted +unaccommodating +unaccompanied +unaccountability +unaccountable +unaccountably +unaccounted +unaccustomed +unachievable +unacknowledged +unacquainted +unactivated +unadapted +unadaptive +unaddressable +unaddressed +unadjusted +unadorned +unadulterated +unadventurous +unadvertised +unaesthetic +unaffected +unaffectedly +unaffiliated +unaffordable +unafraid +unaided +unaligned +unalike +unallocated +unalloyed +unalterable +unalterably +unaltered +unambiguity +unambiguous +unambiguously +unambitious +unamended +unamused +unanimity +unanimous +unanimously +unannotated +unannounced +unanswerable +unanswered +unanticipated +unapologetic +unappealing +unappeased +unappetising +unappreciated +unappreciative +unapproachable +unapproved +unapt +unarchived +unarguable +unarguably +unarm +unarmed +unarms +unaroused +unarticulated +unary +unashamed +unashamedly +unasked +unassailable +unassailed +unassertive +unassigned +unassisted +unassociated +unassuaged +unassuming +unattached +unattainable +unattainably +unattained +unattended +unattenuated +unattractive +unattractiveness +unattributable +unattributed +unaudited +unauthenticated +unauthorised +unavailability +unavailable +unavailing +unavailingly +unavenged +unavoidable +unavoidably +unawakened +unaware +unawareness +unawares +unawed +unbalance +unbalanced +unbalances +unbalancing +unbanned +unbanning +unbaptised +unbar +unbarred +unbars +unbearable +unbearably +unbeatable +unbeaten +unbecoming +unbeknown +unbeknownst +unbelievability +unbelievable +unbelievably +unbelieved +unbeliever +unbelievers +unbelieving +unbend +unbending +unbent +unbiased +unbiasedly +unbiassed +unbiassedly +unbidden +unbind +unbleached +unblemished +unblinking +unblinkingly +unblock +unblocked +unblocking +unbloodied +unboiled +unbolt +unbolted +unbooked +unborn +unbosom +unbothered +unbound +unbounded +unbowed +unbraced +unbracketed +unbranded +unbreakability +unbreakable +unbridgeable +unbridged +unbridled +unbroken +unbruised +unbuckle +unbuckled +unbuckling +unbundled +unburden +unburdened +unburdening +unburied +unburned +unburnt +unbutton +unbuttoned +unbuttoning +uncalibrated +uncalled +uncancelled +uncannily +uncanny +uncapped +uncared +uncaring +uncased +uncatalogued +uncaught +unceasing +unceasingly +uncelebrated +uncensored +unceremoniously +uncertain +uncertainly +uncertainties +uncertainty +unchain +unchained +unchaining +unchallengeable +unchallenged +unchangeable +unchanged +unchanging +unchaperoned +uncharacteristic +uncharacteristically +uncharged +uncharismatic +uncharitable +uncharitably +uncharted +unchartered +uncheckable +unchecked +unchristened +unchristian +unchronicled +uncircumcised +uncivil +uncivilised +unclad +unclaimed +unclasped +unclasping +unclassifiable +unclassified +uncle +unclean +uncleanliness +uncleanly +unclear +uncleared +unclench +unclenched +unclenching +uncles +unclesam +unclimbable +unclimbed +unclog +unclosed +unclothed +unclouded +uncluttered +uncoil +uncoiled +uncoiling +uncoils +uncollated +uncollected +uncollimated +uncombed +uncomely +uncomfortable +uncomfortableness +uncomfortably +uncommitted +uncommon +uncommonly +uncommunicative +uncompetitive +uncompetitiveness +uncompilable +uncomplaining +uncomplainingly +uncompleted +uncomplicated +uncomplimentary +uncomprehending +uncomprehendingly +uncompressed +uncompromisable +uncompromising +uncompromisingly +unconcern +unconcerned +unconcernedly +unconditional +unconditionally +unconditioned +unconfined +unconfirmed +unconfused +uncongenial +unconnected +unconquerable +unconquered +unconscionable +unconscionably +unconscious +unconsciously +unconsciousness +unconsecrated +unconsidered +unconsoled +unconstitutional +unconstitutionally +unconstrained +unconsumed +uncontainable +uncontaminated +uncontentious +uncontested +uncontrollable +uncontrollably +uncontrolled +uncontroversial +uncontroversially +unconventional +unconventionally +unconverted +unconvinced +unconvincing +unconvincingly +uncooked +uncooperative +uncoordinated +uncorked +uncorrectable +uncorrected +uncorrelated +uncorroborated +uncorrupted +uncountable +uncountably +uncounted +uncouple +uncoupled +uncouth +uncouthness +uncover +uncovered +uncovering +uncovers +uncrackable +uncreased +uncreated +uncreative +uncredited +uncritical +uncritically +uncross +uncrossable +uncrossed +uncrowded +uncrowned +uncrushable +unction +unctuous +unctuously +uncultivated +uncultured +uncured +uncurled +uncut +undamaged +undated +undaunted +undead +undeceived +undecidability +undecidable +undecided +undeclared +undecorated +undefeated +undefended +undefiled +undefinable +undefined +undeliverable +undelivered +undemanding +undemocratic +undemocratically +undemonstrative +undeniable +undeniably +under +underachievement +underachieving +underarm +underbelly +underbody +undercarriage +underclass +underclothes +underclothing +undercoat +undercoating +undercooked +undercover +undercroft +undercurrent +undercurrents +undercut +undercuts +undercutting +underdeveloped +underdevelopment +underdog +underdogs +underdone +undereducated +underemphasis +underemployment +underestimate +underestimated +underestimates +underestimating +underestimation +underexploited +underfed +underfloor +underflow +underfoot +underframe +underfund +underfunded +underfunding +undergarment +undergarments +undergo +undergoes +undergoing +undergone +undergraduate +undergraduates +underground +undergrounds +undergrowth +underhand +underinvestment +underlain +underlay +underlie +underlies +underline +underlined +underlines +underling +underlings +underlining +underlinings +underloaded +underlying +undermanned +undermine +undermined +undermines +undermining +underneath +undernourished +undernourishment +underpaid +underpants +underparts +underpass +underpay +underpaying +underperformance +underperformed +underpin +underpinned +underpinning +underpinnings +underpins +underplay +underplayed +underplays +underpopulated +underpopulation +underpowered +underpriced +underpricing +underprivileged +underrate +underrated +underscored +undersea +underside +undersides +undersigned +undersized +underskirt +understaffed +understand +understandability +understandable +understandably +understander +understanding +understandingly +understandings +understands +understate +understated +understatement +understates +understating +understocked +understood +understorey +understudy +undertake +undertaken +undertaker +undertakers +undertakes +undertaking +undertakings +undertone +undertones +undertook +underutilised +undervalued +undervalues +undervaluing +underwater +underwear +underweight +underwent +underwood +underworld +underwrite +underwriter +underwriters +underwrites +underwriting +underwritten +underwrote +undeserved +undeservedly +undeserving +undesirability +undesirable +undesirables +undesirably +undesired +undetectability +undetectable +undetectably +undetected +undetermined +undeterred +undetonated +undeveloped +undiagnosable +undiagnosed +undid +undifferentiated +undigested +undignified +undiluted +undiminished +undiplomatic +undirected +undiscerning +undisciplined +undisclosed +undiscovered +undiscriminated +undiscriminating +undisguised +undisguisedly +undismayed +undisplayed +undisputed +undissipated +undistinguished +undistorted +undistributed +undisturbed +undivided +undo +undocumented +undoing +undoings +undomesticated +undone +undoubted +undoubtedly +undress +undressed +undressing +undrinkability +undrinkable +undroppable +undue +undulate +undulated +undulates +undulating +undulation +undulations +unduly +undying +unearned +unearth +unearthed +unearthing +unearthly +unearths +unease +uneasier +uneasiest +uneasily +uneasiness +uneasy +uneatable +uneaten +uneconomic +uneconomical +unedifying +unedited +uneducated +unelectable +unelected +unemotional +unemotionally +unemployable +unemployed +unemployment +unencrypted +unencumbered +unending +unendingly +unendurable +unenforceable +unengaged +unenlightened +unenlightening +unentered +unenthusiastic +unenthusiastically +unenviable +unequal +unequalled +unequally +unequivocal +unequivocally +unergonomic +unerring +unerringly +unescorted +unestablished +unethical +unethically +unevaluated +uneven +unevenly +unevenness +uneventful +uneventfully +unexacting +unexamined +unexceptionable +unexceptional +unexcited +unexciting +unexpanded +unexpected +unexpectedly +unexpectedness +unexpired +unexplainable +unexplained +unexploded +unexploited +unexplored +unexpressed +unexpurgated +unfailing +unfailingly +unfair +unfairly +unfairness +unfaithful +unfaithfulness +unfalsifiable +unfamiliar +unfamiliarity +unfancied +unfashionable +unfashionably +unfasten +unfastened +unfastening +unfathomable +unfathomed +unfatigued +unfavourable +unfavourably +unfavoured +unfeasible +unfeasibly +unfed +unfeeling +unfeelingly +unfeigned +unfelt +unfeminine +unfenced +unfertilised +unfetchable +unfettered +unfilled +unfinished +unfired +unfirm +unfit +unfitness +unfits +unfitting +unfix +unfixed +unflagging +unflattering +unflawed +unfledged +unflinching +unflinchingly +unfocused +unfocussed +unfold +unfolded +unfolding +unfolds +unforced +unfordable +unforeseeable +unforeseen +unforgettable +unforgivable +unforgivably +unforgiven +unforgiving +unformed +unforthcoming +unfortunate +unfortunately +unfortunates +unfounded +unfreeze +unfreezing +unfrequented +unfriendlier +unfriendliest +unfriendliness +unfriendly +unfrozen +unfruitful +unfulfillable +unfulfilled +unfunded +unfunny +unfurl +unfurled +unfurling +unfurls +unfurnished +unfussy +ungainly +ungenerous +ungenerously +ungentlemanly +ungerminated +unglamorous +unglazed +ungodly +ungovernable +ungoverned +ungraceful +ungracious +ungraciously +ungrammatical +ungrateful +ungratefully +ungrounded +unguarded +unguessable +unguided +ungulates +unhampered +unhand +unhandy +unhappier +unhappiest +unhappily +unhappiness +unhappy +unharmed +unhealthier +unhealthiest +unhealthily +unhealthy +unheard +unheated +unheeded +unhelpful +unhelpfully +unheralded +unheroic +unhesitating +unhesitatingly +unhidden +unhindered +unhinge +unhinged +unholy +unhonoured +unhook +unhooked +unhooks +unhoped +unhuman +unhurried +unhurriedly +unhurt +unhygienic +unhyphenated +unicameral +unicellular +unicorn +unicorns +unicycle +unicycles +unicyclist +unicyclists +unideal +unidentifiable +unidentified +unidirectional +unifiable +unification +unified +unifier +unifies +uniform +uniformed +uniformity +uniformly +uniforms +unify +unifying +unilateral +unilateralism +unilateralist +unilaterally +unillustrated +unimaginable +unimaginably +unimaginative +unimaginatively +unimagined +unimpaired +unimpeachable +unimpeded +unimplementable +unimplemented +unimportance +unimportant +unimpressed +unimpressive +unimproved +unincorporated +uninfected +uninfluenced +uninformative +uninformatively +uninformed +uninhabitable +uninhabited +uninhibited +uninhibitedly +uninitialised +uninitiated +uninjured +uninspired +uninspiring +uninsulated +uninsurable +uninsured +unintellectual +unintelligent +unintelligible +unintended +unintentional +unintentionally +uninterested +uninterestedly +uninteresting +uninterpretable +uninterpreted +uninterrupted +uninterruptedly +unintuitive +uninvented +uninvited +uninviting +uninvolved +union +unionisation +unionised +unionism +unionist +unionists +unions +unipolar +unique +uniquely +uniqueness +unisex +unison +unisons +unissued +unit +unitary +unite +united +unites +unities +uniting +units +unity +universal +universalism +universalist +universality +universally +universals +universe +universes +universities +university +unjam +unjammed +unjamming +unjaundiced +unjust +unjustifiable +unjustifiably +unjustified +unjustly +unjustness +unkempt +unkept +unkind +unkindest +unkindly +unkindness +unknightly +unknowable +unknowing +unknowingly +unknown +unknowns +unlabelled +unlace +unlaced +unlacing +unladen +unladylike +unlamented +unlatching +unlawful +unlawfully +unlawfulness +unleaded +unlearn +unlearned +unleash +unleashed +unleashes +unleashing +unleavened +unless +unlicensed +unlike +unlikeable +unlikeliest +unlikelihood +unlikeliness +unlikely +unlimited +unlined +unlink +unlinked +unlisted +unlit +unload +unloaded +unloading +unloads +unlock +unlocked +unlocking +unlocks +unloose +unlovable +unloved +unlovely +unloving +unluckier +unluckiest +unluckily +unlucky +unmade +unmagnified +unmaintainable +unmaintained +unmaking +unmanageable +unmanageably +unmanly +unmanned +unmannerly +unmapped +unmarked +unmarried +unmask +unmasked +unmasks +unmatchable +unmatched +unmeasurable +unmechanised +unmeetable +unmelodious +unmemorable +unmemorised +unmentionable +unmentionables +unmentioned +unmercifully +unmerited +unmet +unmissable +unmistakable +unmistakably +unmistakeable +unmistakeably +unmitigated +unmixed +unmnemonic +unmodifiable +unmodified +unmolested +unmonitored +unmotivated +unmounted +unmoved +unmoving +unmusical +unmusically +unmutilated +unmuzzled +unnamed +unnatural +unnaturally +unnavigable +unnecessarily +unnecessary +unneeded +unnerve +unnerved +unnerving +unnervingly +unnoted +unnoticeable +unnoticed +unnumbered +unobjectionable +unobliging +unobservable +unobservant +unobserved +unobstructed +unobtainable +unobtrusive +unobtrusively +unoccupied +unofficial +unofficially +unopened +unopposed +unoptimised +unordered +unorganised +unoriginal +unoriginality +unorthodox +unorthodoxy +unowned +unpack +unpacked +unpackers +unpacking +unpacks +unpaid +unpainted +unpaired +unpalatable +unparalleled +unpardonable +unparodied +unpasted +unpasteurised +unpatriotic +unpaved +unpeeled +unperceived +unpersonalised +unpersuaded +unpersuasive +unperturbed +unphysical +unpick +unpicked +unpicking +unplaced +unplanned +unplayability +unplayable +unpleasant +unpleasantly +unpleasantness +unpleasing +unploughed +unplug +unplugged +unplugging +unpoetical +unpolished +unpolluted +unpopular +unpopularity +unpopulated +unportable +unpractical +unpractised +unprecedented +unprecedentedly +unpredictability +unpredictable +unpredictably +unpredicted +unprejudiced +unpremeditated +unprepared +unpreparedness +unprepossessing +unpressurised +unpretending +unpretentious +unprincipled +unprintable +unprinted +unprivileged +unproblematic +unprocessed +unproductive +unprofessional +unprofitable +unprofitably +unpromising +unprompted +unpronounceable +unpronounced +unprotected +unprovable +unproved +unproven +unprovoked +unpublicised +unpublishable +unpublished +unpunctual +unpunctuality +unpunished +unqualified +unquantifiable +unquantified +unquenchable +unquestionable +unquestionably +unquestioned +unquestioning +unquestioningly +unquiet +unquote +unquoted +unraisable +unravel +unravelled +unravelling +unravels +unreachable +unreached +unread +unreadability +unreadable +unready +unreal +unrealisable +unrealised +unrealistic +unrealistically +unreality +unreasonable +unreasonableness +unreasonably +unreasoned +unreasoning +unreceived +unreceptive +unrecognisable +unrecognisably +unrecognised +unrecommended +unreconciled +unreconstructed +unrecorded +unrecoverable +unredeemed +unreduced +unrefereed +unreferenced +unreferencing +unrefined +unreflected +unreformed +unrefreshed +unrefrigerated +unregarded +unregenerate +unregistered +unregulated +unrehearsed +unrelated +unreleasable +unreleased +unrelenting +unrelentingly +unreliability +unreliable +unreliably +unrelieved +unremarkable +unremarked +unremembered +unremitting +unremittingly +unrepairable +unrepeatability +unrepeatable +unrepeated +unrepentant +unrepentantly +unreported +unrepresentable +unrepresentative +unrepresented +unreproducible +unrequested +unrequited +unreserved +unreservedly +unresisting +unresistingly +unresolvable +unresolved +unresponsive +unresponsiveness +unrest +unrestrained +unrestricted +unrests +unrevealed +unrevealing +unrevised +unrewarded +unrewarding +unriddle +unripe +unrivalled +unroll +unrolled +unrolling +unromantic +unruffled +unruliness +unruly +unsaddled +unsafe +unsafely +unsafeness +unsaid +unsaleable +unsalted +unsanitary +unsatisfactorily +unsatisfactoriness +unsatisfactory +unsatisfiable +unsatisfied +unsatisfying +unsaturated +unsaved +unsavory +unsavoury +unscaled +unscathed +unscheduled +unscientific +unscramble +unscrambled +unscrambles +unscrambling +unscratched +unscrew +unscrewed +unscrewing +unscripted +unscrupulous +unseal +unsealable +unsealed +unsealing +unseasonable +unseasonably +unseasonal +unseat +unseated +unseaworthiness +unsecured +unseeded +unseeing +unseeingly +unseemly +unseen +unselected +unselfconscious +unselfconsciously +unselfish +unselfishly +unselfishness +unsellable +unsensational +unsent +unsentimental +unserviceable +unserviced +unset +unsettle +unsettled +unsettling +unshackled +unshaded +unshakable +unshakeable +unshaken +unshaped +unshapen +unsharable +unshared +unshaved +unshaven +unsheathed +unshielded +unshockable +unshod +unshorn +unshrinking +unsighted +unsightly +unsigned +unsimplified +unsinkable +unskilful +unskilled +unsliced +unsmiling +unsmilingly +unsmooth +unsociable +unsocial +unsoiled +unsold +unsolder +unsolicited +unsolvable +unsolved +unsophisticated +unsophistication +unsorted +unsought +unsound +unsoundness +unspanned +unspeakable +unspeakably +unspecialised +unspecific +unspecified +unspectacular +unspent +unspoiled +unspoilt +unspoken +unsporting +unstable +unstack +unstacked +unstacking +unstained +unstamped +unstated +unsteadily +unsteadiness +unsteady +unsterilised +unsticking +unstimulated +unstinting +unstintingly +unstirred +unstoppable +unstoppably +unstopped +unstrapped +unstressed +unstretchable +unstructured +unstuck +unsubdued +unsubsidised +unsubstantial +unsubstantiated +unsubstituted +unsubtle +unsubtly +unsuccessful +unsuccessfully +unsuitability +unsuitable +unsuitableness +unsuitably +unsuited +unsullied +unsung +unsupervised +unsupportable +unsupported +unsuppressed +unsure +unsureness +unsurfaced +unsurpassable +unsurpassed +unsurprised +unsurprising +unsurprisingly +unsurvivable +unsuspected +unsuspecting +unsustainable +unswappable +unsweetened +unswerving +unswervingly +unsympathetic +unsympathetically +unsystematic +untactful +untagged +untainted +untalented +untamed +untangle +untangled +untangling +untapped +untarnished +untasted +untaught +untaxed +untaxing +untempered +untenability +untenable +untended +unterminated +untestable +untested +untethered +untextured +unthinkable +unthinkably +unthinking +unthinkingly +unthoughtful +untidier +untidiest +untidily +untidiness +untidy +untie +untied +unties +until +untimely +untiring +untitled +unto +untold +untouchable +untouchables +untouched +untoward +untraceable +untraced +untrained +untrammelled +untransformed +untranslatable +untranslated +untransportable +untrappable +untreatable +untreated +untried +untrodden +untroubled +untrue +untrusted +untrustworthy +untrusty +untruth +untruthful +untruthfully +untruths +unturned +untutored +untwist +untwisted +untying +untyped +untypical +untypically +unusable +unusably +unused +unusual +unusually +unutterable +unutterably +unvalidated +unvalued +unvanquished +unvarnished +unvarying +unvaryingly +unveil +unveiled +unveiling +unveils +unventilated +unverifiable +unverified +unversed +unvisitable +unvisited +unvoiced +unwanted +unwarily +unwarmed +unwarned +unwarrantable +unwarrantably +unwarranted +unwary +unwashed +unwatchable +unwatched +unwavering +unwaveringly +unweaned +unwearied +unweary +unwed +unwedded +unwedge +unweighted +unwelcome +unwelcoming +unwell +unwholesome +unwieldy +unwilling +unwillingly +unwillingness +unwind +unwindable +unwinding +unwinds +unwisdom +unwise +unwisely +unwisest +unwitting +unwittingly +unwontedly +unworkability +unworkable +unworldly +unworn +unworried +unworthily +unworthiness +unworthy +unwound +unwounded +unwrap +unwrapped +unwrapping +unwraps +unwritten +unyielding +unzip +unzipped +unzipping +unzips +up +upbeat +upbraid +upbraided +upbraiding +upbraids +upbringing +upbringings +upcast +upcoming +updatability +update +updated +updater +updates +updating +upended +upfield +upfront +upgradable +upgrade +upgradeable +upgraded +upgrades +upgrading +upgradings +upheaval +upheavals +upheld +uphill +uphold +upholder +upholders +upholding +upholds +upholster +upholstered +upholsterer +upholsterers +upholstery +upkeep +upland +uplands +uplift +uplifted +uplifting +uplifts +uplink +uplinks +upload +uploaded +uploads +upmarket +upmost +upon +upped +upper +uppercase +upperclass +uppercut +uppermost +uppers +upraised +uprate +uprated +uprating +upright +uprightly +uprightness +uprights +uprise +uprising +uprisings +upriver +uproar +uproarious +uproariously +uproars +uproo +uproot +uprooted +uprooting +uproots +ups +upset +upsets +upsetting +upshot +upside +upsidedown +upsilon +upstage +upstaged +upstages +upstaging +upstairs +upstanding +upstart +upstarts +upstream +upsurge +upsurges +upswing +uptake +upthrust +uptotheminute +uptown +upturn +upturned +upward +upwardly +upwards +upwind +uranium +uranus +urban +urbane +urbanely +urbanisation +urbanise +urbanised +urbanising +urbanites +urbanity +urchin +urchins +urea +ureter +ureters +urethane +urethra +urethrae +urethral +urethras +urethritis +urge +urged +urgency +urgent +urgently +urges +urging +urgings +urinary +urine +urn +urns +urologist +ursine +urticaria +uruguay +us +usability +usable +usage +usages +usances +use +useable +used +useful +usefully +usefulness +useless +uselessly +uselessness +user +userfriendliness +userfriendly +users +uses +usher +ushered +usherette +ushering +ushers +using +usual +usually +usurer +usurers +usurious +usurp +usurpation +usurped +usurper +usurping +usury +utah +utensil +utensils +uteri +uterine +uterus +utilisation +utilise +utilised +utilises +utilising +utilitarian +utilitarianism +utilitarians +utilities +utility +utmost +utopia +utopian +utopians +utopias +utter +utterance +utterances +uttered +utterer +uttering +utterly +uttermost +utters +uturns +uvula +uvular +vacancies +vacancy +vacant +vacantly +vacate +vacated +vacates +vacating +vacation +vacations +vaccinate +vaccinated +vaccinating +vaccination +vaccinations +vaccine +vaccines +vacillate +vacillating +vacillation +vacillations +vacua +vacuity +vacuole +vacuoles +vacuous +vacuously +vacuum +vacuums +vaduz +vagabond +vagabonds +vagrancy +vagrant +vagrants +vague +vaguely +vagueness +vaguer +vaguest +vain +vainer +vainest +vainglorious +vainglory +vainly +valance +vale +valediction +valedictory +valence +valencies +valency +valentine +vales +valet +valets +valhalla +valiant +valiantly +valid +validate +validated +validates +validating +validation +validity +validly +valise +valley +valleys +valour +valuable +valuables +valuation +valuations +value +valueadded +valued +valueformoney +valueless +valuer +valuers +values +valuing +valuta +valve +valves +vamp +vamped +vamper +vamping +vampire +vampires +vamps +van +vanadium +vandal +vandalise +vandalised +vandalising +vandalism +vandals +vane +vaned +vanes +vangogh +vanguard +vanilla +vanish +vanished +vanishes +vanishing +vanishingly +vanities +vanity +vanquish +vanquished +vanquishing +vans +vantage +vapid +vaporisation +vaporise +vaporised +vaporising +vaporous +vapour +vapours +variability +variable +variables +variably +variance +variances +variant +variants +variate +variates +variation +variational +variations +varicose +varied +variegated +varies +varietal +varieties +variety +various +variously +varnish +varnished +varnishes +varnishing +varsity +vary +varying +vascular +vase +vasectomies +vasectomy +vaseline +vases +vassal +vassalage +vassals +vast +vaster +vastly +vastness +vat +vatican +vats +vault +vaulted +vaulting +vaults +vaunted +vaunting +veal +vector +vectored +vectoring +vectorisation +vectorised +vectors +veer +veered +veering +veers +veg +vegan +vegans +vegetable +vegetables +vegetarian +vegetarianism +vegetarians +vegetate +vegetated +vegetating +vegetation +vegetational +vegetative +vegetive +veggies +vehemence +vehement +vehemently +vehicle +vehicles +vehicular +veil +veiled +veiling +veils +vein +veined +veins +velar +veld +veldt +vellum +velocipede +velocities +velocity +velodrome +velour +velum +velvet +velveteen +velveteens +velvets +velvety +venal +venality +vend +venders +vendetta +vendettas +vending +vendor +vendors +vends +veneer +veneered +veneers +venerable +venerate +venerated +venerates +venerating +veneration +venereal +venetian +vengeance +vengeful +vengefully +venial +venice +venison +venom +venomous +venomously +venoms +venose +venous +vent +vented +ventilate +ventilated +ventilating +ventilation +ventilator +ventilators +venting +ventings +ventral +ventrally +ventricle +ventricles +ventricular +ventriloquism +ventriloquist +ventriloquists +ventriloquy +vents +venture +ventured +venturer +ventures +venturesome +venturing +venue +venues +venus +veracity +veranda +verandah +verandahs +verandas +verb +verbal +verbalise +verbally +verbals +verbatim +verbiage +verbose +verbosely +verboseness +verbosity +verbs +verdant +verdict +verdicts +verdigris +verdure +verge +verged +verger +verges +verging +verifiability +verifiable +verification +verifications +verified +verifier +verifiers +verifies +verify +verifying +verily +verisimilitude +veritable +veritably +verities +verity +vermilion +vermin +verminous +vernacular +vernal +vernier +verona +versatile +versatility +verse +versed +verses +versicle +versification +versifier +version +versions +versus +vertebra +vertebrae +vertebral +vertebrate +vertebrates +vertex +vertical +verticality +vertically +verticals +vertices +vertiginous +vertigo +verve +very +vesicle +vesicles +vesicular +vespers +vessel +vessels +vest +vestal +vested +vestibular +vestibule +vestibules +vestige +vestiges +vestigial +vesting +vestment +vestments +vestry +vests +vesuvius +vet +veteran +veterans +veterinary +veto +vetoed +vetoing +vets +vetted +vetting +vex +vexation +vexations +vexatious +vexed +vexes +vexing +via +viability +viable +viably +viaduct +viaducts +vial +vials +vibes +vibrancy +vibrant +vibrantly +vibrate +vibrated +vibrates +vibrating +vibration +vibrational +vibrationally +vibrations +vibrato +vibrator +vibrators +vibratory +vicar +vicarage +vicarages +vicarious +vicariously +vicars +vice +vicechancellor +vicechancellors +vicepresidency +vicepresident +vicepresidential +vicepresidents +viceroy +viceroys +vices +vicinities +vicinity +vicious +viciously +viciousness +vicissitude +vicissitudes +victim +victimisation +victimise +victimised +victimises +victimising +victimless +victims +victor +victoria +victories +victorious +victoriously +victors +victory +victualling +victuals +video +videoconferencing +videodisc +videoed +videoing +videophone +videos +videotape +videotaped +videotapes +videotaping +vie +vied +vienna +vier +vies +view +viewable +viewed +viewer +viewers +viewfinder +viewfinders +viewing +viewings +viewpoint +viewpoints +views +vigil +vigilance +vigilant +vigilante +vigilantes +vigilantly +vigils +vignette +vignettes +vigorous +vigorously +vigour +viking +vikings +vile +vilely +vileness +viler +vilest +vilification +vilified +vilify +vilifying +villa +village +villager +villagers +villages +villain +villainous +villains +villainy +villas +vim +vims +vindicate +vindicated +vindicates +vindicating +vindication +vindictive +vindictively +vindictiveness +vine +vinegar +vinegars +vines +vineyard +vineyards +vino +vintage +vintages +vintner +vinyl +vinyls +viol +viola +violas +violate +violated +violates +violating +violation +violations +violator +violators +violence +violent +violently +violet +violets +violin +violinist +violinists +violins +violist +viper +vipers +virago +viral +virgil +virgin +virginal +virginia +virginity +virgins +virile +virility +virology +virtual +virtually +virtue +virtues +virtuosi +virtuosic +virtuosity +virtuoso +virtuous +virtuously +virulence +virulent +virulently +virus +viruses +visa +visage +visas +viscose +viscosity +viscount +viscounts +viscous +vise +visibilities +visibility +visible +visibly +vision +visionaries +visionary +visions +visit +visitable +visitant +visitation +visitations +visited +visiting +visitor +visitors +visits +visor +visors +vista +vistas +visual +visualisation +visualise +visualised +visualising +visually +visuals +vital +vitalise +vitality +vitally +vitals +vitamin +vitamins +vitiate +vitiated +vitiates +vitiating +vitreous +vitrified +vitriol +vitriolic +vituperate +vituperation +vituperative +viva +vivacious +vivaciously +vivacity +vivid +vividly +vividness +vivified +vivisected +vivisection +vivisectionist +vivisectionists +vixen +vixens +vizier +vocabularies +vocabulary +vocal +vocalisation +vocalisations +vocalise +vocalised +vocalising +vocalist +vocalists +vocally +vocals +vocation +vocational +vocationally +vocations +vocative +vociferous +vociferously +vodka +vogue +voice +voiced +voiceless +voices +voicing +voicings +void +voidable +voided +voiding +voids +voile +volatile +volatiles +volatility +volcanic +volcanically +volcanism +volcano +vole +voles +volga +volition +volley +volleyball +volleyed +volleying +volleys +volt +voltage +voltages +voltmeter +volts +volubility +voluble +volubly +volume +volumes +volumetric +voluminous +voluntarily +voluntary +volunteer +volunteered +volunteering +volunteers +voluptuous +voluptuously +voluptuousness +volute +vomit +vomited +vomiting +vomits +voodoo +voracious +voraciously +voracity +vortex +vortexes +vortices +vorticity +vote +voted +voteless +voter +voters +votes +voting +votive +vouch +vouched +voucher +vouchers +vouches +vouchsafe +vouchsafed +vouchsafing +vow +vowed +vowel +vowels +vowing +vows +voyage +voyaged +voyager +voyagers +voyages +voyaging +voyeur +voyeurism +voyeuristic +voyeurs +vulcan +vulcanise +vulcanised +vulcanism +vulcanologist +vulgar +vulgarities +vulgarity +vulgarly +vulgate +vulnerabilities +vulnerability +vulnerable +vulpine +vulture +vultures +vulva +vying +wackier +wacky +wad +wadding +waddle +waddled +waddles +waddling +wade +waded +wader +waders +wades +wadi +wading +wadings +wadis +wads +wafer +wafers +waffle +waffled +waffles +waft +wafted +wafting +wafts +wafture +wag +wage +waged +wager +wagered +wagerer +wagers +wages +wagged +waggery +wagging +waggish +waggishly +waggle +waggled +waggles +waggling +waggly +waggoners +waggons +waging +wagon +wagons +wags +wagtail +wagtails +waif +waifs +wail +wailed +wailer +wailing +wails +wainscot +wainscoting +waist +waistband +waistcoat +waistcoats +waistline +waists +wait +waited +waiter +waiters +waiting +waitress +waitresses +waits +waive +waived +waiver +waivers +waives +waiving +wake +waked +wakeful +wakefulness +waken +wakened +wakening +wakens +wakes +waking +wales +walk +walkable +walkabout +walkabouts +walked +walker +walkers +walkietalkie +walkietalkies +walking +walkout +walkover +walks +walkway +walkways +wall +wallabies +wallaby +wallchart +walled +wallet +wallets +wallflower +wallflowers +walling +wallop +wallow +wallowed +wallowing +wallows +wallpaper +wallpapering +wallpapers +walls +walltowall +walnut +walnuts +walrus +walruses +waltz +waltzed +waltzes +waltzing +wan +wand +wander +wandered +wanderer +wanderers +wandering +wanderings +wanderlust +wanders +wands +wane +waned +wanes +waning +wanly +want +wanted +wanting +wanton +wantonly +wantonness +wants +wapiti +wapitis +war +warble +warbled +warbler +warblers +warbles +warbling +ward +warded +warden +wardens +warder +warders +warding +wardrobe +wardrobes +wards +wardship +ware +warehouse +warehoused +warehouseman +warehousemen +warehouses +warehousing +wares +warfare +warhead +warheads +warhorse +warhorses +wariest +warily +wariness +waring +warlike +warlock +warlocks +warlord +warlords +warm +warmblooded +warmed +warmer +warmers +warmest +warmhearted +warmheartedness +warming +warmish +warmly +warmness +warmonger +warms +warmth +warmup +warn +warned +warners +warning +warningly +warnings +warns +warp +warpaint +warpath +warped +warping +warplanes +warps +warrant +warranted +warranties +warranting +warrants +warranty +warred +warren +warrens +warring +warrior +warriors +wars +warsaw +warship +warships +wart +warthog +warthogs +wartime +warts +warty +wary +was +wash +washable +washbasin +washbasins +washboard +washday +washed +washer +washers +washerwoman +washerwomen +washes +washing +washings +washington +washout +washstand +washy +wasp +waspish +waspishly +wasps +waspwaisted +wast +wastage +wastages +waste +wasted +wasteful +wastefully +wastefulness +wasteland +wastelands +wastepaper +waster +wasters +wastes +wasting +wastings +wastrel +watch +watchable +watchdog +watchdogs +watched +watcher +watchers +watches +watchful +watchfully +watchfulness +watching +watchmaker +watchmakers +watchman +watchmen +watchtower +watchtowers +watchword +watchwords +water +waterbed +waterbeds +watercolour +watercolourists +watercolours +watercooled +watercourse +watercourses +watercress +watered +waterfall +waterfalls +waterfowl +waterfront +waterglass +waterhole +waterholes +watering +waterless +waterline +waterlogged +waterloo +waterman +watermark +watermarks +watermelon +watermelons +watermen +watermill +watermills +waterproof +waterproofed +waterproofing +waterproofs +waterresistant +waters +watershed +watersheds +waterside +waterskiing +watersoluble +waterspouts +watertable +watertight +waterway +waterways +waterwheel +waterwheels +waterworks +watery +watt +wattage +wattle +watts +wave +waveband +wavebands +waved +waveform +waveforms +wavefront +waveguide +waveguides +wavelength +wavelengths +wavelet +wavelets +wavelike +waver +wavered +waverers +wavering +wavers +waves +wavier +waviest +wavily +waving +wavings +wavy +wax +waxed +waxen +waxes +waxing +waxpaper +waxwork +waxworks +waxy +way +wayout +ways +wayside +wayward +waywardly +waywardness +we +weak +weaken +weakened +weakening +weakens +weaker +weakest +weakish +weakkneed +weakling +weaklings +weakly +weakminded +weakness +weaknesses +weal +wealth +wealthier +wealthiest +wealthy +wean +weaned +weaning +weanling +weans +weapon +weaponry +weapons +wear +wearable +wearer +wearers +wearied +wearier +wearies +weariest +wearily +weariness +wearing +wearisome +wears +weary +wearying +wearyingly +weasel +weaselling +weaselly +weasels +weather +weatherbeaten +weatherbound +weathercock +weathercocks +weathered +weathering +weatherman +weathermen +weatherproof +weathers +weathervane +weatherworn +weave +weaved +weaver +weavers +weaves +weaving +weavings +web +webbed +webbing +webby +webfoot +webs +website +wed +wedded +wedding +weddings +wedge +wedged +wedges +wedging +wedlock +weds +wee +weed +weeded +weedier +weediest +weeding +weedkiller +weedkillers +weeds +weedy +week +weekday +weekdays +weekend +weekenders +weekends +weeklies +weekly +weeks +ween +weeny +weep +weeper +weeping +weepings +weeps +weepy +weevil +weevils +weigh +weighbridge +weighed +weighing +weighs +weight +weighted +weightier +weightiest +weightily +weighting +weightings +weightless +weightlessly +weightlessness +weightlifter +weightlifters +weightlifting +weights +weighty +weir +weird +weirder +weirdest +weirdly +weirdness +weirdo +weirs +welcome +welcomed +welcomer +welcomes +welcoming +weld +welded +welder +welders +welding +welds +welfare +well +welladjusted +wellbalanced +wellbehaved +wellbeing +wellbeloved +wellborn +wellbred +wellbuilt +wellchosen +wellconnected +welldefined +welldeserved +welldesigned +welldeveloped +welldisposed +welldressed +wellearned +welled +welleducated +wellendowed +wellequipped +wellestablished +wellfed +wellformed +wellfounded +wellgrounded +wellhead +wellinformed +welling +wellington +wellingtons +wellintentioned +wellkept +wellknown +wellliked +wellloved +wellmade +wellmannered +wellmarked +wellmatched +wellmeaning +wellmeant +welloff +wellordered +wellorganised +wellpaid +wellplaced +wellprepared +wellpreserved +wellread +wellreceived +wellrounded +wells +wellspoken +wellstructured +wellsupported +welltaken +wellthoughtout +welltimed +welltodo +welltried +wellused +wellwisher +wellwishers +wellworn +welly +welsh +welshman +welt +welter +weltering +welters +welterweight +welts +wench +wenches +wend +wended +wending +wends +went +wept +were +werewolf +werewolves +west +westbound +westerly +western +westerner +westerners +westernisation +westernised +westernmost +westerns +westward +westwards +wet +wether +wetland +wetlands +wetly +wetness +wets +wetsuit +wetsuits +wettable +wetted +wetter +wettest +wetting +whack +whacked +whacker +whacko +whacks +whale +whalebone +whaler +whalers +whales +whaling +wham +whap +wharf +wharfs +wharves +what +whatever +whatnot +whatsoever +wheals +wheat +wheatears +wheaten +wheatgerm +wheats +whee +wheedle +wheedled +wheedling +wheel +wheelbarrow +wheelbarrows +wheelbase +wheelchair +wheelchairs +wheeled +wheeler +wheelers +wheelhouse +wheelie +wheeling +wheels +wheelwright +wheelwrights +wheeze +wheezed +wheezes +wheezing +wheezy +whelk +whelked +whelks +whelp +when +whence +whenever +where +whereabouts +whereas +whereby +wherefore +wherefores +wherein +whereof +whereon +wheresoever +whereto +whereupon +wherever +wherewith +wherewithal +wherry +whet +whether +whetstone +whetstones +whetted +whetting +whey +which +whichever +whiff +whiffs +while +whiled +whiles +whiling +whilst +whim +whimper +whimpered +whimpering +whimpers +whims +whimsical +whimsically +whimsy +whine +whined +whines +whining +whinnied +whinny +whinnying +whip +whipcord +whiplash +whipped +whipper +whippet +whippets +whipping +whippy +whips +whir +whirl +whirled +whirligig +whirling +whirlpool +whirlpools +whirls +whirlwind +whirlwinds +whirr +whirred +whirring +whisk +whisked +whisker +whiskers +whiskery +whiskey +whiskeys +whiskies +whisking +whisks +whisky +whisper +whispered +whisperers +whispering +whisperings +whispers +whist +whistle +whistled +whistler +whistles +whistling +whists +white +whitebait +whiteboards +whitecollar +whitely +whiten +whitened +whitener +whiteness +whitening +whitens +whiter +whites +whitest +whitewash +whitewashed +whitewashing +whither +whiting +whitish +whittle +whittled +whittling +whizkids +whizz +whizzkid +who +whoa +whodunit +whodunnit +whoever +whole +wholefood +wholegrain +wholehearted +wholeheartedly +wholemeal +wholeness +wholes +wholesale +wholesaler +wholesalers +wholesaling +wholesome +wholesomely +wholesomeness +wholewheat +wholly +whom +whomever +whomsoever +whoop +whooped +whooping +whoops +whoosh +whop +whore +whorehouse +whores +whoring +whorled +whorls +whose +whosoever +why +whys +wick +wicked +wickedest +wickedly +wickedness +wicker +wickerwork +wicket +wicketkeeper +wicketkeepers +wicketkeeping +wickets +wicks +wide +wideeyed +widely +widen +widened +wideness +widening +widens +wideopen +wider +wideranging +wides +widescreen +widespread +widest +widgeon +widget +widow +widowed +widower +widowers +widowhood +widows +width +widths +wield +wielded +wielder +wielding +wields +wife +wifeless +wifely +wig +wigeon +wigeons +wigging +wiggle +wiggled +wiggler +wiggles +wiggling +wigs +wigwam +wigwams +wild +wildcat +wildcats +wildebeest +wilder +wilderness +wildernesses +wildest +wildeyed +wildfire +wildfires +wildfowl +wildlife +wildly +wildness +wildoats +wilds +wile +wiles +wilful +wilfully +wilfulness +wilier +wiliest +wiling +will +willed +willing +willingly +willingness +willow +willows +willowy +willpower +wills +willynilly +wilt +wilted +wilting +wilts +wily +wimp +wimple +wimpy +win +wince +winced +winces +winch +winched +winches +winching +wincing +wind +windbag +windbags +windbreak +windcheater +windcheaters +winded +winder +winders +windfall +windfalls +windier +windiest +windily +winding +windings +windlass +windless +windmill +windmills +window +windowed +windowing +windowless +windows +windowshop +windowshopping +windpipe +winds +windscreen +windscreens +windsock +windsor +windsurf +windsurfer +windsurfers +windsurfing +windswept +windward +windy +wine +wined +wineglass +wineglasses +winemakers +winery +wines +wineskin +wing +winged +winger +wingers +winging +wingless +wings +wingspan +wining +wink +winked +winker +winkers +winking +winkle +winkled +winkles +winks +winnable +winner +winners +winning +winningly +winnings +winnow +winnowing +wins +winsome +winter +wintered +wintering +winters +wintertime +wintery +wintrier +wintriest +wintry +wipe +wiped +wiper +wipers +wipes +wiping +wire +wired +wireless +wirer +wires +wirier +wiriest +wiring +wirings +wiry +wisdom +wisdoms +wise +wisecracks +wiseguys +wisely +wiser +wisest +wish +wishbone +wished +wishes +wishful +wishfully +wishing +wishywashy +wisp +wisps +wispy +wistful +wistfully +wistfulness +wit +witch +witchcraft +witchdoctor +witchdoctors +witchery +witches +witchhunt +witchhunts +witchlike +with +withdraw +withdrawal +withdrawals +withdrawing +withdrawn +withdraws +withdrew +wither +withered +withering +witheringly +withers +withheld +withhold +withholding +withholds +within +without +withstand +withstanding +withstands +withstood +witless +witness +witnessed +witnesses +witnessing +wits +witter +wittering +witticism +witticisms +wittier +wittiest +wittily +wittiness +witting +wittingly +witty +wives +wizard +wizardry +wizards +wizened +woad +wobble +wobbled +wobbler +wobbles +wobblier +wobbliest +wobbling +wobbly +wodan +wodge +woe +woebegone +woeful +woefully +woes +wok +woke +woken +woks +wold +wolds +wolf +wolfcubs +wolfed +wolfhound +wolfhounds +wolfish +wolfishly +wolfwhistles +wolves +woman +womanhood +womanise +womaniser +womanish +womanising +womankind +womanliness +womanly +womans +womb +wombat +wombats +wombs +women +womenfolk +won +wonder +wondered +wonderful +wonderfully +wonderfulness +wondering +wonderingly +wonderland +wonderment +wonders +wondrous +wondrously +wont +woo +wood +woodbine +woodcock +woodcocks +woodcut +woodcuts +woodcutter +woodcutters +wooded +wooden +woodenly +woodenness +woodland +woodlands +woodlice +woodlouse +woodman +woodmen +woodpecker +woodpeckers +woodpile +woods +woodshed +woodsman +woodsmoke +woodwind +woodwork +woodworker +woodworkers +woodworking +woodworm +woody +wooed +wooer +woof +woofer +woofers +wooing +wool +woollen +woollens +woollier +woollies +woollike +woolliness +woolly +wools +wooly +woos +word +wordage +worded +wordgame +wordier +wordiest +wordiness +wording +wordings +wordless +wordlessly +wordplay +wordprocessing +words +wordsmith +wordy +wore +work +workability +workable +workaday +workbench +workbook +workbooks +workday +workdays +worked +worker +workers +workfare +workforce +workforces +workhorse +workhorses +workhouse +workhouses +working +workings +workless +workload +workloads +workman +workmanlike +workmanship +workmate +workmates +workmen +workout +workouts +workpeople +workpiece +workpieces +workplace +workplaces +workroom +workrooms +works +worksheet +worksheets +workshop +workshops +workshy +workspace +workstation +workstations +worktop +worktops +workweek +world +worldclass +worldfamous +worldliness +worldly +worlds +worldwar +worldwide +worm +wormhole +wormholes +worming +wormlike +worms +wormy +worn +worried +worriedly +worrier +worriers +worries +worrisome +worry +worrying +worryingly +worse +worsen +worsened +worsening +worsens +worser +worship +worshipful +worshipped +worshipper +worshippers +worshipping +worships +worst +worsted +worth +worthier +worthies +worthiest +worthily +worthiness +worthless +worthlessness +worthwhile +worthy +would +wound +wounded +wounding +wounds +wove +woven +wow +wowed +wows +wrack +wracked +wraith +wraiths +wrangle +wrangled +wrangler +wrangles +wrangling +wrap +wraparound +wrapped +wrapper +wrappers +wrapping +wrappings +wraps +wrasse +wrath +wrathful +wrathfully +wraths +wreak +wreaked +wreaking +wreaks +wreath +wreathe +wreathed +wreathes +wreathing +wreaths +wreck +wreckage +wrecked +wrecker +wreckers +wrecking +wrecks +wren +wrench +wrenched +wrenches +wrenching +wrens +wrest +wrested +wresting +wrestle +wrestled +wrestler +wrestlers +wrestles +wrestling +wretch +wretched +wretchedly +wretchedness +wretches +wriggle +wriggled +wriggles +wriggling +wriggly +wright +wring +wringer +wringing +wrings +wrinkle +wrinkled +wrinkles +wrinkling +wrinkly +wrist +wristband +wristbands +wrists +wristwatch +writ +writable +write +writer +writers +writes +writhe +writhed +writhes +writhing +writing +writings +writs +written +wrong +wrongdoer +wrongdoers +wrongdoing +wrongdoings +wronged +wronger +wrongest +wrongful +wrongfully +wronging +wrongly +wrongness +wrongs +wrote +wrought +wroughtiron +wrung +wry +wryly +wryness +wunderkind +xenon +xenophobe +xenophobia +xenophobic +xerography +xhosa +xhosas +xmas +xray +xrayed +xraying +xrays +xylophone +xylophonist +yacht +yachting +yachts +yachtsman +yachtsmen +yak +yaks +yale +yalelock +yam +yams +yank +yankee +yankees +yanks +yap +yapping +yaps +yard +yardage +yards +yardstick +yardsticks +yarn +yarns +yaw +yawed +yawl +yawls +yawn +yawned +yawning +yawningly +yawns +yaws +ye +yea +yeah +yeaned +year +yearbook +yearbooks +yearling +yearlings +yearlong +yearly +yearn +yearned +yearning +yearningly +yearnings +yearns +years +yeas +yeast +yeasts +yeasty +yell +yelled +yelling +yellings +yellow +yellowed +yellower +yellowing +yellowish +yellows +yellowy +yells +yelp +yelped +yelping +yelpings +yelps +yemen +yen +yens +yeoman +yeomanry +yeomen +yep +yes +yesterday +yesterdays +yesteryear +yet +yeti +yetis +yew +yews +yiddish +yield +yielded +yielding +yields +yip +yippee +yodel +yodelled +yodeller +yodelling +yodels +yoga +yogi +yoke +yoked +yokel +yokels +yokes +yolk +yolks +yon +yonder +yore +york +yorker +yorkers +you +young +younger +youngest +youngish +youngster +youngsters +your +yours +yourself +yourselves +youth +youthful +youthfulness +youths +yowl +yoyo +yrs +yttrium +yuck +yukon +yule +yuletide +yummiest +yummy +yuppie +yuppies +zag +zaire +zambezi +zambia +zambian +zambians +zaniest +zany +zanzibar +zap +zapping +zappy +zaps +zeal +zealot +zealotry +zealots +zealous +zealously +zealousness +zeals +zebra +zebras +zebu +zebus +zees +zenith +zeniths +zeolite +zeolites +zephyr +zephyrs +zeppelin +zero +zeroed +zeroing +zest +zestfully +zesty +zeta +zeus +zig +zigzag +zigzagged +zigzagging +zigzags +zillion +zillions +zimbabwe +zinc +zion +zionism +zionist +zionists +zip +zipped +zipper +zippers +zipping +zippy +zips +zither +zithers +zombi +zombie +zombies +zonal +zonation +zone +zoned +zones +zoning +zoo +zookeepers +zoological +zoologist +zoologists +zoology +zoom +zoomed +zooming +zooms +zooplankton +zoos +zulu +zulus diff --git a/test/disabled/jvm/JavaInteraction.scala b/test/disabled/jvm/JavaInteraction.scala index 26fbc17e58..65e3c5cb40 100644 --- a/test/disabled/jvm/JavaInteraction.scala +++ b/test/disabled/jvm/JavaInteraction.scala @@ -17,7 +17,7 @@ p.c = java.awt.Color[r=255,g=0,b=0] p.getX() = 5.0 p.getC() = java.awt.Color[r=255,g=0,b=0] """.trim - + def connect() = { val p = new ColoredPoint(5, 7, Color.RED); List( diff --git a/test/disabled/pos/spec-List.scala b/test/disabled/pos/spec-List.scala index 04ab7d1543..81e55f46cb 100644 --- a/test/disabled/pos/spec-List.scala +++ b/test/disabled/pos/spec-List.scala @@ -23,8 +23,8 @@ import annotation.tailrec * @author Martin Odersky and others * @version 2.8 */ -sealed trait List[@specialized +A] extends LinearSeq[A] - with Product +sealed trait List[@specialized +A] extends LinearSeq[A] + with Product with GenericTraversableTemplate[A, List] with LinearSeqOptimized[A, List[A]] { override def companion: GenericCompanion[List] = List @@ -65,7 +65,7 @@ sealed trait List[@specialized +A] extends LinearSeq[A] /** <p> * Returns a list resulting from the concatenation of the given - * list <code>prefix</code> and this list. + * list <code>prefix</code> and this list. * </p> * * @param prefix the list to concatenate at the beginning of this list. @@ -140,7 +140,7 @@ sealed trait List[@specialized +A] extends LinearSeq[A] } // Overridden methods from IterableLike or overloaded variants of such methods - + /** Create a new list which contains all elements of this list * followed by all elements of Traversable `that' */ @@ -156,7 +156,7 @@ sealed trait List[@specialized +A] extends LinearSeq[A] */ override def toList: List[A] = this - /** Returns the <code>n</code> first elements of this list, or else the whole + /** Returns the <code>n</code> first elements of this list, or else the whole * list, if it has less than <code>n</code> elements. * @param n the number of elements to take. @@ -216,7 +216,7 @@ sealed trait List[@specialized +A] extends LinearSeq[A] } loop(drop(n), this) } - + // dropRight is inherited from Stream /** Split the list at a given point and return the two parts thus @@ -302,7 +302,7 @@ sealed trait List[@specialized +A] extends LinearSeq[A] override def stringPrefix = "List" - override def toStream : Stream[A] = + override def toStream : Stream[A] = if (isEmpty) Stream.Empty else new Stream.Cons(head, tail.toStream) @@ -487,10 +487,10 @@ final case class ::[@specialized B](private var hd: B, private[scala] var tl: Li * @version 2.8 */ object List extends SeqFactory[List] { - + import collection.{Iterable, Seq} - implicit def builderFactory[A]: CanBuildFrom[Coll, A, List[A]] = + implicit def builderFactory[A]: CanBuildFrom[Coll, A, List[A]] = new GenericCanBuildFrom[A] { override def apply() = newBuilder[A] } @@ -552,8 +552,8 @@ object List extends SeqFactory[List] { * @return the concatenation of all the lists */ @deprecated("use `xss.flatten' instead") - def flatten[A](xss: List[List[A]]): List[A] = { - val b = new ListBuffer[A] + def flatten[A](xss: List[List[A]]): List[A] = { + val b = new ListBuffer[A] for (xs <- xss) { var xc = xs while (!xc.isEmpty) { @@ -588,7 +588,7 @@ object List extends SeqFactory[List] { * @return a pair of lists. */ @deprecated("use `xs.unzip' instead") - def unzip[A,B](xs: Iterable[(A,B)]): (List[A], List[B]) = + def unzip[A,B](xs: Iterable[(A,B)]): (List[A], List[B]) = xs.foldRight[(List[A], List[B])]((Nil, Nil)) { case ((x, y), (xs, ys)) => (x :: xs, y :: ys) } @@ -598,17 +598,17 @@ object List extends SeqFactory[List] { * of <code>Either</code>s. */ @deprecated("use `Either.lefts' instead") - def lefts[A, B](es: Iterable[Either[A, B]]) = + def lefts[A, B](es: Iterable[Either[A, B]]) = es.foldRight[List[A]](Nil)((e, as) => e match { case Left(a) => a :: as case Right(_) => as - }) - + }) + /** * Returns the <code>Right</code> values in the given<code>Iterable</code> of <code>Either</code>s. */ @deprecated("use `Either.rights' instead") - def rights[A, B](es: Iterable[Either[A, B]]) = + def rights[A, B](es: Iterable[Either[A, B]]) = es.foldRight[List[B]](Nil)((e, bs) => e match { case Left(_) => bs case Right(b) => b :: bs @@ -739,7 +739,7 @@ object List extends SeqFactory[List] { /** Returns the list resulting from applying the given function <code>f</code> * to corresponding elements of the argument lists. * @param f function to apply to each pair of elements. - * @return <code>[f(a0,b0), ..., f(an,bn)]</code> if the lists are + * @return <code>[f(a0,b0), ..., f(an,bn)]</code> if the lists are * <code>[a0, ..., ak]</code>, <code>[b0, ..., bl]</code> and * <code>n = min(k,l)</code> */ @@ -782,7 +782,7 @@ object List extends SeqFactory[List] { b.toList } - /** Tests whether the given predicate <code>p</code> holds + /** Tests whether the given predicate <code>p</code> holds * for all corresponding elements of the argument lists. * * @param p function to apply to each pair of elements. diff --git a/test/disabled/presentation/simple-tests/src/Tester.scala b/test/disabled/presentation/simple-tests/src/Tester.scala index cb62187514..b039470ae7 100644 --- a/test/disabled/presentation/simple-tests/src/Tester.scala +++ b/test/disabled/presentation/simple-tests/src/Tester.scala @@ -38,7 +38,7 @@ class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { def askTypeCompletion(pos: Position) = askAndListen("type at", pos, compiler.askTypeCompletion) def askScopeCompletion(pos: Position) = askAndListen("type at", pos, compiler.askScopeCompletion) - val rand = new java.util.Random() + val rand = new java.util.Random() private def randomInverse(n: Int) = n / (rand.nextInt(n) + 1) @@ -71,7 +71,7 @@ class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { private var pos = start private var deleted: List[Char] = List() - override def toString = + override def toString = "In "+inputs(sfidx)+" at "+start+" take "+nchars+" to "+ (if (toLeft) "left" else "right") @@ -90,7 +90,7 @@ class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { if (pos > 0 && pos <= inputs(sfidx).length) { pos -= 1 deleteOne() - } + } } else { if (pos < inputs(sfidx).length) { deleteOne() @@ -98,7 +98,7 @@ class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { } } } - + def insertAll() { for (chr <- if (toLeft) deleted else deleted.reverse) { val sf = inputs(sfidx) @@ -138,7 +138,7 @@ class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { val changes = Vector.fill(/**/randomChangesPerBatch()) { /**/ new Change(sfidx, randomPositionIn(inputs(sfidx)), randomNumChars(), rand.nextBoolean()) - } + } doTest(sfidx, changes, testPositions, otherTest) match { case Some(errortrace) => println(errortrace) @@ -151,7 +151,7 @@ class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { def doTest(sfidx: Int, changes: Seq[Change], testPositions: Seq[Int], otherTest: () => Unit): Option[ErrorTrace] = { print("new round with "+changes.length+" changes:") changes foreach (_.deleteAll()) - otherTest() + otherTest() def errorCount() = compiler.ask(() => reporter.ERROR.count) // println("\nhalf test round: "+errorCount()) changes.view.reverse foreach (_.insertAll()) @@ -159,13 +159,13 @@ class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { println("done test round: "+errorCount()) if (errorCount() != 0) Some(ErrorTrace(sfidx, changes, reporter.infos, inputs(sfidx).content)) - else + else None } case class ErrorTrace( sfidx: Int, changes: Seq[Change], infos: collection.Set[reporter.Info], content: Array[Char]) { - override def toString = + override def toString = "Sourcefile: "+inputs(sfidx)+ "\nChanges:\n "+changes.mkString("\n ")+ "\nErrors:\n "+infos.mkString("\n ")+ @@ -201,4 +201,4 @@ object Tester { new Tester(args(0).toInt, files, settings).run() sys.exit(0) } -} +} diff --git a/test/disabled/run/applet-prop.scala b/test/disabled/run/applet-prop.scala index fb112bf7d5..9c29dfd979 100644 --- a/test/disabled/run/applet-prop.scala +++ b/test/disabled/run/applet-prop.scala @@ -10,7 +10,7 @@ object Test extends SecurityTest { val s = new S // lazy val TestKey = sys.SystemProperties.noTraceSupression.key // def hitPerm() = new Throwable with scala.util.control.ControlThrowable { } - // + // // var throwing = false // override def propertyCheck(p: PropertyPermission): Unit = { // if (p.getName == TestKey) { @@ -19,21 +19,21 @@ object Test extends SecurityTest { // throwIt(p) // } // } - // + // // hitPerm() // securityOn() // hitPerm() - // + // // throwing = true // - // val caught = + // val caught = // try { hitPerm() ; false } // catch { case _: AccessControlException => true } - // + // // assert(caught, "Should have incurred exception.") // throwing = false // hitPerm() - // + // // val xs = new Traversable[Int] { def foreach[U](f: Int => U) = 1 to 3 foreach f } // xs foreach println } diff --git a/test/disabled/run/bug4279.scala b/test/disabled/run/bug4279.scala index d0afc3a032..62cc436302 100644 --- a/test/disabled/run/bug4279.scala +++ b/test/disabled/run/bug4279.scala @@ -5,7 +5,7 @@ import scala.tools.partest._ class Runner(num: Int, reps: Int) extends TestUtil { var dummy = 0 val range = Array.range(0, num) - + def iteratorSlice = { def it = range.iterator.slice(num - 2, num) for (i <- 1 to reps) diff --git a/test/disabled/run/coder2/Coder2.scala b/test/disabled/run/coder2/Coder2.scala index abe284a398..43b2e9bcb8 100644 --- a/test/disabled/run/coder2/Coder2.scala +++ b/test/disabled/run/coder2/Coder2.scala @@ -5,31 +5,31 @@ import collection.parallel._//immutable._ class SeqCoder(words: List[String]) { - + private val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ") - + /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ - private val charCode: Map[Char, Char] = + private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** Maps a word to the digit string it represents, + + /** Maps a word to the digit string it represents, * e.g. `Java` -> `5282` */ private def wordCode(word: String): String = word.toUpperCase map charCode - - /** A map from digit strings to the words that represent + + /** A map from digit strings to the words that represent * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) */ - val wordsForNum: Map[String, Seq[String]] = + val wordsForNum: Map[String, Seq[String]] = (words groupBy wordCode).map(t => (t._1, t._2.toSeq)) withDefaultValue Seq() - + val memo = collection.mutable.Map[String, Set[Seq[String]]]("" -> Set(Seq())) val wfnmemo = collection.mutable.Map[(String, String), Set[Seq[String]]]() val subsmemo = collection.mutable.Map[(String, String, String), Set[Seq[String]]]() - + /** All ways to encode a number as a list of words */ - def encode(number: String): Set[Seq[String]] = + def encode(number: String): Set[Seq[String]] = if (number.isEmpty) Set(Seq()) else { val splits = (1 to number.length).toSet @@ -51,38 +51,38 @@ class SeqCoder(words: List[String]) { memo += number -> r r } - - /** Maps a number to a list of all word phrases that can + + /** Maps a number to a list of all word phrases that can * represent it */ def translate(number: String): Set[String] = encode(number) map (_ mkString " ") - + def ??? : Nothing = throw new UnsupportedOperationException } class ParCoder(words: List[String]) { - + private val m = Map( - '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", + '2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL", '6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ") - + /** Invert the mnemnonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ - private val charCode: Map[Char, Char] = + private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** Maps a word to the digit string it represents, + + /** Maps a word to the digit string it represents, * e.g. `Java` -> `5282` */ private def wordCode(word: String): String = word.toUpperCase map charCode - - /** A map from digit strings to the words that represent + + /** A map from digit strings to the words that represent * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) */ - val wordsForNum: Map[String, ParSeq[String]] = + val wordsForNum: Map[String, ParSeq[String]] = (words groupBy wordCode).map(t => (t._1, t._2.toSeq.par)) withDefaultValue ParSeq() - + val comparison = new SeqCoder(words) - + /** All ways to encode a number as a list of words */ - def encode(number: String): ParSet[ParSeq[String]] = + def encode(number: String): ParSet[ParSeq[String]] = if (number.isEmpty) ParSet(ParSeq()) else { val splits = (1 to number.length).toSet.par @@ -105,7 +105,7 @@ class ParCoder(words: List[String]) { assertNumber(number, r) r } - + def assertSubs(num: String, subsfrom: String, word: String, r: ParSet[ParSeq[String]]) { val m = comparison.subsmemo((num, subsfrom, word)) if (r != m) { @@ -115,7 +115,7 @@ class ParCoder(words: List[String]) { error("r != m") } } - + def assertWfn(num: String, split: String, dropped: String, r: ParSeq[ParSeq[String]]) { val m = comparison.wfnmemo((num, split)) val rs = r.toSet.par @@ -139,7 +139,7 @@ class ParCoder(words: List[String]) { error("rs != m") } } - + def assertNumber(num: String, r: ParSet[ParSeq[String]]) { val m = comparison.memo(num) if (r != m) { @@ -149,14 +149,14 @@ class ParCoder(words: List[String]) { error("r != m") } } - - /** Maps a number to a list of all word phrases that can + + /** Maps a number to a list of all word phrases that can * represent it */ def translate(number: String): ParSet[String] = { comparison.translate(number) encode(number) map (_.seq mkString " ") } - + def ??? : Nothing = throw new UnsupportedOperationException } @@ -165,18 +165,18 @@ class ParCoder(words: List[String]) { object Test { val code = "2328437472947"//36262633"//837976"//"6477323986225453446" //val code = "747294736262633" - + /* */ def main(args : Array[String]) { for (i <- 0 until 10) { val seqcoder = new SeqCoder(Dictionary.wordlist) val sts = seqcoder.translate(code) //println("Translation check: " + st.size) - + val parcoder = new ParCoder(Dictionary.wordlist) val pts = parcoder.translate(code) //println("Translation check: " + pt.size) - + val st = sts.toList.sorted val pt = pts.toList.sorted if (st.size != pt.size) { diff --git a/test/disabled/run/javap.scala b/test/disabled/run/javap.scala index 241a83fa6f..3704d64423 100644 --- a/test/disabled/run/javap.scala +++ b/test/disabled/run/javap.scala @@ -14,7 +14,7 @@ object Test { (line startsWith "private") || (line startsWith "public") } foreach println } - + def main(args: Array[String]): Unit = { run("") run("-v") diff --git a/test/disabled/run/script-positions.scala b/test/disabled/run/script-positions.scala index 6982ed8440..2c80d550c0 100644 --- a/test/disabled/run/script-positions.scala +++ b/test/disabled/run/script-positions.scala @@ -4,9 +4,9 @@ import util.stringFromStream // Testing "scripts" without the platform delights which accompany actual scripts. object Scripts { - val test1 = -"""#!/bin/sh - exec scala $0 $@ + val test1 = +"""#!/bin/sh + exec scala $0 $@ !# println("statement 1") @@ -29,7 +29,7 @@ val x = "line 6" val y = "line 7" val z "line 8"""" - val output2 = + val output2 = """bob.scala:8: error: '=' expected but string literal found. val z "line 8" ^ @@ -41,10 +41,10 @@ two errors found""" object Test { import Scripts._ - + def settings = new GenericRunnerSettings(println _) settings.nocompdaemon.value = true - + def runScript(code: String): String = stringFromStream(stream => Console.withOut(stream) { @@ -53,7 +53,7 @@ object Test { } } ) - + val tests: List[(String, String)] = List( test1 -> output1, test2 -> output2 @@ -67,14 +67,14 @@ object Test { case idx => s drop (idx + 7) } def toLines(text: String) = lines(text) map stripFilename - + def main(args: Array[String]): Unit = { - for ((code, expected) <- tests) { + for ((code, expected) <- tests) { val out = toLines(runScript(code)) val exp = toLines(expected) val nomatch = out zip exp filter { case (x, y) => x != y } val success = out.size == exp.size && nomatch.isEmpty - + assert( success, "Output doesn't match expected:\n" + diff --git a/test/disabled/scalacheck/HashTrieSplit.scala b/test/disabled/scalacheck/HashTrieSplit.scala index 6b20efe12b..cbf565095c 100644 --- a/test/disabled/scalacheck/HashTrieSplit.scala +++ b/test/disabled/scalacheck/HashTrieSplit.scala @@ -14,7 +14,7 @@ object Test { def main(args: Array[String]) { doesSplitOk } - + def doesSplitOk = { val sz = 2000 var ht = new parallel.immutable.ParHashMap[Int, Int] diff --git a/test/disabled/scalacheck/redblack.scala b/test/disabled/scalacheck/redblack.scala index 0334c1218d..301d332334 100644 --- a/test/disabled/scalacheck/redblack.scala +++ b/test/disabled/scalacheck/redblack.scala @@ -1,157 +1,157 @@ -import org.scalacheck._ -import Prop._ -import Gen._ - -/* -Properties of a Red & Black Tree: - -A node is either red or black. -The root is black. (This rule is used in some definitions and not others. Since the -root can always be changed from red to black but not necessarily vice-versa this -rule has little effect on analysis.) -All leaves are black. -Both children of every red node are black. -Every simple path from a given node to any of its descendant leaves contains the same number of black nodes. -*/ - -abstract class RedBlackTest extends Properties("RedBlack") { - object RedBlackTest extends scala.collection.immutable.RedBlack[Int] { - def isSmaller(x: Int, y: Int) = x < y - } - - import RedBlackTest._ - - def rootIsBlack[A](t: Tree[A]) = t.isBlack - - def areAllLeavesBlack[A](t: Tree[A]): Boolean = t match { - case Empty => t.isBlack - case ne: NonEmpty[_] => List(ne.left, ne.right) forall areAllLeavesBlack - } - - def areRedNodeChildrenBlack[A](t: Tree[A]): Boolean = t match { - case RedTree(_, _, left, right) => List(left, right) forall (t => t.isBlack && areRedNodeChildrenBlack(t)) - case BlackTree(_, _, left, right) => List(left, right) forall areRedNodeChildrenBlack - case Empty => true - } - - def blackNodesToLeaves[A](t: Tree[A]): List[Int] = t match { - case Empty => List(1) - case BlackTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves map (_ + 1) - case RedTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves - } - - def areBlackNodesToLeavesEqual[A](t: Tree[A]): Boolean = t match { - case Empty => true - case ne: NonEmpty[_] => - ( - blackNodesToLeaves(ne).removeDuplicates.size == 1 - && areBlackNodesToLeavesEqual(ne.left) - && areBlackNodesToLeavesEqual(ne.right) - ) - } - - def orderIsPreserved[A](t: Tree[A]): Boolean = t match { - case Empty => true - case ne: NonEmpty[_] => - ( - (ne.left.iterator map (_._1) forall (isSmaller(_, ne.key))) - && (ne.right.iterator map (_._1) forall (isSmaller(ne.key, _))) - && (List(ne.left, ne.right) forall orderIsPreserved) - ) - } - - def setup(l: List[Int], invariant: Tree[Unit] => Boolean): (Boolean, Tree[Unit]) - - def listNoRepetitions(size: Int) = for { - s <- Gen.choose(1, size) - l <- Gen.listOfN(size, Gen.choose(0, Int.MaxValue)) suchThat (l => l.size == l.removeDuplicates.size) - } yield l - def listFewRepetitions(size: Int) = for { - s <- Gen.choose(1, size) - l <- Gen.listOfN(s, Gen.choose(0, size * 4)) suchThat (l => l.size != l.removeDuplicates.size) - } yield l - def listManyRepetitions(size: Int) = for { - s <- Gen.choose(1, size) - l <- Gen.listOfN(s, Gen.choose(0, size)) suchThat (l => l.size != l.removeDuplicates.size) - } yield l - def listEvenRepetitions(size: Int) = listFewRepetitions(size) map (x => - scala.util.Random.shuffle(x zip x flatMap { case (a, b) => List(a, b) }) - ) - - // Arbitrarily weighted list distribution types - val seqType: Gen[Int => Gen[List[Int]]] - - def myGen(sized: Int) = for { - size <- Gen.choose(0, sized) - seq <- seqType - list <- seq(size) - } yield list - - property("root is black") = forAll(myGen(10)) { l => - setup(l, rootIsBlack)._1 :| setup(l, rootIsBlack)._2.toString - } - property("all leaves are black") = forAll(myGen(50)) { l => - setup(l, areAllLeavesBlack)._1 :| setup(l, areAllLeavesBlack)._2.toString - } - property("children of red nodes are black") = forAll(myGen(50)) { l => - setup(l, areRedNodeChildrenBlack)._1 :| setup(l, areRedNodeChildrenBlack)._2.toString - } - property("Every path from a node to its descendant leaves contains the same number of black nodes") = forAll(myGen(50)) { l => - setup(l, areBlackNodesToLeavesEqual)._1 :| setup(l, areBlackNodesToLeavesEqual)._2.toString - } - property("Ordering of keys is preserved") = forAll(myGen(50)) { l => - setup(l, orderIsPreserved)._1 :| setup(l, orderIsPreserved)._2.toString - } -} - -object TestInsertion extends RedBlackTest { - import RedBlackTest._ - override val seqType = Gen.frequency( - (1, listNoRepetitions _), - (1, listManyRepetitions _) - ) - - property("update adds elements") = forAll(myGen(50)) { l => - val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ())) - forAll(Gen.pick(1, l)) ( n => !(tree lookup n.head isEmpty) :| "Tree: "+tree+" N: "+n.head ) - } - - override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) { - case ((true, acc), n) => - val newRoot = acc update (n, ()) - (invariant(newRoot), newRoot) - case (failed, _) => failed - } -} - -object TestDeletion extends RedBlackTest { - import RedBlackTest._ - override val seqType = Gen.frequency( - (2, listFewRepetitions _), - (3, listManyRepetitions _), - (1, listEvenRepetitions _) - ) - - property("delete removes elements") = forAll(myGen(50)) { l => - val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ())) - forAll(Gen.choose(1, l.size)) { numberOfElementsToRemove => - forAll(Gen.pick(numberOfElementsToRemove, l)) { elementsToRemove => - val newTree = elementsToRemove.foldLeft(tree)((acc, n) => acc delete n) - (elementsToRemove forall (n => newTree lookup n isEmpty)) :| "Tree: "+tree+"New Tree: "+newTree+" Elements to Remove: "+elementsToRemove - } - } - } - - override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) { - case ((true, acc), n) => - val newRoot = if (acc lookup n isEmpty) acc update (n, ()) else acc delete n - (invariant(newRoot), newRoot) - case (failed, _) => failed - } -} - -object Test extends Properties("RedBlack") { - include(TestInsertion) - include(TestDeletion) -} - +import org.scalacheck._
+import Prop._
+import Gen._
+
+/*
+Properties of a Red & Black Tree:
+
+A node is either red or black.
+The root is black. (This rule is used in some definitions and not others. Since the
+root can always be changed from red to black but not necessarily vice-versa this
+rule has little effect on analysis.)
+All leaves are black.
+Both children of every red node are black.
+Every simple path from a given node to any of its descendant leaves contains the same number of black nodes.
+*/
+
+abstract class RedBlackTest extends Properties("RedBlack") {
+ object RedBlackTest extends scala.collection.immutable.RedBlack[Int] {
+ def isSmaller(x: Int, y: Int) = x < y
+ }
+
+ import RedBlackTest._
+
+ def rootIsBlack[A](t: Tree[A]) = t.isBlack
+
+ def areAllLeavesBlack[A](t: Tree[A]): Boolean = t match {
+ case Empty => t.isBlack
+ case ne: NonEmpty[_] => List(ne.left, ne.right) forall areAllLeavesBlack
+ }
+
+ def areRedNodeChildrenBlack[A](t: Tree[A]): Boolean = t match {
+ case RedTree(_, _, left, right) => List(left, right) forall (t => t.isBlack && areRedNodeChildrenBlack(t))
+ case BlackTree(_, _, left, right) => List(left, right) forall areRedNodeChildrenBlack
+ case Empty => true
+ }
+
+ def blackNodesToLeaves[A](t: Tree[A]): List[Int] = t match {
+ case Empty => List(1)
+ case BlackTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves map (_ + 1)
+ case RedTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves
+ }
+
+ def areBlackNodesToLeavesEqual[A](t: Tree[A]): Boolean = t match {
+ case Empty => true
+ case ne: NonEmpty[_] =>
+ (
+ blackNodesToLeaves(ne).removeDuplicates.size == 1
+ && areBlackNodesToLeavesEqual(ne.left)
+ && areBlackNodesToLeavesEqual(ne.right)
+ )
+ }
+
+ def orderIsPreserved[A](t: Tree[A]): Boolean = t match {
+ case Empty => true
+ case ne: NonEmpty[_] =>
+ (
+ (ne.left.iterator map (_._1) forall (isSmaller(_, ne.key)))
+ && (ne.right.iterator map (_._1) forall (isSmaller(ne.key, _)))
+ && (List(ne.left, ne.right) forall orderIsPreserved)
+ )
+ }
+
+ def setup(l: List[Int], invariant: Tree[Unit] => Boolean): (Boolean, Tree[Unit])
+
+ def listNoRepetitions(size: Int) = for {
+ s <- Gen.choose(1, size)
+ l <- Gen.listOfN(size, Gen.choose(0, Int.MaxValue)) suchThat (l => l.size == l.removeDuplicates.size)
+ } yield l
+ def listFewRepetitions(size: Int) = for {
+ s <- Gen.choose(1, size)
+ l <- Gen.listOfN(s, Gen.choose(0, size * 4)) suchThat (l => l.size != l.removeDuplicates.size)
+ } yield l
+ def listManyRepetitions(size: Int) = for {
+ s <- Gen.choose(1, size)
+ l <- Gen.listOfN(s, Gen.choose(0, size)) suchThat (l => l.size != l.removeDuplicates.size)
+ } yield l
+ def listEvenRepetitions(size: Int) = listFewRepetitions(size) map (x =>
+ scala.util.Random.shuffle(x zip x flatMap { case (a, b) => List(a, b) })
+ )
+
+ // Arbitrarily weighted list distribution types
+ val seqType: Gen[Int => Gen[List[Int]]]
+
+ def myGen(sized: Int) = for {
+ size <- Gen.choose(0, sized)
+ seq <- seqType
+ list <- seq(size)
+ } yield list
+
+ property("root is black") = forAll(myGen(10)) { l =>
+ setup(l, rootIsBlack)._1 :| setup(l, rootIsBlack)._2.toString
+ }
+ property("all leaves are black") = forAll(myGen(50)) { l =>
+ setup(l, areAllLeavesBlack)._1 :| setup(l, areAllLeavesBlack)._2.toString
+ }
+ property("children of red nodes are black") = forAll(myGen(50)) { l =>
+ setup(l, areRedNodeChildrenBlack)._1 :| setup(l, areRedNodeChildrenBlack)._2.toString
+ }
+ property("Every path from a node to its descendant leaves contains the same number of black nodes") = forAll(myGen(50)) { l =>
+ setup(l, areBlackNodesToLeavesEqual)._1 :| setup(l, areBlackNodesToLeavesEqual)._2.toString
+ }
+ property("Ordering of keys is preserved") = forAll(myGen(50)) { l =>
+ setup(l, orderIsPreserved)._1 :| setup(l, orderIsPreserved)._2.toString
+ }
+}
+
+object TestInsertion extends RedBlackTest {
+ import RedBlackTest._
+ override val seqType = Gen.frequency(
+ (1, listNoRepetitions _),
+ (1, listManyRepetitions _)
+ )
+
+ property("update adds elements") = forAll(myGen(50)) { l =>
+ val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ()))
+ forAll(Gen.pick(1, l)) ( n => !(tree lookup n.head isEmpty) :| "Tree: "+tree+" N: "+n.head )
+ }
+
+ override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) {
+ case ((true, acc), n) =>
+ val newRoot = acc update (n, ())
+ (invariant(newRoot), newRoot)
+ case (failed, _) => failed
+ }
+}
+
+object TestDeletion extends RedBlackTest {
+ import RedBlackTest._
+ override val seqType = Gen.frequency(
+ (2, listFewRepetitions _),
+ (3, listManyRepetitions _),
+ (1, listEvenRepetitions _)
+ )
+
+ property("delete removes elements") = forAll(myGen(50)) { l =>
+ val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ()))
+ forAll(Gen.choose(1, l.size)) { numberOfElementsToRemove =>
+ forAll(Gen.pick(numberOfElementsToRemove, l)) { elementsToRemove =>
+ val newTree = elementsToRemove.foldLeft(tree)((acc, n) => acc delete n)
+ (elementsToRemove forall (n => newTree lookup n isEmpty)) :| "Tree: "+tree+"New Tree: "+newTree+" Elements to Remove: "+elementsToRemove
+ }
+ }
+ }
+
+ override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) {
+ case ((true, acc), n) =>
+ val newRoot = if (acc lookup n isEmpty) acc update (n, ()) else acc delete n
+ (invariant(newRoot), newRoot)
+ case (failed, _) => failed
+ }
+}
+
+object Test extends Properties("RedBlack") {
+ include(TestInsertion)
+ include(TestDeletion)
+}
+
diff --git a/test/disabled/script/t1017.scala b/test/disabled/script/t1017.scala index d1b43ea923..2600f4f553 100755 --- a/test/disabled/script/t1017.scala +++ b/test/disabled/script/t1017.scala @@ -23,7 +23,7 @@ exec scala -nocompdaemon "$SOURCE" "$@" def foo = { bar } - + var x = 1 - + def bar = 1 diff --git a/test/files/bench/equality/eq.scala b/test/files/bench/equality/eq.scala index 8ac5b5ef5c..4e57a81734 100755 --- a/test/files/bench/equality/eq.scala +++ b/test/files/bench/equality/eq.scala @@ -1,34 +1,34 @@ -object eq extends testing.Benchmark { - - def eqtest[T](creator: Int => T, n: Int): Int = { - val elems = Array.tabulate[AnyRef](n)(i => creator(i % 2).asInstanceOf[AnyRef]) - - var sum = 0 - var i = 0 - while (i < n) { - var j = 0 - while (j < n) { - if (elems(i) eq elems(j)) sum += 1 - j += 1 - } - i += 1 - } - sum - } - - val obj1 = new Object - val obj2 = new Object - - def run() { - var sum = 0 - sum += eqtest(x => if (x == 0) obj1 else obj2, 2000) - sum += eqtest(x => x, 1000) - sum += eqtest(x => x.toChar, 550) - sum += eqtest(x => x.toByte, 550) - sum += eqtest(x => x.toLong, 550) - sum += eqtest(x => x.toShort, 100) - sum += eqtest(x => x.toFloat, 100) - sum += eqtest(x => x.toDouble, 100) - assert(sum == 2958950) - } -} +object eq extends testing.Benchmark {
+
+ def eqtest[T](creator: Int => T, n: Int): Int = {
+ val elems = Array.tabulate[AnyRef](n)(i => creator(i % 2).asInstanceOf[AnyRef])
+
+ var sum = 0
+ var i = 0
+ while (i < n) {
+ var j = 0
+ while (j < n) {
+ if (elems(i) eq elems(j)) sum += 1
+ j += 1
+ }
+ i += 1
+ }
+ sum
+ }
+
+ val obj1 = new Object
+ val obj2 = new Object
+
+ def run() {
+ var sum = 0
+ sum += eqtest(x => if (x == 0) obj1 else obj2, 2000)
+ sum += eqtest(x => x, 1000)
+ sum += eqtest(x => x.toChar, 550)
+ sum += eqtest(x => x.toByte, 550)
+ sum += eqtest(x => x.toLong, 550)
+ sum += eqtest(x => x.toShort, 100)
+ sum += eqtest(x => x.toFloat, 100)
+ sum += eqtest(x => x.toDouble, 100)
+ assert(sum == 2958950)
+ }
+}
diff --git a/test/files/bench/equality/eqeq.scala b/test/files/bench/equality/eqeq.scala index afccece88a..e1fda69c0c 100755 --- a/test/files/bench/equality/eqeq.scala +++ b/test/files/bench/equality/eqeq.scala @@ -1,46 +1,46 @@ -/** benchmark for testing equality. - * Mix: == between non-numbers ith Object.equals as equality: 66% - * 50% of these are tests where eq is true. - * == between boxed integers: 17% - * == between boxed characters: 5% - * == between boxed bytes: 5% - * == between boxed longs: 5% - * == between boxed shorts: < 1% - * == between boxed floats: < 1% - * == between boxed doubles: < 1% - * In all cases 50% of the tests return true. - */ -object eqeq extends testing.Benchmark { - - def eqeqtest[T](creator: Int => T, n: Int): Int = { - val elems = Array.tabulate[AnyRef](n)(i => creator(i % 2).asInstanceOf[AnyRef]) - - var sum = 0 - var i = 0 - while (i < n) { - var j = 0 - while (j < n) { - if (elems(i) == elems(j)) sum += 1 - j += 1 - } - i += 1 - } - sum - } - - val obj1 = new Object - val obj2 = new Object - - def run() { - var sum = 0 - sum += eqeqtest(x => if (x == 0) obj1 else obj2, 2000) - sum += eqeqtest(x => x, 1000) - sum += eqeqtest(x => x.toChar, 550) - sum += eqeqtest(x => x.toByte, 550) - sum += eqeqtest(x => x.toLong, 550) - sum += eqeqtest(x => x.toShort, 100) - sum += eqeqtest(x => x.toFloat, 100) - sum += eqeqtest(x => x.toDouble, 100) - assert(sum == 2968750) - } -} +/** benchmark for testing equality.
+ * Mix: == between non-numbers ith Object.equals as equality: 66%
+ * 50% of these are tests where eq is true.
+ * == between boxed integers: 17%
+ * == between boxed characters: 5%
+ * == between boxed bytes: 5%
+ * == between boxed longs: 5%
+ * == between boxed shorts: < 1%
+ * == between boxed floats: < 1%
+ * == between boxed doubles: < 1%
+ * In all cases 50% of the tests return true.
+ */
+object eqeq extends testing.Benchmark {
+
+ def eqeqtest[T](creator: Int => T, n: Int): Int = {
+ val elems = Array.tabulate[AnyRef](n)(i => creator(i % 2).asInstanceOf[AnyRef])
+
+ var sum = 0
+ var i = 0
+ while (i < n) {
+ var j = 0
+ while (j < n) {
+ if (elems(i) == elems(j)) sum += 1
+ j += 1
+ }
+ i += 1
+ }
+ sum
+ }
+
+ val obj1 = new Object
+ val obj2 = new Object
+
+ def run() {
+ var sum = 0
+ sum += eqeqtest(x => if (x == 0) obj1 else obj2, 2000)
+ sum += eqeqtest(x => x, 1000)
+ sum += eqeqtest(x => x.toChar, 550)
+ sum += eqeqtest(x => x.toByte, 550)
+ sum += eqeqtest(x => x.toLong, 550)
+ sum += eqeqtest(x => x.toShort, 100)
+ sum += eqeqtest(x => x.toFloat, 100)
+ sum += eqeqtest(x => x.toDouble, 100)
+ assert(sum == 2968750)
+ }
+}
diff --git a/test/files/buildmanager/freshnames/A.scala b/test/files/buildmanager/freshnames/A.scala index 88ea44b3c7..e8ab26ca1e 100644 --- a/test/files/buildmanager/freshnames/A.scala +++ b/test/files/buildmanager/freshnames/A.scala @@ -1,11 +1,11 @@ abstract class A { var t: List[B] - + def foo(n: String): Option[B] = { t.reverse find (_.names contains n) } - + def bar(n: Int): Option[B] = { t.reverse find (_.names contains n) } diff --git a/test/files/buildmanager/infer/A.scala b/test/files/buildmanager/infer/A.scala index 5e0e268122..46b5391609 100644 --- a/test/files/buildmanager/infer/A.scala +++ b/test/files/buildmanager/infer/A.scala @@ -1,5 +1,5 @@ class Foo(flag: Boolean) { - val classpath = + val classpath = if (flag) new AClasspath else diff --git a/test/files/buildmanager/overloaded_1/A.scala b/test/files/buildmanager/overloaded_1/A.scala index c070faf978..33b63b8006 100644 --- a/test/files/buildmanager/overloaded_1/A.scala +++ b/test/files/buildmanager/overloaded_1/A.scala @@ -3,7 +3,7 @@ trait As { override def foo = this /// Shouldn't cause the change override def foo(act: List[D]) = this } - + abstract class D{ def foo: D = this def foo(act: List[D]) = this diff --git a/test/files/buildmanager/t2559/D.scala b/test/files/buildmanager/t2559/D.scala index 4b8422db04..906b69a3e7 100644 --- a/test/files/buildmanager/t2559/D.scala +++ b/test/files/buildmanager/t2559/D.scala @@ -1,5 +1,5 @@ object D { - def x(a: A) = + def x(a: A) = a match { case _: B => () case _: C => () diff --git a/test/files/buildmanager/t2562/A.scala b/test/files/buildmanager/t2562/A.scala index 2208585eed..740cd1e868 100644 --- a/test/files/buildmanager/t2562/A.scala +++ b/test/files/buildmanager/t2562/A.scala @@ -1,6 +1,6 @@ object A { - def x0 = B.x0 + def x0 = B.x0 def x1 = B.x1 def x2 = B.x2 def x3 = 3 diff --git a/test/files/buildmanager/t2562/B.scala b/test/files/buildmanager/t2562/B.scala index 6f658954e1..a524e5cc84 100644 --- a/test/files/buildmanager/t2562/B.scala +++ b/test/files/buildmanager/t2562/B.scala @@ -1,6 +1,6 @@ object B { - def x0 = A.x1 + def x0 = A.x1 def x1 = A.x2 def x2 = A.x3 } diff --git a/test/files/buildmanager/t2562/t2562.changes/A2.scala b/test/files/buildmanager/t2562/t2562.changes/A2.scala index 743609eb18..c560e1e816 100644 --- a/test/files/buildmanager/t2562/t2562.changes/A2.scala +++ b/test/files/buildmanager/t2562/t2562.changes/A2.scala @@ -1,6 +1,6 @@ object A { - def x0 = B.x0 + def x0 = B.x0 def x1 = B.x1 def x2 = B.x2 def x3 = "3" diff --git a/test/files/buildmanager/t3133/A.java b/test/files/buildmanager/t3133/A.java index 9cf4d96bd4..c4e7f3af0e 100644 --- a/test/files/buildmanager/t3133/A.java +++ b/test/files/buildmanager/t3133/A.java @@ -1,7 +1,7 @@ public class A { - class Foo {} - + class Foo {} + public A(Foo a) {} - + private void bar(Foo z) {} } diff --git a/test/files/continuations-neg/function0.scala b/test/files/continuations-neg/function0.scala index 4112ee3835..6ef0d98b90 100644 --- a/test/files/continuations-neg/function0.scala +++ b/test/files/continuations-neg/function0.scala @@ -4,13 +4,13 @@ import scala.util.continuations._ object Test { - + def main(args: Array[String]): Any = { - + val f = () => shift { k: (Int=>Int) => k(7) } val g: () => Int = f - + println(reset(g())) } - + }
\ No newline at end of file diff --git a/test/files/continuations-neg/function2.scala b/test/files/continuations-neg/function2.scala index ae0fda509d..402c6dcad8 100644 --- a/test/files/continuations-neg/function2.scala +++ b/test/files/continuations-neg/function2.scala @@ -4,13 +4,13 @@ import scala.util.continuations._ object Test { - + def main(args: Array[String]): Any = { - + val f = () => 7 val g: () => Int @cps[Int] = f - + println(reset(g())) } - + }
\ No newline at end of file diff --git a/test/files/continuations-neg/function3.scala b/test/files/continuations-neg/function3.scala index 0c3f1667e5..c4acc4c2e9 100644 --- a/test/files/continuations-neg/function3.scala +++ b/test/files/continuations-neg/function3.scala @@ -4,12 +4,12 @@ import scala.util.continuations._ object Test { - + def main(args: Array[String]): Any = { - + val g: () => Int = () => shift { k: (Int=>Int) => k(7) } - + println(reset(g())) } - + }
\ No newline at end of file diff --git a/test/files/continuations-neg/infer0.scala b/test/files/continuations-neg/infer0.scala index 894d5228b1..9cf69c5d35 100644 --- a/test/files/continuations-neg/infer0.scala +++ b/test/files/continuations-neg/infer0.scala @@ -4,11 +4,11 @@ import scala.util.continuations._ object Test { - + def test(x: => Int @cpsParam[String,Int]) = 7 - + def main(args: Array[String]): Any = { test(8) } - + }
\ No newline at end of file diff --git a/test/files/continuations-neg/infer2.check b/test/files/continuations-neg/infer2.check index d92bc9c572..59eb670bc3 100644 --- a/test/files/continuations-neg/infer2.check +++ b/test/files/continuations-neg/infer2.check @@ -1,4 +1,4 @@ infer2.scala:14: error: illegal answer type modification: scala.util.continuations.cpsParam[String,Int] andThen scala.util.continuations.cpsParam[String,Int] - test { sym(); sym() } + test { sym(); sym() } ^ one error found diff --git a/test/files/continuations-neg/infer2.scala b/test/files/continuations-neg/infer2.scala index a890ac1fc4..eaffbc17fc 100644 --- a/test/files/continuations-neg/infer2.scala +++ b/test/files/continuations-neg/infer2.scala @@ -4,16 +4,16 @@ import scala.util.continuations._ object Test { - + def test(x: => Int @cpsParam[String,Int]) = 7 - + def sym() = shift { k: (Int => String) => 9 } - - + + def main(args: Array[String]): Any = { - test { sym(); sym() } + test { sym(); sym() } } - + } diff --git a/test/files/continuations-neg/lazy.scala b/test/files/continuations-neg/lazy.scala index 3c8169dd46..a2fad83be8 100644 --- a/test/files/continuations-neg/lazy.scala +++ b/test/files/continuations-neg/lazy.scala @@ -1,16 +1,16 @@ -import scala.util.continuations._ - -object Test { +import scala.util.continuations._ + +object Test { def foo() = { lazy val x = shift((k:Unit=>Unit)=>k()) println(x) } - - def main(args: Array[String]) { + + def main(args: Array[String]) { reset { foo() } - } - + } + }
\ No newline at end of file diff --git a/test/files/continuations-neg/t2285.scala b/test/files/continuations-neg/t2285.scala index f3c7f4c89c..b906dc455a 100644 --- a/test/files/continuations-neg/t2285.scala +++ b/test/files/continuations-neg/t2285.scala @@ -5,7 +5,7 @@ import scala.util.continuations._ object Test { def bar() = shift { k: (String => String) => k("1") } - + def foo() = reset { bar(); 7 } - + } diff --git a/test/files/continuations-neg/t2949.scala b/test/files/continuations-neg/t2949.scala index ce27c7c0e8..2d426a4d89 100644 --- a/test/files/continuations-neg/t2949.scala +++ b/test/files/continuations-neg/t2949.scala @@ -8,7 +8,7 @@ object Test { def reify[A, B](x : A @cpsParam[List[A], B]) = reset{ List(x) } def main(args: Array[String]): Unit = println(reify { - val x = reflect[Int, Int](List(1,2,3)) + val x = reflect[Int, Int](List(1,2,3)) val y = reflect[Int, Int](List(2,4,8)) x * y }) diff --git a/test/files/continuations-neg/trycatch2.scala b/test/files/continuations-neg/trycatch2.scala index 761cee52ac..d61419169b 100644 --- a/test/files/continuations-neg/trycatch2.scala +++ b/test/files/continuations-neg/trycatch2.scala @@ -7,7 +7,7 @@ object Test { def fatal[T]: T = throw new Exception def cpsIntStringInt = shift { k:(Int=>String) => k(3); 7 } def cpsIntIntString = shift { k:(Int=>Int) => k(3); "7" } - + def foo1 = try { fatal[Int] cpsIntStringInt diff --git a/test/files/continuations-run/basics.scala b/test/files/continuations-run/basics.scala index 9df209b11c..b63710bc64 100755 --- a/test/files/continuations-run/basics.scala +++ b/test/files/continuations-run/basics.scala @@ -14,10 +14,10 @@ object Test { } def main(args: Array[String]) = { - + println(reset(m0())) println(reset(m1())) - + } - + } diff --git a/test/files/continuations-run/function1.scala b/test/files/continuations-run/function1.scala index 3b39722e3a..fbd413ed9d 100644 --- a/test/files/continuations-run/function1.scala +++ b/test/files/continuations-run/function1.scala @@ -4,13 +4,13 @@ import scala.util.continuations._ object Test { - + def main(args: Array[String]): Any = { - + val f = () => shift { k: (Int=>Int) => k(7) } val g: () => Int @cps[Int] = f - + println(reset(g())) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/function4.scala b/test/files/continuations-run/function4.scala index b73eedb02c..2ccd0b4ff2 100644 --- a/test/files/continuations-run/function4.scala +++ b/test/files/continuations-run/function4.scala @@ -4,12 +4,12 @@ import scala.util.continuations._ object Test { - + def main(args: Array[String]): Any = { - + val g: () => Int @cps[Int] = () => shift { k: (Int=>Int) => k(7) } - + println(reset(g())) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/function5.scala b/test/files/continuations-run/function5.scala index a689ccf243..fe528e14e7 100644 --- a/test/files/continuations-run/function5.scala +++ b/test/files/continuations-run/function5.scala @@ -4,12 +4,12 @@ import scala.util.continuations._ object Test { - + def main(args: Array[String]): Any = { - + val g: () => Int @cps[Int] = () => 7 - + println(reset(g())) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/function6.scala b/test/files/continuations-run/function6.scala index 1a2792370a..54a6ffcc93 100644 --- a/test/files/continuations-run/function6.scala +++ b/test/files/continuations-run/function6.scala @@ -4,13 +4,13 @@ import scala.util.continuations._ object Test { - + def main(args: Array[String]): Any = { - + val g: PartialFunction[Int, Int @cps[Int]] = { case x => 7 } - + println(reset(g(2))) - + } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/ifelse0.scala b/test/files/continuations-run/ifelse0.scala index e34b86ee84..2facab4b98 100644 --- a/test/files/continuations-run/ifelse0.scala +++ b/test/files/continuations-run/ifelse0.scala @@ -4,15 +4,15 @@ import scala.util.continuations._ object Test { - + def test(x:Int) = if (x <= 7) shift { k: (Int=>Int) => k(k(k(x))) } else shift { k: (Int=>Int) => k(x) } - + def main(args: Array[String]): Any = { println(reset(1 + test(7))) println(reset(1 + test(8))) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/ifelse1.scala b/test/files/continuations-run/ifelse1.scala index 2ccc1ed730..c624b84b75 100644 --- a/test/files/continuations-run/ifelse1.scala +++ b/test/files/continuations-run/ifelse1.scala @@ -4,12 +4,12 @@ import scala.util.continuations._ object Test { - + def test1(x:Int) = if (x <= 7) shift { k: (Int=>Int) => k(k(k(x))) } else x - + def test2(x:Int) = if (x <= 7) x else @@ -21,5 +21,5 @@ object Test { println(reset(1 + test2(7))) println(reset(1 + test2(8))) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/ifelse2.scala b/test/files/continuations-run/ifelse2.scala index 536e350190..506acc4d00 100644 --- a/test/files/continuations-run/ifelse2.scala +++ b/test/files/continuations-run/ifelse2.scala @@ -4,13 +4,13 @@ import scala.util.continuations._ object Test { - + def test(x:Int) = if (x <= 7) shift { k: (Unit=>Unit) => println("abort") } - + def main(args: Array[String]): Any = { println(reset{ test(7); println("alive") }) println(reset{ test(8); println("alive") }) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/ifelse3.scala b/test/files/continuations-run/ifelse3.scala index 5dbd079d1c..54566a421c 100644 --- a/test/files/continuations-run/ifelse3.scala +++ b/test/files/continuations-run/ifelse3.scala @@ -4,18 +4,18 @@ import scala.util.continuations._ object Test { - + def util(x: Boolean) = shift { k: (Boolean=>Int) => k(x) } - + def test(x:Int) = if (util(x <= 7)) x - 1 else x + 1 - - + + def main(args: Array[String]): Any = { println(reset(test(7))) println(reset(test(8))) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/infer1.scala b/test/files/continuations-run/infer1.scala index a6c6c07215..10822508e7 100644 --- a/test/files/continuations-run/infer1.scala +++ b/test/files/continuations-run/infer1.scala @@ -4,9 +4,9 @@ import scala.util.continuations._ object Test { - + def test(x: => Int @cpsParam[String,Int]) = 7 - + def test2() = { val x = shift { k: (Int => String) => 9 } x @@ -14,9 +14,9 @@ object Test { def test3(x: => Int @cpsParam[Int,Int]) = 7 - + def util() = shift { k: (String => String) => "7" } - + def main(args: Array[String]): Any = { test { shift { k: (Int => String) => 9 } } test { shift { k: (Int => String) => 9 }; 2 } @@ -29,5 +29,5 @@ object Test { test3 { { test3(0); 2 } } } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/match0.scala b/test/files/continuations-run/match0.scala index bd36238d7f..b65d343c07 100644 --- a/test/files/continuations-run/match0.scala +++ b/test/files/continuations-run/match0.scala @@ -4,15 +4,15 @@ import scala.util.continuations._ object Test { - + def test(x:Int) = x match { case 7 => shift { k: (Int=>Int) => k(k(k(x))) } case 8 => shift { k: (Int=>Int) => k(x) } } - + def main(args: Array[String]): Any = { println(reset(1 + test(7))) println(reset(1 + test(8))) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/match1.scala b/test/files/continuations-run/match1.scala index ea4e219666..20671f26ba 100644 --- a/test/files/continuations-run/match1.scala +++ b/test/files/continuations-run/match1.scala @@ -4,15 +4,15 @@ import scala.util.continuations._ object Test { - + def test(x:Int) = x match { case 7 => shift { k: (Int=>Int) => k(k(k(x))) } case _ => x } - + def main(args: Array[String]): Any = { println(reset(1 + test(7))) println(reset(1 + test(8))) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/match2.scala b/test/files/continuations-run/match2.scala index 8d4f04870f..8b0fb946df 100644 --- a/test/files/continuations-run/match2.scala +++ b/test/files/continuations-run/match2.scala @@ -4,23 +4,23 @@ import scala.util.continuations._ object Test { - + def test1() = { val (a, b) = shift { k: (((String,String)) => String) => k("A","B") } b } case class Elem[T,U](a: T, b: U) - + def test2() = { val Elem(a,b) = shift { k: (Elem[String,String] => String) => k(Elem("A","B")) } b } - + def main(args: Array[String]): Any = { println(reset(test1())) println(reset(test2())) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/t3199.scala b/test/files/continuations-run/t3199.scala index 3fd2f1959a..7b54793e05 100644 --- a/test/files/continuations-run/t3199.scala +++ b/test/files/continuations-run/t3199.scala @@ -1,20 +1,20 @@ -import _root_.scala.collection.Seq -import _root_.scala.util.control.Exception -import _root_.scala.util.continuations._ - -object Test { - - trait AbstractResource[+R <: AnyRef] { - def reflect[B] : R @cpsParam[B,Either[Throwable, B]] = shift(acquireFor) - def acquireFor[B](f : R => B) : Either[Throwable, B] = { - import Exception._ - catching(List(classOf[Throwable]) : _*) either (f(null.asInstanceOf[R])) - } - } - - def main(args: Array[String]) : Unit = { - val x = new AbstractResource[String] { } - val result = x.acquireFor( x => 7 ) - println(result) - } - } +import _root_.scala.collection.Seq +import _root_.scala.util.control.Exception +import _root_.scala.util.continuations._ + +object Test { + + trait AbstractResource[+R <: AnyRef] { + def reflect[B] : R @cpsParam[B,Either[Throwable, B]] = shift(acquireFor) + def acquireFor[B](f : R => B) : Either[Throwable, B] = { + import Exception._ + catching(List(classOf[Throwable]) : _*) either (f(null.asInstanceOf[R])) + } + } + + def main(args: Array[String]) : Unit = { + val x = new AbstractResource[String] { } + val result = x.acquireFor( x => 7 ) + println(result) + } + } diff --git a/test/files/continuations-run/t3199b.scala b/test/files/continuations-run/t3199b.scala index 950c584153..2122c963ac 100644 --- a/test/files/continuations-run/t3199b.scala +++ b/test/files/continuations-run/t3199b.scala @@ -1,11 +1,11 @@ object Test { - + def test() = { java.util.Arrays.asList(Array(1,2,3):_*) } - + def main(args: Array[String]) = { println(test()) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/t3223.scala b/test/files/continuations-run/t3223.scala index 4e510178e6..efed1ff581 100644 --- a/test/files/continuations-run/t3223.scala +++ b/test/files/continuations-run/t3223.scala @@ -2,16 +2,16 @@ import scala.util.continuations._ object Test { def foo(x:Int) = { - try { + try { throw new Exception shiftUnit0[Int,Int](7) } catch { - case ex => + case ex => val g = (a:Int)=>a 9 } } - + def main(args: Array[String]) { println(reset(foo(0))) } diff --git a/test/files/continuations-run/t3225.scala b/test/files/continuations-run/t3225.scala index ecfde279cf..5b6259c43f 100644 --- a/test/files/continuations-run/t3225.scala +++ b/test/files/continuations-run/t3225.scala @@ -31,10 +31,10 @@ object Test { } def blaX[A] = shift { k:(Bla=>A) => k(new Bla) } - + def fooX[A] = blaX[A].x def fooY[A] = blaX[A].y[A] - + def testPoly() = { println(reset(blaX[Bla]).x) println(reset(blaX[Int].x)) @@ -52,5 +52,5 @@ object Test { testMono() testPoly() } - + } diff --git a/test/files/continuations-run/trycatch0.scala b/test/files/continuations-run/trycatch0.scala index 74a078b5ef..ec39863f3f 100644 --- a/test/files/continuations-run/trycatch0.scala +++ b/test/files/continuations-run/trycatch0.scala @@ -3,7 +3,7 @@ import scala.util.continuations._ object Test { - + def foo = try { shift((k: Int=>Int) => k(7)) } catch { @@ -17,7 +17,7 @@ object Test { case ex => shiftUnit0[Int,Int](9) } - + def main(args: Array[String]): Unit = { println(reset { foo + 3 }) println(reset { bar + 3 }) diff --git a/test/files/continuations-run/trycatch1.scala b/test/files/continuations-run/trycatch1.scala index ade13794e3..10dfd30bb2 100644 --- a/test/files/continuations-run/trycatch1.scala +++ b/test/files/continuations-run/trycatch1.scala @@ -5,7 +5,7 @@ import scala.util.continuations._ object Test { def fatal: Int = throw new Exception() - + def foo1 = try { fatal shift((k: Int=>Int) => k(7)) diff --git a/test/files/continuations-run/while0.scala b/test/files/continuations-run/while0.scala index 9735f9d2c3..46005a4a77 100644 --- a/test/files/continuations-run/while0.scala +++ b/test/files/continuations-run/while0.scala @@ -4,9 +4,9 @@ import scala.util.continuations._ object Test { - + def foo(): Int @cps[Unit] = 2 - + def test(): Unit @cps[Unit] = { var x = 0 while (x < 9000) { // pick number large enough to require tail-call opt @@ -18,5 +18,5 @@ object Test { def main(args: Array[String]): Any = { reset(test()) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/while1.scala b/test/files/continuations-run/while1.scala index fb5dc0079a..fd41ab36ee 100644 --- a/test/files/continuations-run/while1.scala +++ b/test/files/continuations-run/while1.scala @@ -4,9 +4,9 @@ import scala.util.continuations._ object Test { - + def foo(): Int @cps[Unit] = shift { k => println("up"); k(2); println("down") } - + def test(): Unit @cps[Unit] = { var x = 0 while (x < 9) { @@ -18,5 +18,5 @@ object Test { def main(args: Array[String]): Any = { reset(test()) } - + }
\ No newline at end of file diff --git a/test/files/continuations-run/while2.scala b/test/files/continuations-run/while2.scala index f36288929e..63f9cb99fe 100644 --- a/test/files/continuations-run/while2.scala +++ b/test/files/continuations-run/while2.scala @@ -4,10 +4,10 @@ import scala.util.continuations._ object Test { - + def foo1(): Int @cps[Unit] = 2 def foo2(): Int @cps[Unit] = shift { k => println("up"); k(2); println("down") } - + def test(): Unit @cps[Unit] = { var x = 0 while (x < 9000) { // pick number large enough to require tail-call opt @@ -19,5 +19,5 @@ object Test { def main(args: Array[String]): Any = { reset(test()) } - + }
\ No newline at end of file diff --git a/test/files/detach-run/actor/Client.scala b/test/files/detach-run/actor/Client.scala index 12573e24d3..9451b3aa42 100644 --- a/test/files/detach-run/actor/Client.scala +++ b/test/files/detach-run/actor/Client.scala @@ -8,9 +8,9 @@ import scala.remoting._, Debug._ object Foo { def trace(msg: String) { info("[Foo.trace] "+msg)} -} +}
object Client { - val yInstVal: Int = 10 + val yInstVal: Int = 10
var yInstVar: Int = 99 object Bar { def trace(msg: String) { info("[Bar.trace] "+msg) } @@ -19,10 +19,10 @@ object Client { init(args) actor { val server = select(Node(host, port), 'Server) - val zLocVal: Int = 1000 + val zLocVal: Int = 1000
var zLocVar: Int = 9998 - server ! detach( - (x: Int) => { + server ! detach(
+ (x: Int) => {
println("yInstVal = "+yInstVal) this.trace("yInstVar = "+yInstVar) Bar.trace("zLocVal = "+zLocVal) @@ -30,17 +30,17 @@ object Client { zLocVar += 2 System.out.println("zLocVal = "+zLocVal) Debug.info("zLocVar = "+zLocVar) - x + yInstVal + yInstVar + zLocVal + zLocVar - }) + x + yInstVal + yInstVar + zLocVal + zLocVar
+ })
react { case result: Int => println("result received: " + result) - Predef.exit(0) + Predef.exit(0) } } } private def trace(msg: String) { info("[Client.trace] "+msg) } -} +}
object ClientHelper { private var _host = "127.0.0.1" diff --git a/test/files/detach-run/actor/Server.scala b/test/files/detach-run/actor/Server.scala index b56d22f744..558b4a296c 100644 --- a/test/files/detach-run/actor/Server.scala +++ b/test/files/detach-run/actor/Server.scala @@ -4,12 +4,12 @@ import scala.actors.Actor._ import scala.actors.remote.RemoteActor._ - +
object Server extends ServerConsole { private def computation(f: Int => Int): Int = { //some time-consuming task f(2) - } + }
def main(args: Array[String]) { actor { classLoader = serverClassLoader @@ -21,7 +21,7 @@ object Server extends ServerConsole { val result = computation(f) sender ! result } - } - } + }
+ }
} } diff --git a/test/files/detach-run/actor/actor.scala b/test/files/detach-run/actor/actor.scala index 18a6dc38fd..23a10d6982 100644 --- a/test/files/detach-run/actor/actor.scala +++ b/test/files/detach-run/actor/actor.scala @@ -115,7 +115,7 @@ object Env { } in.close() } catch { - case e: FileNotFoundException => println(e) + case e: FileNotFoundException => println(e) }) out.close() } diff --git a/test/files/detach-run/basic/Client.scala b/test/files/detach-run/basic/Client.scala index f8eddb041d..cb39d224b0 100644 --- a/test/files/detach-run/basic/Client.scala +++ b/test/files/detach-run/basic/Client.scala @@ -7,9 +7,9 @@ import scala.remoting._, Debug._ object Foo { def trace(s: String) { info("[Foo.trace] "+s)} -} -object Client { - val yInstVal: Int = 10 +}
+object Client {
+ val yInstVal: Int = 10
var yInstVar: Int = 99 object Bar { def trace(s: String) { info("[Bar.trace] "+s) } @@ -17,10 +17,10 @@ object Client { def main(args: Array[String]) { init(args) val server = new Channel(host, port) - val zLocVal: Int = 1000 - var zLocVar: Int = 9998 - server ! detach( - (x: Int) => { + val zLocVal: Int = 1000
+ var zLocVar: Int = 9998
+ server ! detach(
+ (x: Int) => {
println("yInstVal = "+yInstVal) this.trace("yInstVar = "+yInstVar) Bar.trace("zLocVal = "+zLocVal) @@ -28,13 +28,13 @@ object Client { zLocVar += 2 System.out.println("zLocVal = "+zLocVal) Debug.info("zLocVar = "+zLocVar) - x + yInstVal + yInstVar + zLocVal + zLocVar - }) - val result = server.receiveInt - println("result received: " + result) + x + yInstVal + yInstVar + zLocVal + zLocVar
+ })
+ val result = server.receiveInt
+ println("result received: " + result)
} - private def trace(s: String) { info("[Client.trace] "+s) } -} + private def trace(s: String) { info("[Client.trace] "+s) }
+}
object ClientHelper { private var _host = "127.0.0.1" diff --git a/test/files/detach-run/basic/Server.scala b/test/files/detach-run/basic/Server.scala index f8aa02a4ba..4fce23c2d1 100644 --- a/test/files/detach-run/basic/Server.scala +++ b/test/files/detach-run/basic/Server.scala @@ -1,22 +1,22 @@ /* * @author Stephane Micheloud - */ + */
import scala.remoting.ServerChannel - +
object Server extends ServerConsole { private def computation(f: Int => Int): Int = { //some time-consuming task f(2) - } - def main(args: Array[String]) { + }
+ def main(args: Array[String]) {
val server = new ServerChannel(args(0).toInt) loop { val client = server.accept val f = client.receive[Int => Int] val result = computation(f) - client ! result + client ! result
} - server.close() + server.close()
} -} +}
diff --git a/test/files/detach-run/basic/ServerConsole.scala b/test/files/detach-run/basic/ServerConsole.scala index 65b81c0ca1..859cc1b792 100644 --- a/test/files/detach-run/basic/ServerConsole.scala +++ b/test/files/detach-run/basic/ServerConsole.scala @@ -2,20 +2,20 @@ * @author Stephane Micheloud */ -import java.io._ +import java.io._
import scala.compat.Platform.currentTime -import scala.remoting.Debug, Debug._ +import scala.remoting.Debug, Debug._
trait ServerConsole extends Thread { private val startTime = currentTime - - start() +
+ start()
private var isTerminated = false def terminate() { isTerminated = true } - +
protected def loop(block: => Unit) { while (!isTerminated) { try { @@ -36,30 +36,30 @@ trait ServerConsole extends Thread { override def run() { val in = new BufferedReader(new InputStreamReader(System.in)) - var quit = false - while (!quit) { + var quit = false
+ while (!quit) {
val args = getArgs(in) - if (args contains "quit") + if (args contains "quit")
quit = true if (args contains "cls") { println(ERASE_SCREEN) println(CURSOR_HOME) - } - if (args contains "warning") - Debug.level = Level.WARNING - if (args contains "info") - Debug.level = Level.INFO - if (args contains "silent") - Debug.level = Level.SILENT + }
+ if (args contains "warning")
+ Debug.level = Level.WARNING
+ if (args contains "info")
+ Debug.level = Level.INFO
+ if (args contains "silent")
+ Debug.level = Level.SILENT
} - terminate() - println("Server exited ("+mkTimeString(currentTime - startTime)+")") + terminate()
+ println("Server exited ("+mkTimeString(currentTime - startTime)+")")
exit(0) - - } - - protected def trace(msg: String) { - Debug.info("[ServerConsole.trace] "+msg) +
+ }
+
+ protected def trace(msg: String) {
+ Debug.info("[ServerConsole.trace] "+msg)
} private def getArgs(in: BufferedReader): List[String] = { diff --git a/test/files/jvm/actor-sync-send-timeout.scala b/test/files/jvm/actor-sync-send-timeout.scala index ed330900b2..21e624bd0a 100644 --- a/test/files/jvm/actor-sync-send-timeout.scala +++ b/test/files/jvm/actor-sync-send-timeout.scala @@ -2,9 +2,9 @@ import scala.actors.Actor /* This test is a regression test for SI-4759. */ -object Test { +object Test { val Runs = 5 - + def main(args: Array[String]) = { var i = 0 while (i < Runs) { diff --git a/test/files/jvm/actor-uncaught-exception.scala b/test/files/jvm/actor-uncaught-exception.scala index 882362272d..5ae66de640 100644 --- a/test/files/jvm/actor-uncaught-exception.scala +++ b/test/files/jvm/actor-uncaught-exception.scala @@ -4,60 +4,60 @@ class MyException(msg: String) extends Exception(msg) { override def fillInStackTrace() = this } -object Test { +object Test { - case object StartError extends Actor { - def act() { + case object StartError extends Actor { + def act() { try { - throw new MyException("I don't want to run!") + throw new MyException("I don't want to run!") } catch { case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] && !e.isInstanceOf[MyException]) => e.printStackTrace() } - } - } + } + } - case object MessageError extends Actor { - def act() { + case object MessageError extends Actor { + def act() { try { - react { - case _ => throw new MyException("No message for me!") - } + react { + case _ => throw new MyException("No message for me!") + } } catch { case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => e.printStackTrace() } - } - } + } + } - case object Supervisor extends Actor { - def act() { + case object Supervisor extends Actor { + def act() { try { - trapExit = true + trapExit = true link(StartError) link(MessageError) - StartError.start() + StartError.start() MessageError.start() - Actor.loop { - react { + Actor.loop { + react { case Exit(actor, reason) => println("OK") if (actor == StartError) MessageError ! 'ping else exit() - } - } + } + } } catch { case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => e.printStackTrace() } - } - } + } + } - def main(args: Array[String]) { - Supervisor.start() - } -} + def main(args: Array[String]) { + Supervisor.start() + } +} diff --git a/test/files/jvm/actor-uncaught-exception2.scala b/test/files/jvm/actor-uncaught-exception2.scala index 36b6f0c52e..0364cbeb03 100644 --- a/test/files/jvm/actor-uncaught-exception2.scala +++ b/test/files/jvm/actor-uncaught-exception2.scala @@ -4,60 +4,60 @@ class MyException(msg: String) extends Exception(msg) { override def fillInStackTrace() = this } -object Test { +object Test { - case object StartError extends Actor { - def act() { + case object StartError extends Actor { + def act() { try { - throw new MyException("I don't want to run!") + throw new MyException("I don't want to run!") } catch { case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] && !e.isInstanceOf[MyException]) => e.printStackTrace() } - } - } + } + } - case object MessageError extends Actor { - def act() { + case object MessageError extends Actor { + def act() { try { - react { - case _ => throw new MyException("No message for me!") - } + react { + case _ => throw new MyException("No message for me!") + } } catch { case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => e.printStackTrace() } - } - } + } + } - case object Supervisor extends Actor { - def act() { + case object Supervisor extends Actor { + def act() { try { - trapExit = true + trapExit = true link(StartError) link(MessageError) - StartError.start() + StartError.start() MessageError.start() - Actor.loop { - react { + Actor.loop { + react { case Exit(actor, reason) => println(reason) if (actor == StartError) MessageError ! 'ping else exit() - } - } + } + } } catch { case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => e.printStackTrace() } - } - } + } + } - def main(args: Array[String]) { - Supervisor.start() - } -} + def main(args: Array[String]) { + Supervisor.start() + } +} diff --git a/test/files/jvm/backendBugUnapply.scala b/test/files/jvm/backendBugUnapply.scala index 5461b72f91..204072f108 100644 --- a/test/files/jvm/backendBugUnapply.scala +++ b/test/files/jvm/backendBugUnapply.scala @@ -1,19 +1,19 @@ -object Test { +object Test { import scala.xml.{Node,HasKeyValue} - + def domatch(x:Node): Node = { val hasBar = new HasKeyValue("bar") - + x match { case Node("foo", hasBar(z), _*) => z case _ => null } } - + def main(args: Array[String]): Unit = { println(domatch(<foo bar="baz"><hi/></foo>)) println(domatch(<foo bingo="donkey"><hi/></foo>)) - // + // // assert(domatch(<foo bar="baz"><hi/></foo>).toString == "baz") // assert(domatch(<foo bar="baz2"><hi/></foo>) == null)//, domatch(<foo bar="baz2"><hi/></foo>)) } diff --git a/test/files/jvm/bigints.scala b/test/files/jvm/bigints.scala index f4ca2d17a3..7a797879f2 100644 --- a/test/files/jvm/bigints.scala +++ b/test/files/jvm/bigints.scala @@ -1,5 +1,5 @@ //############################################################################ -// BigInt, BigDecimal +// BigInt, BigDecimal //############################################################################ //############################################################################ diff --git a/test/files/jvm/bug560bis.scala b/test/files/jvm/bug560bis.scala index 13bf4b1ae0..b04303c8a0 100644 --- a/test/files/jvm/bug560bis.scala +++ b/test/files/jvm/bug560bis.scala @@ -5,14 +5,14 @@ import scala.xml._; case Seq(a,b,c,d @ _*) => Console.println("cool!") case _ => Console.println("bah") } - def foo(args: List[String]) = + def foo(args: List[String]) = Elem(null,"bla",Null, TopScope, (args map {x => Text(x)}):_*) match { case Elem(_,_,_,_,Text("1"),_*) => Console.println("cool!") case _ => Console.println("bah") } - + def main(args: Array[String]) = { val li = List("1","2","3","4") bar(li) diff --git a/test/files/jvm/console.scala b/test/files/jvm/console.scala index 0ac43f2d26..75449416aa 100644 --- a/test/files/jvm/console.scala +++ b/test/files/jvm/console.scala @@ -9,6 +9,6 @@ object Test extends App { flush println("..") println(1) - printf("Argument nr. %d has value %1.2f\n", + printf("Argument nr. %d has value %1.2f\n", 1, 10.0/3) } diff --git a/test/files/jvm/deprecation/Test_1.scala b/test/files/jvm/deprecation/Test_1.scala index 92173f94e2..5bd87b89c4 100644 --- a/test/files/jvm/deprecation/Test_1.scala +++ b/test/files/jvm/deprecation/Test_1.scala @@ -7,7 +7,7 @@ class Test { val i = new d.Inner val w = i.buz() } - + @deprecated("no longer!") class Inner { @deprecated("uncool") def f: Int = 1 @deprecated("this one as well!") var g = -1 diff --git a/test/files/jvm/future-termination.scala b/test/files/jvm/future-termination.scala index 688de60c3b..f51642cb7a 100644 --- a/test/files/jvm/future-termination.scala +++ b/test/files/jvm/future-termination.scala @@ -1,19 +1,19 @@ -import scala.actors.Futures - -/* Test that unevaluated futures do not prevent program termination */ - -object Test { - def main(args: Array[String]) { +import scala.actors.Futures + +/* Test that unevaluated futures do not prevent program termination */ + +object Test { + def main(args: Array[String]) { try { - val meaningOfLife = Futures.future { - Thread.sleep(5000) // pretend this is a harder problem than it is - println("I have the answer!") - 42 - } - println("I can't wait that long, bye.") + val meaningOfLife = Futures.future { + Thread.sleep(5000) // pretend this is a harder problem than it is + println("I have the answer!") + 42 + } + println("I can't wait that long, bye.") } catch { case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => e.printStackTrace() } - } + } } diff --git a/test/files/jvm/inner.scala b/test/files/jvm/inner.scala index d0d2226de6..156d9e69a8 100644 --- a/test/files/jvm/inner.scala +++ b/test/files/jvm/inner.scala @@ -14,7 +14,7 @@ class A { trait Itf { def method1(x: Int): Int - + trait Itf2 extends Itf { def method2: Unit } diff --git a/test/files/jvm/interpreter.check b/test/files/jvm/interpreter.check index f91fd1a341..42a8ae8855 100644 --- a/test/files/jvm/interpreter.check +++ b/test/files/jvm/interpreter.check @@ -72,7 +72,7 @@ fish: S = fish scala> // Test that arrays pretty print nicely. -scala> val arr = Array("What's", "up", "doc?") +scala> val arr = Array("What's", "up", "doc?") arr: Array[java.lang.String] = Array(What's, up, doc?) scala> // Test that arrays pretty print nicely, even when we give them type Any @@ -337,10 +337,10 @@ You typed two blank lines. Starting a new command. scala> // defining and using quoted names should work (ticket #323) -scala> def `match` = 1 +scala> def `match` = 1 match: Int -scala> val x = `match` +scala> val x = `match` x: Int = 1 scala> diff --git a/test/files/jvm/interpreter.scala b/test/files/jvm/interpreter.scala index 752a129950..f0bc8b5818 100644 --- a/test/files/jvm/interpreter.scala +++ b/test/files/jvm/interpreter.scala @@ -29,7 +29,7 @@ val atom = new scala.xml.Atom() class S(override val toString : String) val fish = new S("fish") // Test that arrays pretty print nicely. -val arr = Array("What's", "up", "doc?") +val arr = Array("What's", "up", "doc?") // Test that arrays pretty print nicely, even when we give them type Any val arrInt : Any = Array(1,2,3) // Test that nested arrays are pretty-printed correctly @@ -132,8 +132,8 @@ there // defining and using quoted names should work (ticket #323) -def `match` = 1 -val x = `match` +def `match` = 1 +val x = `match` // multiple classes defined on one line sealed class Exp; class Fact extends Exp; class Term extends Exp @@ -153,6 +153,6 @@ def f(e: Exp) = e match {{ // non-exhaustive warning here interp.interpret("\"after reset\"") interp.interpret("plusOne(5) // should be undefined now") } - + appendix() } diff --git a/test/files/jvm/methvsfield.java b/test/files/jvm/methvsfield.java index dadc98669a..c1b2b87b48 100644 --- a/test/files/jvm/methvsfield.java +++ b/test/files/jvm/methvsfield.java @@ -1,11 +1,11 @@ // This should be compiled with javac and saved // in ../lib/methvsfield.jar . -class MethVsField +class MethVsField { int three = 3; - int three() - { + int three() + { return 3; } } diff --git a/test/files/jvm/natives.scala b/test/files/jvm/natives.scala index 14ee4e1c1b..ba868dc85e 100644 --- a/test/files/jvm/natives.scala +++ b/test/files/jvm/natives.scala @@ -1,16 +1,16 @@ object Test { //println("java.library.path=" + System.getProperty("java.library.path")) - + val sysWordSize = System.getProperty("sun.arch.data.model", "32") val sysType = System.getProperty("os.name") - + val libName = if (sysType == "Mac OS X") "natives" else "natives-" + sysWordSize - + System.loadLibrary(libName) @native diff --git a/test/files/jvm/protectedacc.scala b/test/files/jvm/protectedacc.scala index c3b07a0a7e..525725f2b9 100644 --- a/test/files/jvm/protectedacc.scala +++ b/test/files/jvm/protectedacc.scala @@ -16,7 +16,7 @@ object Test { val ji = new p.b.JavaInteraction(Array('a', 'b', 'c')); (new ji.Inner).m; - + (new p.b.OuterObj.Inner).m } } @@ -36,13 +36,13 @@ package p { def getA: this.type = this; } - + /** Test type members */ trait HighlighterXXX { type Node; protected def highlight(node : Node) : Unit; } - + /** Test type parameters */ abstract class PolyA[a] { protected def m(x: a): Unit; @@ -119,22 +119,22 @@ package p { val inc = meth2(1)_; Console.println("100 = " + inc("10")); - + getA.x; } } } - + trait ScalaAutoEditXXX extends HighlighterXXX { - trait NodeImpl { + trait NodeImpl { def self : Node; highlight(self); } } - + abstract class X[T] extends PolyA[T] { - trait Inner extends B { + trait Inner extends B { def self: T; def self2: Node; def getB: Inner; diff --git a/test/files/jvm/serialization.scala b/test/files/jvm/serialization.scala index 6a4e37bda9..eab06918c0 100644 --- a/test/files/jvm/serialization.scala +++ b/test/files/jvm/serialization.scala @@ -304,7 +304,7 @@ object Test3_mutable { ab1 ++= List("one", "two") val _ab1: ArrayBuffer[String] = read(write(ab1)) check(ab1, _ab1) - + // ArrayBuilder val abu1 = ArrayBuilder.make[Long] val _abu1: ArrayBuilder[ClassManifest[Long]] = read(write(abu1)) @@ -313,12 +313,12 @@ object Test3_mutable { val abu2 = ArrayBuilder.make[Float] val _abu2: ArrayBuilder[ClassManifest[Float]] = read(write(abu2)) check(abu2, _abu2) - + // ArraySeq val aq1 = ArraySeq(1, 2, 3) val _aq1: ArraySeq[Int] = read(write(aq1)) check(aq1, _aq1) - + // ArrayStack val as1 = new ArrayStack[Int] as1 ++= List(20, 2, 3).iterator @@ -544,7 +544,7 @@ object Test7 { case e: Exception => println("Error in Test7: " + e) } - + } @@ -553,7 +553,7 @@ class WithTransient extends Serializable { @transient lazy val a1 = 1 @transient private lazy val a2 = 2 @transient object B extends Serializable - + def test = { println(a1) println(a2) @@ -599,50 +599,50 @@ object Test { // Test classes in package "scala.collection.parallel" and subpackages object Test9_parallel { import scala.collection.parallel._ - + try { println() - + // UnrolledBuffer val ub = new collection.mutable.UnrolledBuffer[String] ub ++= List("one", "two") val _ub: collection.mutable.UnrolledBuffer[String] = read(write(ub)) check(ub, _ub) - + // mutable.ParArray val pa = mutable.ParArray("abc", "def", "etc") val _pa: mutable.ParArray[String] = read(write(pa)) check(pa, _pa) - + // mutable.ParHashMap val mpm = mutable.ParHashMap(1 -> 2, 2 -> 4) val _mpm: mutable.ParHashMap[Int, Int] = read(write(mpm)) check(mpm, _mpm) - + // mutable.ParHashSet val mps = mutable.ParHashSet(1, 2, 3) val _mps: mutable.ParHashSet[Int] = read(write(mps)) check(mps, _mps) - + // immutable.ParRange val pr1 = immutable.ParRange(0, 4, 1, true) val _pr1: immutable.ParRange = read(write(pr1)) check(pr1, _pr1) - + val pr2 = immutable.ParRange(0, 4, 1, false) val _pr2: immutable.ParRange = read(write(pr2)) check(pr2, _pr2) - + // immutable.ParHashMap val ipm = immutable.ParHashMap(5 -> 1, 10 -> 2) val _ipm: immutable.ParHashMap[Int, Int] = read(write(ipm)) check(ipm, _ipm) - + // immutable.ParHashSet val ips = immutable.ParHashSet("one", "two") val _ips: immutable.ParHashSet[String] = read(write(ips)) check(ips, _ips) - + } catch { case e: Exception => println("Error in Test5_parallel: " + e) diff --git a/test/files/jvm/stringbuilder.scala b/test/files/jvm/stringbuilder.scala index c86a8a7713..8f73cfab7b 100644 --- a/test/files/jvm/stringbuilder.scala +++ b/test/files/jvm/stringbuilder.scala @@ -35,7 +35,7 @@ Scala is a general purpose programming language designed to express common progr val j3 = j2; j3 setCharAt (0, j3 charAt 2) val s3 = s2; s3(0) = s3(2) //println("j3="+j3+", s3="+s3)//debug - assertEquals("s3.toString equals j3.toString", true, s3.toString equals j3.toString) + assertEquals("s3.toString equals j3.toString", true, s3.toString equals j3.toString) } } diff --git a/test/files/jvm/t1461.scala b/test/files/jvm/t1461.scala index f0e3cea6cd..a963ec6a12 100644 --- a/test/files/jvm/t1461.scala +++ b/test/files/jvm/t1461.scala @@ -3,7 +3,7 @@ object Test { def main(args: Array[String]) { val jl = classOf[Foo].getMethod("jl", classOf[Baz[_]]) jl.getGenericParameterTypes // works fine - + val l = classOf[Foo].getMethod("l", classOf[Baz[_]]) // By debugger inspection l.signature is (Ltest/Baz<J>;)V l.getGenericParameterTypes // throws GenericSignatureFormatError diff --git a/test/files/jvm/t1464/MyTrait.scala b/test/files/jvm/t1464/MyTrait.scala index 0b8ccc412b..014ddf86c3 100644 --- a/test/files/jvm/t1464/MyTrait.scala +++ b/test/files/jvm/t1464/MyTrait.scala @@ -1,5 +1,5 @@ trait MyTrait { type K def findChildByClass[T <: K with MyTrait]: Unit - + } diff --git a/test/files/jvm/t1600.scala b/test/files/jvm/t1600.scala index 79391b7e76..7e23687425 100644 --- a/test/files/jvm/t1600.scala +++ b/test/files/jvm/t1600.scala @@ -4,23 +4,23 @@ * changes on deserialization. */ object Test { - + import collection._ def main(args: Array[String]) { for (i <- Seq(0, 1, 2, 10, 100)) { def entries = (0 until i).map(i => (new Foo, i)).toList def elements = entries.map(_._1) - + val maps = Seq[Map[Foo, Int]](new mutable.HashMap, new mutable.LinkedHashMap, immutable.HashMap.empty).map(_ ++ entries) test[Map[Foo, Int]](maps, entries.size, assertMap _) - + val sets = Seq[Set[Foo]](new mutable.HashSet, new mutable.LinkedHashSet, immutable.HashSet.empty).map(_ ++ elements) test[Set[Foo]](sets, entries.size, assertSet _) } } - + private def test[A <: AnyRef](collections: Seq[A], expectedSize: Int, assertFunction: (A, Int) => Unit) { for (collection <- collections) { assertFunction(collection, expectedSize) @@ -28,19 +28,19 @@ object Test { val bytes = toBytes(collection) Foo.hashCodeModifier = 1 val deserializedCollection = toObject[A](bytes) - + assertFunction(deserializedCollection, expectedSize) assert(deserializedCollection.getClass == collection.getClass, "collection class should remain the same after deserialization ("+deserializedCollection.getClass+" != "+collection.getClass+")") Foo.hashCodeModifier = 0 } } - + private def toObject[A](bytes: Array[Byte]): A = { val in = new java.io.ObjectInputStream(new java.io.ByteArrayInputStream(bytes)) in.readObject.asInstanceOf[A] } - + private def toBytes(o: AnyRef): Array[Byte] = { val bos = new java.io.ByteArrayOutputStream val out = new java.io.ObjectOutputStream(bos) @@ -48,7 +48,7 @@ object Test { out.close bos.toByteArray } - + private def assertMap[A, B](map: Map[A, B], expectedSize: Int) { assert(expectedSize == map.size, "expected map size: " + expectedSize + ", actual size: " + map.size) map.foreach { case (k, v) => @@ -56,19 +56,19 @@ object Test { assert(map(k) == v) } } - + private def assertSet[A](set: Set[A], expectedSize: Int) { assert(expectedSize == set.size, "expected set size: " + expectedSize + ", actual size: " + set.size) set.foreach { e => assert(set.contains(e), "contains should return true for element in the set, element: " + e) } } - + object Foo { - /* Used to simulate a hashCode change caused by deserializing an instance with an + /* Used to simulate a hashCode change caused by deserializing an instance with an * identity-based hashCode in another JVM. */ var hashCodeModifier = 0 } - + @serializable class Foo { override def hashCode = System.identityHashCode(this) + Foo.hashCodeModifier diff --git a/test/files/jvm/t2570/Test.scala b/test/files/jvm/t2570/Test.scala index d7b7632e22..7944aedae6 100644 --- a/test/files/jvm/t2570/Test.scala +++ b/test/files/jvm/t2570/Test.scala @@ -1,3 +1,3 @@ class Test2 extends Test1[Test3[Test4]] class Test4 -object Test extends Application {}
\ No newline at end of file +object Test extends Application {}
\ No newline at end of file diff --git a/test/files/jvm/t3003/Test_1.scala b/test/files/jvm/t3003/Test_1.scala index 8ec08bebc6..38af66a25a 100644 --- a/test/files/jvm/t3003/Test_1.scala +++ b/test/files/jvm/t3003/Test_1.scala @@ -9,7 +9,7 @@ object Test { . map(f => f.getAnnotations.toList) . filterNot (_.isEmpty) // there are extra fields under -Xcheckinit ) - + println(xs) } } diff --git a/test/files/jvm/throws-annot.scala b/test/files/jvm/throws-annot.scala index 90b58b9976..b679b6c121 100644 --- a/test/files/jvm/throws-annot.scala +++ b/test/files/jvm/throws-annot.scala @@ -43,24 +43,24 @@ object TestThrows { /** Test the top-level mirror that is has the annotations. */ object TL { - + @throws(classOf[IOException]) def read(): Int = 0 - + @throws(classOf[ClassCastException]) @throws(classOf[IOException]) def readWith2(): Int = 0 - + @throws(classOf[IOException]) @Deprecated @throws(classOf[NullPointerException]) def readMixed(): Int = 0 - + @Deprecated @throws(classOf[IOException]) @throws(classOf[NullPointerException]) def readMixed2(): Int = 0 - + @Deprecated def readNoEx(): Int = 0 } diff --git a/test/files/jvm/typerep.scala b/test/files/jvm/typerep.scala index e56b63bafc..49a216c05c 100644 --- a/test/files/jvm/typerep.scala +++ b/test/files/jvm/typerep.scala @@ -109,7 +109,7 @@ object testFuncs { def f5(f: Int => Int, x: Int) = f(x) println(getType(f5 _)) println(getType(f5(f1, 1))) - println + println } class Foo { diff --git a/test/files/jvm/unittest_io_Jvm.scala b/test/files/jvm/unittest_io_Jvm.scala index fd5889cb86..42c793f35a 100644 --- a/test/files/jvm/unittest_io_Jvm.scala +++ b/test/files/jvm/unittest_io_Jvm.scala @@ -8,8 +8,8 @@ object Test extends TestConsoleMain { ) class ReadlinesTest extends TestCase("scala.io.Source method getLines()") { - - val src = Source.fromString(""" + + val src = Source.fromString(""" This is a file it is split on several lines. diff --git a/test/files/jvm/unittest_xml.scala b/test/files/jvm/unittest_xml.scala index 1569bb13af..1c36e746ea 100644 --- a/test/files/jvm/unittest_xml.scala +++ b/test/files/jvm/unittest_xml.scala @@ -12,7 +12,7 @@ object Test { val hasBar = new HasKeyValue("bar") x match { //case Node("foo", hasBar(z), _*) => z - case Node("foo", md, _*) if !hasBar.unapplySeq(md).isEmpty => + case Node("foo", md, _*) if !hasBar.unapplySeq(md).isEmpty => md("bar")(0) case _ => new Atom(3) } @@ -22,8 +22,8 @@ object Test { var x: MetaData = Null var s: NamespaceBinding = TopScope - // testing method def apply(uri:String, scp:NamespaceBinding, k:String): Seq[Node] - // def apply(k:String): Seq[Node] + // testing method def apply(uri:String, scp:NamespaceBinding, k:String): Seq[Node] + // def apply(k:String): Seq[Node] assertEquals("absent element (prefixed) 1", null, x("za://foo.com", s, "bar" )) assertEquals("absent element (unprefix) 1", null, x("bar")) @@ -51,8 +51,8 @@ object Test { val z = <foo bar="gar"/> val z2 = <foo/> - assertEquals("attribute extractor 1", Text("gar"), domatch(z)) - assertEquals("attribute extractor 2", new Atom(3), domatch(z2)) + assertEquals("attribute extractor 1", Text("gar"), domatch(z)) + assertEquals("attribute extractor 2", new Atom(3), domatch(z2)) } } @@ -61,14 +61,14 @@ object Test { def runTest() = { assertTrue(Utility.isNameStart('b')) assertFalse(Utility.isNameStart(':')) - - + + val x = <foo> <toomuchws/> </foo> val y = xml.Utility.trim(x) - + assertEquals("trim 1 ", 1, y match { case <foo><toomuchws/></foo> => 1 }) val x2 = <foo> @@ -100,7 +100,7 @@ object Test { def main(args:Array[String]) = { val ts = new TestSuite( new MetaDataTest, - new UtilityTest + new UtilityTest ) val tr = new TestResult() ts.run(tr) diff --git a/test/files/jvm/varargs/JavaClass.java b/test/files/jvm/varargs/JavaClass.java index 9851e1b78b..536e9a38fb 100644 --- a/test/files/jvm/varargs/JavaClass.java +++ b/test/files/jvm/varargs/JavaClass.java @@ -4,7 +4,7 @@ public class JavaClass { public static <T> void varargz(int i, T... v) { } - + public static void callSomeAnnotations() { VaClass va = new VaClass(); va.vs(4, "", "", ""); diff --git a/test/files/jvm/varargs/VaClass.scala b/test/files/jvm/varargs/VaClass.scala index 6343f9c6f6..8e9cbdbb3f 100644 --- a/test/files/jvm/varargs/VaClass.scala +++ b/test/files/jvm/varargs/VaClass.scala @@ -5,9 +5,9 @@ import annotation.varargs class VaClass { - + @varargs def vs(a: Int, b: String*) = println(a + b.length) @varargs def vi(a: Int, b: Int*) = println(a + b.sum) @varargs def vt[T](a: Int, b: T*) = println(a + b.length) - + } diff --git a/test/files/jvm/xml01.scala b/test/files/jvm/xml01.scala index bb6f98bacc..5234518b5a 100644 --- a/test/files/jvm/xml01.scala +++ b/test/files/jvm/xml01.scala @@ -1,7 +1,7 @@ import java.io.StringReader import org.xml.sax.InputSource -import scala.testing.SUnit._ +import scala.testing.SUnit._ import scala.util.logging._ import scala.xml._ @@ -18,7 +18,7 @@ object Test extends App with Assert { val c = new Node { def label = "hello" - override def hashCode() = + override def hashCode() = Utility.hashCode(prefix, label, attributes.hashCode(), scope.hashCode(), child); def child = Elem(null, "world", e, sc); //def attributes = e; @@ -37,8 +37,8 @@ object Test extends App with Assert { val x2p = XML.load(i) assertEqualsXML(x2p, Elem(null, "book" , e, sc, - Elem(null, "author", e, sc,Text("Peter Buneman")), - Elem(null, "author", e, sc,Text("Dan Suciu")), + Elem(null, "author", e, sc,Text("Peter Buneman")), + Elem(null, "author", e, sc,Text("Dan Suciu")), Elem(null, "title" , e, sc,Text("Data on ze web")))); val xmlFile2 = "<bib><book><author>Peter Buneman</author><author>Dan Suciu</author><title>Data on ze web</title></book><book><author>John Mitchell</author><title>Foundations of Programming Languages</title></book></bib>"; @@ -61,13 +61,13 @@ object Test extends App with Assert { }; */ - assertSameElementsXML( - parsedxml2 \ "_" , - + assertSameElementsXML( + parsedxml2 \ "_" , + List( Elem(null,"book", e, sc, - Elem(null,"author", e, sc, Text("Peter Buneman")), - Elem(null,"author", e, sc, Text("Dan Suciu")), + Elem(null,"author", e, sc, Text("Peter Buneman")), + Elem(null,"author", e, sc, Text("Dan Suciu")), Elem(null,"title" , e, sc, Text("Data on ze web"))), Elem(null,"book",e,sc, Elem(null,"author",e,sc,Text("John Mitchell")), @@ -75,13 +75,13 @@ object Test extends App with Assert { ); assertEquals( (parsedxml2 \ "author").length, 0 ); - assertSameElementsXML( - parsedxml2 \ "book", - + assertSameElementsXML( + parsedxml2 \ "book", + List( Elem(null,"book",e,sc, - Elem(null,"author", e, sc, Text("Peter Buneman")), - Elem(null,"author", e, sc, Text("Dan Suciu")), + Elem(null,"author", e, sc, Text("Peter Buneman")), + Elem(null,"author", e, sc, Text("Dan Suciu")), Elem(null,"title" , e, sc, Text("Data on ze web"))), Elem(null,"book",e,sc, Elem(null,"author", e, sc, Text("John Mitchell")), @@ -89,49 +89,49 @@ object Test extends App with Assert { ) ); - assertSameElementsXML( + assertSameElementsXML( parsedxml2 \ "_" \ "_", List( - Elem(null,"author", e, sc, Text("Peter Buneman")), - Elem(null,"author", e, sc, Text("Dan Suciu")), + Elem(null,"author", e, sc, Text("Peter Buneman")), + Elem(null,"author", e, sc, Text("Dan Suciu")), Elem(null,"title" , e, sc, Text("Data on ze web")), Elem(null,"author", e, sc, Text("John Mitchell")), Elem(null,"title" , e, sc, Text("Foundations of Programming Languages")) ) ); - assertSameElementsXML( + assertSameElementsXML( parsedxml2 \ "_" \ "author", List( - Elem(null,"author", e, sc, Text("Peter Buneman")), - Elem(null,"author", e, sc, Text("Dan Suciu")), + Elem(null,"author", e, sc, Text("Peter Buneman")), + Elem(null,"author", e, sc, Text("Dan Suciu")), Elem(null,"author", e, sc, Text("John Mitchell")) ) - + ); assertSameElementsXML( (parsedxml2 \ "_" \ "_" \ "author"), List() ); Console.println("xpath \\\\ DESCENDANTS"); - assertSameElementsXML( + assertSameElementsXML( parsedxml2 \\ "author", List( - Elem(null,"author", e, sc, Text("Peter Buneman")), - Elem(null,"author", e, sc, Text("Dan Suciu")), + Elem(null,"author", e, sc, Text("Peter Buneman")), + Elem(null,"author", e, sc, Text("Dan Suciu")), Elem(null,"author", e, sc, Text("John Mitchell")) ) ); - assertSameElementsXML( + assertSameElementsXML( parsedxml2 \\ "title", @@ -145,22 +145,22 @@ object Test extends App with Assert { (parsedxml2 \\ "book" ){ n:Node => (n \ "title") xml_== "Data on ze web" } ); - assertEqualsXML( + assertEqualsXML( (new NodeSeq { val theSeq = List( parsedxml2 ) }) \\ "_", List( Elem(null,"bib",e,sc, Elem(null,"book",e,sc, - Elem(null, "author", e, sc, Text("Peter Buneman")), - Elem(null, "author", e, sc, Text("Dan Suciu")), + Elem(null, "author", e, sc, Text("Peter Buneman")), + Elem(null, "author", e, sc, Text("Dan Suciu")), Elem(null, "title" , e, sc, Text("Data on ze web"))), Elem(null,"book",e,sc, Elem(null,"author",e,sc,Text("John Mitchell")), Elem(null,"title",e,sc,Text("Foundations of Programming Languages")))), Elem(null,"book",e,sc, - Elem(null,"author",e,sc,Text("Peter Buneman")), - Elem(null,"author",e,sc,Text("Dan Suciu")), + Elem(null,"author",e,sc,Text("Peter Buneman")), + Elem(null,"author",e,sc,Text("Dan Suciu")), Elem(null,"title",e,sc,Text("Data on ze web"))), Elem(null,"author",e,sc,Text("Peter Buneman")), //Text("Peter Buneman"), @@ -196,7 +196,7 @@ object Test extends App with Assert { // val uup = <xml:unparsed>&<<>""^%@$!#</xml:unparsed> // assertTrue(uup == "&<<>\"\"^%@$!#") - // test unicode escapes backslash u + // test unicode escapes backslash u println("attribute value normalization") val xmlAttrValueNorm = "<personne id='p0003' nom='Şahingöz' />"; diff --git a/test/files/jvm/xml02.scala b/test/files/jvm/xml02.scala index 11f77cc90f..02aabf3678 100644 --- a/test/files/jvm/xml02.scala +++ b/test/files/jvm/xml02.scala @@ -31,26 +31,26 @@ object Test extends TestConsoleMain { val z = ax \ "@{the namespace from outer space}foo" assertTrue("@six", (ax \ "@{the namespace from outer space}foo") xml_== "baz") assertTrue("@eight", (cx \ "@{the namespace from outer space}foo") xml_== "baz") - + try { ax \ "@" assertTrue("wrong1", false) } catch { - case _: IllegalArgumentException => + case _: IllegalArgumentException => } try { ax \ "@{" assertTrue("wrong2", false) } catch { - case _: IllegalArgumentException => + case _: IllegalArgumentException => } try { ax \ "@{}" assertTrue("wrong3", false) } catch { - case _: IllegalArgumentException => + case _: IllegalArgumentException => } - + } } diff --git a/test/files/jvm/xmlattr.scala b/test/files/jvm/xmlattr.scala index a947adf231..4dda84373a 100644 --- a/test/files/jvm/xmlattr.scala +++ b/test/files/jvm/xmlattr.scala @@ -3,7 +3,7 @@ import xml.{NodeSeq, Null, Text, UnprefixedAttribute} object Test extends TestConsoleMain { def suite = new TestSuite(UnprefixedAttributeTest, AttributeWithOptionTest) - + object UnprefixedAttributeTest extends TestCase("UnprefixedAttribute") with Assert { override def runTest { var x = new UnprefixedAttribute("foo","bar", Null) @@ -13,13 +13,13 @@ object Test extends TestConsoleMain { assertEquals(Text("bar"), x("foo")) assertEquals(None, x.get("no_foo")) assertEquals(null, x("no_foo")) - + val y = x.remove("foo") assertEquals(Null, y) val z = new UnprefixedAttribute("foo", null:NodeSeq, x) assertEquals(None, z.get("foo")) - + var appended = x append x append x append x var len = 0; while (appended ne Null) { appended = appended.next diff --git a/test/files/jvm/xmlmore.scala b/test/files/jvm/xmlmore.scala index 1381cdf837..04d0a6c759 100644 --- a/test/files/jvm/xmlmore.scala +++ b/test/files/jvm/xmlmore.scala @@ -11,7 +11,7 @@ Ours is the portal of hope, come as you are." Mevlana Celaleddin Rumi]]> val nazim = <foo>{myBreak}</foo> // shows use of unparsed - + Console println com Console println pi Console println crz // this guy will escaped, and rightly so diff --git a/test/files/jvm/xmlpull.scala b/test/files/jvm/xmlpull.scala index d2bb72a071..9ba7d4cf02 100644 --- a/test/files/jvm/xmlpull.scala +++ b/test/files/jvm/xmlpull.scala @@ -5,7 +5,7 @@ import scala.io.Source object Test { val src = Source.fromString("<hello><world/>!</hello>") - + def main(args: Array[String]) { var er = new XMLEventReader(src) er.next match { @@ -28,4 +28,4 @@ object Test { //println("6") } } - + diff --git a/test/files/jvm/xmlstuff.scala b/test/files/jvm/xmlstuff.scala index 6e711a0f86..3508070007 100644 --- a/test/files/jvm/xmlstuff.scala +++ b/test/files/jvm/xmlstuff.scala @@ -59,7 +59,7 @@ passed ok <baz bazValue="8"/> <bar value="5" gi='go'/> </foo>; - + val pelems_1 = for( val x <- p \ "bar"; val y <- p \ "baz" ) yield { Text(x.attributes("value").toString + y.attributes("bazValue").toString+ "!") }; @@ -68,14 +68,14 @@ passed ok assertEqualsXML(p \\ "@bazValue", Text("8")) - val books = + val books = <bks> <book><title>Blabla</title></book> <book><title>Blubabla</title></book> <book><title>Baaaaaaalabla</title></book> </bks>; - val reviews = + val reviews = <reviews> <entry><title>Blabla</title> <remarks> @@ -105,32 +105,32 @@ passed ok )); // example - println( + println( for (t @ <book><title>Blabla</title></book> <- new NodeSeq { val theSeq = books.child }.toList) yield t ); -val phoneBook = +val phoneBook = <phonebook> <descr> - This is the <b>phonebook</b> of the + This is the <b>phonebook</b> of the <a href="http://acme.org">ACME</a> corporation. </descr> <entry> - <name>John</name> + <name>John</name> <phone where="work"> +41 21 693 68 67</phone> <phone where="mobile">+41 79 602 23 23</phone> </entry> </phonebook>; -val addrBook = +val addrBook = <addrbook> <descr> - This is the <b>addressbook</b> of the + This is the <b>addressbook</b> of the <a href="http://acme.org">ACME</a> corporation. </descr> <entry> - <name>John</name> + <name>John</name> <street> Elm Street</street> <city>Dolphin City</city> </entry> @@ -146,7 +146,7 @@ val addrBook = </result> )); - + /* namespaces */ // begin tmp println("namespaces") @@ -168,9 +168,9 @@ val addrBook = import scala.xml.dtd.ELEMENTS import scala.xml.dtd.ContentModel._ vtor.setContentModel( - ELEMENTS( + ELEMENTS( Sequ( - Letter(ElemName("bar")), + Letter(ElemName("bar")), Star(Letter(ElemName("baz"))) ))); } @@ -178,11 +178,11 @@ val addrBook = { import scala.xml.dtd.MIXED import scala.xml.dtd.ContentModel._ - + vtor.setContentModel( MIXED( - Alt(Letter(ElemName("bar")), - Letter(ElemName("baz")), + Alt(Letter(ElemName("bar")), + Letter(ElemName("baz")), Letter(ElemName("bal"))))); } @@ -194,20 +194,20 @@ val addrBook = vtor.setContentModel(null) vtor.setMetaData(List()) assertEquals(vtor( <foo bar="hello"/> ), false) - - { - import scala.xml.dtd._ + + { + import scala.xml.dtd._ vtor setMetaData List(AttrDecl("bar", "CDATA", IMPLIED)) } assertEquals(vtor(<foo href="http://foo.com" bar="hello"/>), false) assertEquals(vtor(<foo bar="hello"/>), true) - { + { import scala.xml.dtd._ vtor.setMetaData(List(AttrDecl("bar","CDATA",REQUIRED))) } assertEquals( vtor( <foo href="http://foo.com" /> ), false ) assertEquals( vtor( <foo bar="http://foo.com" /> ), true ) - + } } diff --git a/test/files/neg/abstract-class-2.scala b/test/files/neg/abstract-class-2.scala index 19f74f3da6..be45a09343 100644 --- a/test/files/neg/abstract-class-2.scala +++ b/test/files/neg/abstract-class-2.scala @@ -1,7 +1,7 @@ class P { trait S1 val p = new P - + trait S2 { def f(x: p.S1): Int } @@ -10,5 +10,5 @@ class P { class P2 extends P { object O2 extends S2 { def f(x: S1) = 5 - } + } } diff --git a/test/files/neg/abstract-inaccessible.scala b/test/files/neg/abstract-inaccessible.scala index 3c80f30522..7eaaf2d620 100644 --- a/test/files/neg/abstract-inaccessible.scala +++ b/test/files/neg/abstract-inaccessible.scala @@ -1,6 +1,6 @@ package foo { private[foo] trait Bippy { } - + trait YourTrait { def implementMe(f: Int => (String, Bippy)): Unit def overrideMe[T <: Bippy](x: T): T = x diff --git a/test/files/neg/accesses.scala b/test/files/neg/accesses.scala index b1df6c0e6c..290291586c 100644 --- a/test/files/neg/accesses.scala +++ b/test/files/neg/accesses.scala @@ -6,7 +6,7 @@ abstract class A { private[p1] def f4(): Unit protected[p1] def f5(): Unit } - + abstract class OK1 extends A { private[p1] def f2(): Unit protected[p2] def f3(): Unit diff --git a/test/files/neg/array-not-seq.scala b/test/files/neg/array-not-seq.scala index 07a2898d88..5f367bdd85 100644 --- a/test/files/neg/array-not-seq.scala +++ b/test/files/neg/array-not-seq.scala @@ -9,9 +9,9 @@ object Test { case _: Array[_] => true case _ => false } - + def f4(x: Any) = x.isInstanceOf[Traversable[_]] - + def f5(x1: Any, x2: Any, x3: AnyRef) = (x1, x2, x3) match { case (Some(_: Seq[_]), Nil, _) => 1 case (None, List(_: List[_], _), _) => 2 diff --git a/test/files/neg/bug1011.scala b/test/files/neg/bug1011.scala index 7dc3f49469..57a6ad7b45 100644 --- a/test/files/neg/bug1011.scala +++ b/test/files/neg/bug1011.scala @@ -3,7 +3,7 @@ import scala.xml._; abstract class Test { //val entity : String; - def primitiveHeader : NodeSeq = + def primitiveHeader : NodeSeq = Group({ <dl><code>{Text(entity)}</code> <code>{Text(entity)}</code> diff --git a/test/files/neg/bug1112.scala b/test/files/neg/bug1112.scala index 1a88629faf..b2a374c785 100644 --- a/test/files/neg/bug1112.scala +++ b/test/files/neg/bug1112.scala @@ -1,13 +1,13 @@ // checks that error doesn't crash the compiler -// (due to isFunctionType normalizing Type1 to a function type, +// (due to isFunctionType normalizing Type1 to a function type, // but then the code that used that test not using the normalized type for further operations) class Test { type Type1 = () => Unit - + def call(p: Int)(f: => Type1) = { f() } - + def run = { call(0,() => System.out.println("here we are")) } diff --git a/test/files/neg/bug112706A.check b/test/files/neg/bug112706A.check index 7bba40eb6a..8fb5bfc390 100644 --- a/test/files/neg/bug112706A.check +++ b/test/files/neg/bug112706A.check @@ -1,6 +1,6 @@ bug112706A.scala:5: error: constructor cannot be instantiated to expected type; found : (T1, T2) required: java.lang.String - case Tuple2(node,_) => + case Tuple2(node,_) => ^ one error found diff --git a/test/files/neg/bug112706A.scala b/test/files/neg/bug112706A.scala index 11304720bc..b7799af96d 100644 --- a/test/files/neg/bug112706A.scala +++ b/test/files/neg/bug112706A.scala @@ -2,7 +2,7 @@ package test; trait Test { def foo(p : List[Tuple2[String,String]]) = { for (t <- p) t._1 match { - case Tuple2(node,_) => + case Tuple2(node,_) => } } } diff --git a/test/files/neg/bug1183.scala b/test/files/neg/bug1183.scala index a845126488..ee9385fc1a 100644 --- a/test/files/neg/bug1183.scala +++ b/test/files/neg/bug1183.scala @@ -13,7 +13,7 @@ object Test extends TestConsoleMain { case class Bar(i:Int) } - + class Test717 extends TestCase("#717 test path of case classes") { val foo1 = new Foo(1) @@ -31,7 +31,7 @@ object Test extends TestConsoleMain { class Baz object Bam object Bar - + def unapply(s : String) : Option[Bar] = Some(new Bar(s)) } diff --git a/test/files/neg/bug1523.scala b/test/files/neg/bug1523.scala index 219fb0c060..b8754f4e15 100644 --- a/test/files/neg/bug1523.scala +++ b/test/files/neg/bug1523.scala @@ -1,5 +1,5 @@ -object test { +object test { def bug(x: Any) = x - + def go() = bug("a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a") } diff --git a/test/files/neg/bug1623.scala b/test/files/neg/bug1623.scala index f5189aa4ca..d02fc2ed9e 100644 --- a/test/files/neg/bug1623.scala +++ b/test/files/neg/bug1623.scala @@ -1,7 +1,7 @@ package test -trait A -trait B +trait A +trait B class BImpl extends B { this: A => diff --git a/test/files/neg/bug1878.scala b/test/files/neg/bug1878.scala index 683dcb6b41..5278fbb7bd 100644 --- a/test/files/neg/bug1878.scala +++ b/test/files/neg/bug1878.scala @@ -1,13 +1,13 @@ object Test extends App { - // illegal + // illegal val err1 = "" match { case Seq(f @ _*, ',') => f } - + // no error val List(List(arg1, _*), _) = List(List(1,2,3), List(4,5,6)) - + // illegal val List(List(_*, arg2), _) = List(List(1,2,3), List(4,5,6)) - + // illegal - bug #1764 null match { case <p> { _* } </p> => diff --git a/test/files/neg/bug2148.scala b/test/files/neg/bug2148.scala index 25788be84a..c0521d9864 100644 --- a/test/files/neg/bug2148.scala +++ b/test/files/neg/bug2148.scala @@ -1,6 +1,6 @@ -class A { +class A { var i = 0 - trait A1 extends A { + trait A1 extends A { i += 1 } } diff --git a/test/files/neg/bug2441.scala b/test/files/neg/bug2441.scala index 6784ebb333..a8c9e728a2 100644 --- a/test/files/neg/bug2441.scala +++ b/test/files/neg/bug2441.scala @@ -1,5 +1,5 @@ trait X -trait A { +trait A { def f: Option[X] def g: Option[X] } @@ -8,7 +8,7 @@ object B { } class B extends A { private class Bippy - + override def f = Some(new B.Y) override def g: Option[X] = Some(new B.Y) } diff --git a/test/files/neg/bug3683b.scala b/test/files/neg/bug3683b.scala index 646e418121..fbf75b6856 100644 --- a/test/files/neg/bug3683b.scala +++ b/test/files/neg/bug3683b.scala @@ -8,7 +8,7 @@ case class Z[T >: Bar <: Foo]( z1: W[T] ) extends W[T] -object Main { +object Main { // should fail for including X() def f1(w: W[Bar]): Int = { w match { diff --git a/test/files/neg/bug3714-neg.scala b/test/files/neg/bug3714-neg.scala index 19bdebbfa9..77394b5d76 100644 --- a/test/files/neg/bug3714-neg.scala +++ b/test/files/neg/bug3714-neg.scala @@ -29,7 +29,7 @@ object Test { case BreakImpl(x) => x case _ => -1 } - + def main(args: Array[String]) { val break = BreakImpl(22) assert(f1(break) == 22) diff --git a/test/files/neg/bug3736.scala b/test/files/neg/bug3736.scala index cf0920912a..1efa397928 100644 --- a/test/files/neg/bug3736.scala +++ b/test/files/neg/bug3736.scala @@ -7,14 +7,14 @@ object Test { def f5 = super.!=(new AnyRef) def f6 = super.## } - + // Ill-advised overloads to be sure... class B { def ##(x: String) = true def ==(x1: String, xs: List[_]) = true def !=(x1: String, xs: List[_]) = true } - + class C extends B { override def ##(x: String) = super.##(x) override def ==(x1: String, xs: List[_]) = super.==(x1, xs) diff --git a/test/files/neg/bug4174.scala b/test/files/neg/bug4174.scala index b4a5ab29da..f5242950c2 100644 --- a/test/files/neg/bug4174.scala +++ b/test/files/neg/bug4174.scala @@ -2,7 +2,7 @@ class C object Test { def foo(c: C) = 0 - + def main(args: Array[String]): Unit = { foo(new C { override def bar = 1 }) } diff --git a/test/files/neg/bug4196.scala b/test/files/neg/bug4196.scala index 06e1f28d54..ac00b19bee 100644 --- a/test/files/neg/bug4196.scala +++ b/test/files/neg/bug4196.scala @@ -1,6 +1,6 @@ object Weird { - { (s: String) => + { (s: String) => val foo = Some(s); // to illustrate that vals are printed in the error - foo + foo }.apply("first param") ("spurious param") }
\ No newline at end of file diff --git a/test/files/neg/bug4217.check b/test/files/neg/bug4217.check index 081d5ddf7b..4de9201da8 100644 --- a/test/files/neg/bug4217.check +++ b/test/files/neg/bug4217.check @@ -1,4 +1,4 @@ bug4217.scala:2: error: 'case' expected but '}' found. - 42 match { } + 42 match { } ^ one error found diff --git a/test/files/neg/bug4217.scala b/test/files/neg/bug4217.scala index 0817df2cb7..9343a9be54 100644 --- a/test/files/neg/bug4217.scala +++ b/test/files/neg/bug4217.scala @@ -1,3 +1,3 @@ object A extends App { - 42 match { } + 42 match { } } diff --git a/test/files/neg/bug4221.scala b/test/files/neg/bug4221.scala index 0a8b8add18..c979f7936e 100644 --- a/test/files/neg/bug4221.scala +++ b/test/files/neg/bug4221.scala @@ -1,5 +1,5 @@ class Cl { - class Sub[TheSub <: Sub[TheSub]] + class Sub[TheSub <: Sub[TheSub]] } case class Wrapper[T](v: T) diff --git a/test/files/neg/bug520.scala b/test/files/neg/bug520.scala index 076aca3122..949a509518 100644 --- a/test/files/neg/bug520.scala +++ b/test/files/neg/bug520.scala @@ -4,6 +4,6 @@ object test { assert(keyword != null); } - def verifyKeyword(source : java.io.File, pos : Int) = + def verifyKeyword(source : java.io.File, pos : Int) = verifyKeyword("", source, pos); } diff --git a/test/files/neg/bug558.scala b/test/files/neg/bug558.scala index 58b030347c..4941a06c3b 100644 --- a/test/files/neg/bug558.scala +++ b/test/files/neg/bug558.scala @@ -11,7 +11,7 @@ abstract class NewModel { val parent : SymbolURL; final val top = parent.top; final val source = top.file; - + } abstract class RootURL extends SymbolURL { final val top : RootURL = this; diff --git a/test/files/neg/bug563.scala b/test/files/neg/bug563.scala index 624b83b1fa..3261491dcd 100644 --- a/test/files/neg/bug563.scala +++ b/test/files/neg/bug563.scala @@ -1,6 +1,6 @@ object Test { def map[A,R](a : List[A], f : A => R) : List[R] = a.map(f); - + def split(sn : Iterable[List[Cell[Int]]]) : Unit = for (n <- sn) map(n,ptr => new Cell(ptr.elem)); diff --git a/test/files/neg/bug576.scala b/test/files/neg/bug576.scala index fd83217a45..fa7ee6019f 100644 --- a/test/files/neg/bug576.scala +++ b/test/files/neg/bug576.scala @@ -4,16 +4,16 @@ abstract class BaseListXXX { type Node <: BaseNode; abstract class BaseNode { } -} +} trait PriorityTreeXXX extends BaseListXXX { type Node <: BasicTreeNode; - + trait BasicTreeNode extends BaseNode { - def sibling: Node; + def sibling: Node; def insert(dir : Int, node : Node) = { if (true) sibling.insert(node); //else insert(node); - + } def insert(node : Node) : Unit = {} } diff --git a/test/files/neg/bug588.scala b/test/files/neg/bug588.scala index f30937377e..1bc6d2680f 100644 --- a/test/files/neg/bug588.scala +++ b/test/files/neg/bug588.scala @@ -1,15 +1,15 @@ abstract class Test0 { - def visit(f: Int => Unit): Boolean + def visit(f: Int => Unit): Boolean def visit(f: Int => String): Boolean } trait Test { type TypeA <: TraitA; type TypeB <: TypeA with TraitB; - + def f(node : TypeA) : Unit; def f(brac : TypeB) : Unit; - + trait TraitA; trait TraitB; - + } diff --git a/test/files/neg/bug591.scala b/test/files/neg/bug591.scala index 0f0b02395c..5f2397e6a9 100644 --- a/test/files/neg/bug591.scala +++ b/test/files/neg/bug591.scala @@ -1,17 +1,17 @@ abstract class BaseList { type Node <: BaseNode; - - + + abstract class BaseNode { protected def self : Node; private[BaseList] def self00 = self; def dirty : Unit = {} def replaceWith(node : Node) = {} } - + implicit def baseNode2Node(bnode : BaseNode): Node = bnode.self00; - + } @@ -20,22 +20,22 @@ trait BaseFlow extends BaseList { type Flow <: FlowBase; type Output <: OutputBase; type Input <: InputBase; - + abstract class FlowBase { - + } trait OutputBase extends FlowBase { - + } trait InputBase extends FlowBase { - + } - + trait BFNode extends BaseNode { private var input : Input = _; private var output : Output = _; - + def input_=(in : Input) = {} - + } } diff --git a/test/files/neg/bug608.scala b/test/files/neg/bug608.scala index 34dc4c0352..1f12764dd1 100644 --- a/test/files/neg/bug608.scala +++ b/test/files/neg/bug608.scala @@ -2,7 +2,7 @@ trait CrashDueToTypeError { def id[a](x :a) :a = x trait Bifunctor { - type a; // content + type a; // content type s <: Bifunctor // uncomment this-vvvvvvvvvvvvvvvvvvvvvvvvvvvv, and it compiles diff --git a/test/files/neg/bug692.check b/test/files/neg/bug692.check index b727b53183..9e96027899 100644 --- a/test/files/neg/bug692.check +++ b/test/files/neg/bug692.check @@ -11,7 +11,7 @@ bug692.scala:13: error: class Foo takes type parameters case class BarType[T3 <: Foo](tpeT : RefType[T3]) extends ClassType[Bar[T3],Foo](FooType); ^ bug692.scala:14: error: class Foo takes type parameters - implicit def typeOfBar[T4 <: Foo](implicit elem : RefType[T4]) : RefType[Bar[T4]] = + implicit def typeOfBar[T4 <: Foo](implicit elem : RefType[T4]) : RefType[Bar[T4]] = ^ bug692.scala:15: error: type mismatch; found : test3.this.BarType[T4] diff --git a/test/files/neg/bug692.scala b/test/files/neg/bug692.scala index 24e1d2fea3..f230a6bacf 100644 --- a/test/files/neg/bug692.scala +++ b/test/files/neg/bug692.scala @@ -5,15 +5,15 @@ abstract class test3 { abstract class RefType[C <: AnyRef] extends Type[C]; case class ObjectType() extends RefType[AnyRef]; abstract class ClassType[C <: Z, Z <: AnyRef](zuper : RefType[Z]) extends RefType[C]; - + case class FooType() extends ClassType[Foo,AnyRef](ObjectType()); implicit def typeOfFoo = FooType(); case class BarType[T3 <: Foo](tpeT : RefType[T3]) extends ClassType[Bar[T3],Foo](FooType); - implicit def typeOfBar[T4 <: Foo](implicit elem : RefType[T4]) : RefType[Bar[T4]] = + implicit def typeOfBar[T4 <: Foo](implicit elem : RefType[T4]) : RefType[Bar[T4]] = BarType(elem); - + class Foo[A <: AnyRef]; class Bar[A <: Foo](implicit tpeA : Type[A]) extends Foo; diff --git a/test/files/neg/bug693.check b/test/files/neg/bug693.check index 537bae8b59..d341d025e2 100644 --- a/test/files/neg/bug693.check +++ b/test/files/neg/bug693.check @@ -1,4 +1,4 @@ bug693.scala:4: error: x is already defined as value x - val x : Int = 10; + val x : Int = 10; ^ one error found diff --git a/test/files/neg/bug693.scala b/test/files/neg/bug693.scala index 3a9e6247a8..d2074bee38 100644 --- a/test/files/neg/bug693.scala +++ b/test/files/neg/bug693.scala @@ -1,5 +1,5 @@ abstract class test4 { trait Type; val x : Type = null; - val x : Int = 10; + val x : Int = 10; } diff --git a/test/files/neg/bug715.scala b/test/files/neg/bug715.scala index 87b2525a63..a5ccd567f9 100644 --- a/test/files/neg/bug715.scala +++ b/test/files/neg/bug715.scala @@ -1,4 +1,4 @@ -package test; +package test; trait B { type Node <: NodeImpl; trait NodeImpl { diff --git a/test/files/neg/bug783.scala b/test/files/neg/bug783.scala index 59f7c7f97d..5d20bc6d24 100644 --- a/test/files/neg/bug783.scala +++ b/test/files/neg/bug783.scala @@ -18,7 +18,7 @@ object Main extends App { def globalInit : Global; final def globalInit0 = globalInit.asInstanceOf[global.type]; } - + object global0 extends Global { object analyzer extends Analyzer { type Global = global0.type; diff --git a/test/files/neg/bug798.scala b/test/files/neg/bug798.scala index a2bf66d19b..b4a1939444 100644 --- a/test/files/neg/bug798.scala +++ b/test/files/neg/bug798.scala @@ -4,5 +4,5 @@ trait Test[Bracks <: Bracks] { class C[T] val bracks : Bracks; val singletons = f(bracks); - + } diff --git a/test/files/neg/bug836.scala b/test/files/neg/bug836.scala index 3633b816c6..de23cf5387 100644 --- a/test/files/neg/bug836.scala +++ b/test/files/neg/bug836.scala @@ -10,7 +10,7 @@ abstract class A { } class B extends A { - type MyObj = ObjImpl + type MyObj = ObjImpl val myString: S = "hello" val realString: String = myString // error: type missmatch } diff --git a/test/files/neg/bug856.scala b/test/files/neg/bug856.scala index fea216bfad..e50084b6bd 100644 --- a/test/files/neg/bug856.scala +++ b/test/files/neg/bug856.scala @@ -1,4 +1,4 @@ -trait Complex extends Product2[Double,Double] +trait Complex extends Product2[Double,Double] class ComplexRect(val _1:Double, _2:Double) extends Complex { override def toString = "ComplexRect("+_1+","+_2+")" diff --git a/test/files/neg/bug876.scala b/test/files/neg/bug876.scala index 1f6a90dff3..fb1461a7d3 100644 --- a/test/files/neg/bug876.scala +++ b/test/files/neg/bug876.scala @@ -11,11 +11,11 @@ object AssertionError extends AnyRef with App class Manager { final class B {} - + val map = new HashMap[A, B] } - - + + def test[T](f: => T) { f } test { diff --git a/test/files/neg/bug877.scala b/test/files/neg/bug877.scala index 5e132a1dd4..8cb98279db 100644 --- a/test/files/neg/bug877.scala +++ b/test/files/neg/bug877.scala @@ -1,3 +1,3 @@ -class A +class A trait Foo extends A(22A, Bug!) {} diff --git a/test/files/neg/bug944.scala b/test/files/neg/bug944.scala index dc80e5f49f..352269a80b 100644 --- a/test/files/neg/bug944.scala +++ b/test/files/neg/bug944.scala @@ -1,6 +1,6 @@ object TooManyArgsFunction { - val f = (a1:Int, a2:Int, a3:Int, a4:Int, a5:Int, a6:Int, a7:Int, a8:Int, - a9:Int, a10:Int, a11:Int, a12:Int, a13:Int, a14:Int, a15:Int, - a16:Int, a17:Int, a18:Int, a19:Int, a20:Int, a21:Int, a22:Int, + val f = (a1:Int, a2:Int, a3:Int, a4:Int, a5:Int, a6:Int, a7:Int, a8:Int, + a9:Int, a10:Int, a11:Int, a12:Int, a13:Int, a14:Int, a15:Int, + a16:Int, a17:Int, a18:Int, a19:Int, a20:Int, a21:Int, a22:Int, a23:Int) => 1 } diff --git a/test/files/neg/check-dead.scala b/test/files/neg/check-dead.scala index 2d5bccb21d..aadd788814 100644 --- a/test/files/neg/check-dead.scala +++ b/test/files/neg/check-dead.scala @@ -5,11 +5,11 @@ object Other { class NoDeads { def y1(arg: Any) = println("foo") def z1 = y1(throw new Exception) // should warn - + def y2[T](arg: T) = println("foo") def z2 = y2(throw new Exception) // should warn - - def y3[T](arg: => T) = println("foo") + + def y3[T](arg: => T) = println("foo") def z3 = y3(throw new Exception) // should not warn: by name arg def nowarn1 = synchronized { throw new Exception } // should not warn: synchronized should be by name @@ -22,9 +22,9 @@ class NoDeads { val i = 10 + 2 i } - + def nowarn4: String = Other.oops("don't warn about me") // should not warn - + def yeswarn1 = synchronized { throw new Exception // should warn 5 * 5 @@ -32,6 +32,6 @@ class NoDeads { def yeswarn2: Int = synchronized { throw new Exception // should warn return 5 - } + } } diff --git a/test/files/neg/checksensible.scala b/test/files/neg/checksensible.scala index 4872df4dfb..491cd22dca 100644 --- a/test/files/neg/checksensible.scala +++ b/test/files/neg/checksensible.scala @@ -9,7 +9,7 @@ final class Zing { // 7 warnings class RefEqTest { object Shmoopie - + (new AnyRef) eq (new AnyRef) (new AnyRef) ne (new AnyRef) Shmoopie eq (new AnyRef) @@ -22,31 +22,31 @@ class RefEqTest { // 11 warnings class EqEqValTest { var c = 0 - + (c = 1) == 0 0 == (c = 1) - + 1 == "abc" 1 == ("abc": Any) // doesn't warn because an Any may be a boxed Int 1 == (1: Any) // as above "abc" == 1 // doesn't generally warn since String defines an equals method, but can chatty warn - + new AnyRef == 1 1 == new AnyRef // doesn't warn because it could be... 1 == (new java.lang.Integer(1)) // ...something like this 1 == (new java.lang.Boolean(true)) - + 1 != true () == true () == () () == println - + (1 != println) (1 != 'sym) } // 12 warnings -class EqEqRefTest { +class EqEqRefTest { val ref = new Bop ((x: Int) => x + 1) == null Bep == ((_: Int) + 1) @@ -60,9 +60,9 @@ class EqEqRefTest { // final classes with default equals val x1 = new Bip - val x2 = new Bop + val x2 = new Bop (x1 == x2) - + class C1 { } class C2 extends C1 { } final class Z1 extends C2 { } @@ -77,14 +77,14 @@ class EqEqRefTest { c3 != "abc" // this should warn when feeling chatty c3 != z1 - + // non-warners (null: AnyRef) == (null: AnyRef) (x1 <= x2) - + def main(args: Array[String]) = { val in = new java.io.FileInputStream(args(0)) - var c = 0 + var c = 0 while ((c = in.read) != -1) print(c.toChar) diff --git a/test/files/neg/choices.scala b/test/files/neg/choices.scala index 8827494874..fe9236f10f 100644 --- a/test/files/neg/choices.scala +++ b/test/files/neg/choices.scala @@ -1,5 +1,5 @@ object Test { def main(args: Array[String]): Unit = { - + } } diff --git a/test/files/neg/exhausting.scala b/test/files/neg/exhausting.scala index 0741d7467b..14b05695aa 100644 --- a/test/files/neg/exhausting.scala +++ b/test/files/neg/exhausting.scala @@ -3,7 +3,7 @@ object Test { case object Bar1 extends Foo[Int] case object Bar2 extends Foo[String] case object Bar3 extends Foo[Any] - + def ex1[T](xs: List[T]) = xs match { case ys: List[_] => "ok" } @@ -16,7 +16,7 @@ object Test { def ex3[T](xx: (Foo[T], Foo[T])) = xx match { case (_: Foo[_], _: Foo[_]) => () } - + def fail1[T](xs: List[T]) = xs match { case Nil => "ok" case x :: y :: Nil => "ok" @@ -38,8 +38,8 @@ object Test { case (Bar2, Bar3) => () case (Bar3, _) => () } - + def main(args: Array[String]): Unit = { - + } } diff --git a/test/files/neg/forward.scala b/test/files/neg/forward.scala index d5c0851f09..3774fa838f 100644 --- a/test/files/neg/forward.scala +++ b/test/files/neg/forward.scala @@ -5,20 +5,20 @@ object Test { { def f: Int = x; val x: Int = f; - } + } { def f: Int = g; val x: Int = f; def g: Int = x; - } + } { def f: Int = g; var x: Int = f; def g: Int = x; - } + } { def f: Int = g; Console.println("foo"); def g: Int = f; - } + } } diff --git a/test/files/neg/found-req-variance.scala b/test/files/neg/found-req-variance.scala index 024b24c367..fd3b11160e 100644 --- a/test/files/neg/found-req-variance.scala +++ b/test/files/neg/found-req-variance.scala @@ -27,7 +27,7 @@ object Test { def f7 = Set[Inv[C]]() + new Inv[A] def f8 = Set[Inv[C]]() + new Inv[B] def f9 = Set[Inv[C]]() + new Inv[C] - + def g1 = Set[Multi[A, B, C]]() + new MultiCov[A] def g2 = Set[Multi[A, B, C]]() + new MultiCov[B] def g3 = Set[Multi[A, B, C]]() + new MultiCov[C] @@ -43,12 +43,12 @@ object Functions { object Set1 { def f[T, R](x: FF1[T, R]) = () def h[T, R] : FF1[T, R] = sys.error("") - + def ff1 = f[B, B](h[A, A]) // fail def ff2 = f[B, B](h[B, A]) // fail def ff3 = f[B, B](h[C, A]) // fail def ff4 = f[B, B](h[A, B]) // suggest - def ff5 = f[B, B](h[B, B]) // ok + def ff5 = f[B, B](h[B, B]) // ok def ff6 = f[B, B](h[C, B]) // suggest def ff7 = f[B, B](h[A, C]) // suggest def ff8 = f[B, B](h[B, C]) // ok @@ -57,7 +57,7 @@ object Functions { object Set2 { def f[T, R](x: FF2[T, R]) = () def h[T, R] : FF2[T, R] = sys.error("") - + def ff1 = f[B, B](h[A, A]) // suggest def ff2 = f[B, B](h[B, A]) // suggest def ff3 = f[B, B](h[C, A]) // fail @@ -74,7 +74,7 @@ object Functions { // object TypeAlias { // type LL[T] = List[T] // val LL = List -// +// // def f1 = Set[LL[B]]() + LL[A](new A) // def f2 = Set[LL[B]]() + LL[C](new C) // } @@ -82,12 +82,12 @@ object Functions { object Javas { def f[T](x: java.util.List[T]) = () def g[T](x: java.util.Comparator[T]) = () - + def g1 = f[AnyRef](new java.util.ArrayList[String] { }) def g2 = g[String](Ordering.fromLessThan[AnyRef](_.toString < _.toString)) } -object Misc { +object Misc { // original motivation class Data[A <: AnyVal] class MyData extends Data[Int] { } diff --git a/test/files/neg/gadts1.check b/test/files/neg/gadts1.check index f19b58c5db..44d2b114d6 100644 --- a/test/files/neg/gadts1.check +++ b/test/files/neg/gadts1.check @@ -1,7 +1,7 @@ gadts1.scala:15: error: type mismatch; found : Test.Double required: a - case NumTerm(n) => c.x = Double(1.0) + case NumTerm(n) => c.x = Double(1.0) ^ gadts1.scala:20: error: class Cell of type Test.Cell does not take type parameters. case Cell[a](x: Int) => c.x = 5 diff --git a/test/files/neg/gadts1.scala b/test/files/neg/gadts1.scala index 08403e6eec..1fb6e57e2d 100644 --- a/test/files/neg/gadts1.scala +++ b/test/files/neg/gadts1.scala @@ -11,8 +11,8 @@ class IntTerm(n: Int) extends NumTerm(n) with Term[Int] def f[a](t:Term[a], c:Cell[a]): Unit = { - t match { - case NumTerm(n) => c.x = Double(1.0) + t match { + case NumTerm(n) => c.x = Double(1.0) } t match { // presently testing that this gets past the parser: eventually diff --git a/test/files/neg/implicits.scala b/test/files/neg/implicits.scala index 846591e22d..e908fb03e8 100644 --- a/test/files/neg/implicits.scala +++ b/test/files/neg/implicits.scala @@ -4,14 +4,14 @@ class Super object Super { implicit def pos2int(p: Pos): Int = 0 -} +} object Sub extends Super { class Plus(x: Any) { def +(y: String): String = x.toString + y } implicit def any2plus(x: Any): Plus = new Plus(x) -} +} object Test { import Super._ @@ -33,7 +33,7 @@ object test2 { val set = HEmpty + 3 + "3" implicit def select[T](t: HSome[T,_]) = t.head implicit def selectTail[L](t: HSome[_,L]) = t.tail - + def foo(x: Int) = 3 foo(set) } @@ -55,4 +55,4 @@ class Mxml { } -} +} diff --git a/test/files/neg/java-access-neg/J.java b/test/files/neg/java-access-neg/J.java index b6bc3363a1..4f2024673c 100644 --- a/test/files/neg/java-access-neg/J.java +++ b/test/files/neg/java-access-neg/J.java @@ -4,11 +4,11 @@ public abstract class J { public J() { } J(int x1) { } protected J(int x1, int x2) { } - + abstract void packageAbstract(); protected abstract void protectedAbstract(); public abstract void publicAbstract(); - + void packageConcrete() { return; } protected void protectedConcrete() { return; } public void publicConcrete() { return; } diff --git a/test/files/neg/java-access-neg/S2.scala b/test/files/neg/java-access-neg/S2.scala index b082bb7174..dd0af8d39d 100644 --- a/test/files/neg/java-access-neg/S2.scala +++ b/test/files/neg/java-access-neg/S2.scala @@ -12,7 +12,7 @@ class S1 extends J { override private[b] def packageAbstract() = () // fail override protected[b] def protectedAbstract() = () override def publicAbstract() = () - + override private[b] def packageConcrete() = () // fail override protected[b] def protectedConcrete() = () override def publicConcrete() = () @@ -32,7 +32,7 @@ class S3 extends J { protected[b] def packageAbstract() = () // fail protected[b] def protectedAbstract() = () def publicAbstract() = () - + override protected[b] def packageConcrete() = () // fail override protected[b] def protectedConcrete() = () override def publicConcrete() = () @@ -43,7 +43,7 @@ class S4 extends J { private[a] def packageAbstract() = () // fail protected[a] def protectedAbstract() = () def publicAbstract() = () - + override private[a] def packageConcrete() = () // fail override protected[a] def protectedConcrete() = () override def publicConcrete() = () @@ -54,7 +54,7 @@ class S5 extends J { def packageAbstract() = () // fail def protectedAbstract() = () def publicAbstract() = () - + override def packageConcrete() = () // fail override def protectedConcrete() = () override def publicConcrete() = () diff --git a/test/files/neg/lazy-override.scala b/test/files/neg/lazy-override.scala index f41d7f038b..a0f6e3bd73 100644 --- a/test/files/neg/lazy-override.scala +++ b/test/files/neg/lazy-override.scala @@ -5,7 +5,7 @@ lazy val y: Int = { print("/*A.y*/"); 2 } } - + class B extends A { // lazy overrides strict val override lazy val x: Int = { print("/*B.x*/"); 3 } diff --git a/test/files/neg/lazyvals.scala b/test/files/neg/lazyvals.scala index f92534f506..bbc4fe114a 100644 --- a/test/files/neg/lazyvals.scala +++ b/test/files/neg/lazyvals.scala @@ -1,7 +1,7 @@ /** Test which should fail compilation */ class Lazy { - + // no abstract lazy values lazy val t: Int @@ -31,7 +31,7 @@ object T2 { lazy val y: Int = { print("/*A.y*/"); 2 } } - + class B extends A { // lazy overrides strict val override lazy val x: Int = { print("/*B.x*/"); 3 } diff --git a/test/files/neg/lubs.scala b/test/files/neg/lubs.scala index 3524fa4d87..639117f7bf 100644 --- a/test/files/neg/lubs.scala +++ b/test/files/neg/lubs.scala @@ -18,7 +18,7 @@ object test2 { class D extends A { type T = D } def f = if (1 == 2) new C else new D - + val x1: A { type T } = f val x2: A { type T >: Null <: A } = f val x3: A { type T >: Null <: A { type T >: Null <: A } } = f diff --git a/test/files/neg/migration28.scala b/test/files/neg/migration28.scala index 090b32d690..346c1a6448 100644 --- a/test/files/neg/migration28.scala +++ b/test/files/neg/migration28.scala @@ -1,12 +1,12 @@ object Test { import scala.collection.mutable._ - + val s = new Stack[Int] s ++= List(1,2,3) s map (_ + 1) s foreach (_ => ()) - + def main(args: Array[String]): Unit = { - + } } diff --git a/test/files/neg/null-unsoundness.scala b/test/files/neg/null-unsoundness.scala index dbb8744597..3f7e42fe17 100644 --- a/test/files/neg/null-unsoundness.scala +++ b/test/files/neg/null-unsoundness.scala @@ -12,4 +12,4 @@ object Test extends A with App { type A = C y = 42 } - + diff --git a/test/files/neg/overload-msg.scala b/test/files/neg/overload-msg.scala index 8715c156a2..896722262d 100644 --- a/test/files/neg/overload-msg.scala +++ b/test/files/neg/overload-msg.scala @@ -1,4 +1,4 @@ // type parameter shadows actual type, massive overload error confuses. -class A(x: Int) { +class A(x: Int) { def f[Int](y: Int) = x + y } diff --git a/test/files/neg/overloaded-implicit.scala b/test/files/neg/overloaded-implicit.scala index 68b1ceaa30..9ab66cf560 100644 --- a/test/files/neg/overloaded-implicit.scala +++ b/test/files/neg/overloaded-implicit.scala @@ -1,15 +1,15 @@ object Test { implicit def imp1[T](x: List[T]): Map[T, T] = Map() implicit def imp1[T](x: Set[T]): Map[T, T] = Map() - + def f[T <% Map[Int, Int]](x: T): Double = 1.0d // not parameterized, no warning - implicit def imp2(x: List[Int]): String = "a" + implicit def imp2(x: List[Int]): String = "a" implicit def imp2(x: Set[Int]): String = "b" - + def g[T <% String](x: T): Double = 2.0d - + def main(args: Array[String]): Unit = { // println(f(List(1))) println(g(List(1))) diff --git a/test/files/neg/pat_unreachable.scala b/test/files/neg/pat_unreachable.scala index c5f71790a8..fc0fd41920 100644 --- a/test/files/neg/pat_unreachable.scala +++ b/test/files/neg/pat_unreachable.scala @@ -8,7 +8,7 @@ object Test extends App { case Seq(x, y, _*) => x::y::Nil case Seq(x, y) => List(x, y) } - + def not_unreachable(xs:Seq[Char]) = xs match { case Seq(x, y, _*) => x::y::Nil case Seq(x) => List(x) diff --git a/test/files/neg/patmat-type-check.scala b/test/files/neg/patmat-type-check.scala index 26d0409fa0..cc35089430 100644 --- a/test/files/neg/patmat-type-check.scala +++ b/test/files/neg/patmat-type-check.scala @@ -1,15 +1,15 @@ object Test { def s1 = "bob".toList match { case Seq('b', 'o', 'b') => true } // list ok - + // not final, allowed - class Bop + class Bop def s2(x: Bop) = x match { case Seq('b', 'o', 'b') => true } - + // covariance, allowed final class Bop4[+T] def s3[T](x: Bop4[T]) = x match { case Seq('b', 'o', 'b') => true } - + // contravariance, allowed final class Bop5[T, U, -V] def s4[T1, T2](x: Bop5[_, T1, T2]) = x match { case Seq('b', 'o', 'b') => true } @@ -17,7 +17,7 @@ object Test // free type parameter, allowed final class Bop3[T] def f4[T](x: Bop3[T]) = x match { case Seq('b', 'o', 'b') => true } - + // String and Array are final/invariant, disallowed def f1 = "bob".reverse match { case Seq('b', 'o', 'b') => true } // fail def f2 = "bob".toArray match { case Seq('b', 'o', 'b') => true } // fail @@ -25,7 +25,7 @@ object Test // final, no type parameters, should be disallowed final class Bop2 def f3(x: Bop2) = x match { case Seq('b', 'o', 'b') => true } // fail - + // final, invariant type parameter, should be disallowed def f4[T](x: Bop3[Char]) = x match { case Seq('b', 'o', 'b') => true } // fail } diff --git a/test/files/neg/patmatexhaust.scala b/test/files/neg/patmatexhaust.scala index d49c4b207b..b9622b5ca9 100644 --- a/test/files/neg/patmatexhaust.scala +++ b/test/files/neg/patmatexhaust.scala @@ -22,14 +22,14 @@ class TestSealedExhaustive { // compile only def ma3(x:Mult) = (x,x) match { // not exhaustive case (Kult(_), Qult()) => // Kult missing - //case Pair(Kult(_), Kult(_)) => + //case Pair(Kult(_), Kult(_)) => case (Qult(), Kult(_)) => // Qult missing - //case Pair(Qult(), Qult()) => + //case Pair(Qult(), Qult()) => } def ma3u(x:Mult) = ((x,x) : @unchecked) match { // not exhaustive, but not checked! - case (Kult(_), Qult()) => - case (Qult(), Kult(_)) => + case (Kult(_), Qult()) => + case (Qult(), Kult(_)) => } sealed abstract class Deep @@ -37,22 +37,22 @@ class TestSealedExhaustive { // compile only case object Ga extends Deep sealed class Gp extends Deep case object Gu extends Gp - + def zma3(x:Deep) = x match { // exhaustive! case _ => } def zma4(x:Deep) = x match { // exhaustive! - case Ga => + case Ga => case _ => } def ma4(x:Deep) = x match { // missing cases: Gu, Gp - case Ga => + case Ga => } def ma5(x:Deep) = x match { // Gp case Gu => - case _ if 1 == 0 => + case _ if 1 == 0 => case Ga => } @@ -65,7 +65,7 @@ class TestSealedExhaustive { // compile only case 1::2::Nil => case _ => } - + sealed class B case class B1() extends B case object B2 extends B diff --git a/test/files/neg/patternalts.scala b/test/files/neg/patternalts.scala index 539df43201..56b682b0ec 100644 --- a/test/files/neg/patternalts.scala +++ b/test/files/neg/patternalts.scala @@ -1,5 +1,5 @@ object Test { List(1) match { case List(x) | List() => Console.println(x) - } + } } diff --git a/test/files/neg/protected-constructors.scala b/test/files/neg/protected-constructors.scala index 2838caf09c..f2662ee67c 100644 --- a/test/files/neg/protected-constructors.scala +++ b/test/files/neg/protected-constructors.scala @@ -8,7 +8,7 @@ package dingus { package hungus { import dingus._ - + object P { class Bar1 extends Foo1("abc") class Bar2 extends Foo2("abc") diff --git a/test/files/neg/saito.scala b/test/files/neg/saito.scala index b4fcd598e4..bfabb4edf4 100644 --- a/test/files/neg/saito.scala +++ b/test/files/neg/saito.scala @@ -2,13 +2,13 @@ class B {} class A { self: B => def m(): B = { this - } + } } object Exec{ def main(args: Array[String]): Unit = { val a: A = new A; // should not be allowed - val b: B = a.m(); + val b: B = a.m(); } } diff --git a/test/files/neg/sensitive.scala b/test/files/neg/sensitive.scala index f435a385e1..fa1b940844 100644 --- a/test/files/neg/sensitive.scala +++ b/test/files/neg/sensitive.scala @@ -5,8 +5,8 @@ object Admin extends Certificate; class SecurityViolationException extends Exception object Sensitive { - def makeSensitive(credentials: Certificate): Sensitive = - if (credentials == Admin) new Sensitive() + def makeSensitive(credentials: Certificate): Sensitive = + if (credentials == Admin) new Sensitive() else throw new SecurityViolationException } class Sensitive private () { @@ -16,4 +16,4 @@ object Attacker { val x = Sensitive.makeSensitive(null) val y = new Sensitive() } - + diff --git a/test/files/neg/spec-overrides.scala b/test/files/neg/spec-overrides.scala index 713ce27bd3..f77dadea5d 100644 --- a/test/files/neg/spec-overrides.scala +++ b/test/files/neg/spec-overrides.scala @@ -15,7 +15,7 @@ class FX2 extends P { object Test extends App { val fx = new FX val p = new P - + println(fx.a(3)) println((fx: P).a(3)) println((fx: P).a(3.0)) diff --git a/test/files/neg/structural.scala b/test/files/neg/structural.scala index d783399317..bfca37b22a 100644 --- a/test/files/neg/structural.scala +++ b/test/files/neg/structural.scala @@ -1,54 +1,54 @@ object Test extends App { - + def f(x: { type D; def m: D }): Null = null - + class Tata - + abstract class Toto[A <: Object] { type B <: Object - + def f1[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: A): Object; val x: A }) = x.m[Tata](x.x) //fail def f2[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: B): Object; val x: B }) = x.m[Tata](x.x) //fail def f3[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: C): Object; val x: C }) = x.m[Tata](x.x) //fail def f4[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: D): Object; val x: D }) = x.m[Tata](x.x) //fail def f5[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: E): Object; val x: Tata }) = x.m[Tata](x.x) //suceed - + def f6[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: Object): A }) = x.m[Tata](null) //suceed def f7[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: Object): B }) = x.m[Tata](null) //suceed def f8[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: Object): C }) = x.m[Tata](null) //suceed def f9[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: Object): D }) = x.m[Tata](null) //fail def f0[C <: Object](x: Object{ type D <: Object; def m[E >: Null <: Object](x: Object): E }) = x.m[Tata](null) //suceed - + } - + val tata = new Tata val toto = new Toto[Tata] { type B = Tata } - + //toto.f1[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Tata): Object = null; val x = tata }) //toto.f2[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Tata): Object = null; val x = tata }) //toto.f3[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Tata): Object = null; val x = tata }) //toto.f4[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: D): Object = null; val x = tata }) toto.f5[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: E): Object = null; val x: Test.Tata = tata }) - + toto.f6[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Object): Tata = null }) toto.f7[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Object): Tata = null }) toto.f8[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Object): Tata = null }) //toto.f9[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Object): D = null }) toto.f0[Tata](new Object{ type D = Tata; def m[E >: Null <: Object](x: Object): E = null }) - + /* Bug #1246 */ type Summable[T] = { def +(v : T) : T } def sum[T <: Summable[T]](xs : List[T]) = xs.reduceLeft[T](_ + _) - + /* Bug #1004 & #967 */ type S1 = { def f(p: this.type): Unit } val s1 = new { def f(p: this.type): Unit = () } - + type S2 = { type T; def f(p: T): Unit } //val s2: S2 = new { type T = A; def f(p: T): Unit = () } - + def s3[U >: Null <: Object](p: { def f(p: U): Unit; def u: U }) = () - + } diff --git a/test/files/neg/switch.scala b/test/files/neg/switch.scala index da7c867ba0..a3dfd869d6 100644 --- a/test/files/neg/switch.scala +++ b/test/files/neg/switch.scala @@ -16,44 +16,44 @@ object Main { case 'f' | 'g' => true case _ => false } - + def succ2(c: Char) = (c: @switch) match { case 'A' | 'B' | 'C' => true case Other.C2 => true case Other.C4 => true case _ => false } - + // has a guard def fail1(c: Char) = (c: @switch) match { case 'A' | 'B' | 'C' => true case x if x == 'A' => true case _ => false } - + // throwing in @unchecked on the next two to make sure // multiple annotations are processed correctly - + // thinks a val in an object is constant... so naive def fail2(c: Char) = (c: @switch @unchecked) match { case 'A' => true case Other.C1 => true case _ => false } - + // more naivete def fail3(c: Char) = (c: @unchecked @switch) match { case 'A' => true case Other.C3 => true case _ => false } - + // guard case done correctly def succ3(c: Char) = (c: @switch) match { case 'A' | 'B' | 'C' => true case x => x == 'A' } - + // some ints just to mix it up a bit def succ4(x: Int, y: Int) = ((x+y): @switch) match { case 1 => 5 @@ -62,5 +62,5 @@ object Main { case 4 => 50 case 5|6|7|8 => 100 case _ => -1 - } + } } diff --git a/test/files/neg/t0117.scala b/test/files/neg/t0117.scala index ec34ac0e4e..c73227d26d 100644 --- a/test/files/neg/t0117.scala +++ b/test/files/neg/t0117.scala @@ -3,4 +3,4 @@ trait B extends A { println(super[A].a) } object Test extends App { new B {} } - + diff --git a/test/files/neg/t0152.scala b/test/files/neg/t0152.scala index d86d59e974..dc77ac31a3 100644 --- a/test/files/neg/t0152.scala +++ b/test/files/neg/t0152.scala @@ -8,6 +8,6 @@ trait PlusOne extends Value[Int] { object Test extends App { object boom extends Value[java.lang.String]("foo") with PlusOne - + println(boom.value) // class cast exception! } diff --git a/test/files/neg/t0218.check b/test/files/neg/t0218.check index a22583d23b..6bb759156f 100644 --- a/test/files/neg/t0218.check +++ b/test/files/neg/t0218.check @@ -1,4 +1,4 @@ t0218.scala:10: error: class type required but APQ.this.P found - List(new PP) + List(new PP) ^ one error found diff --git a/test/files/neg/t0218.scala b/test/files/neg/t0218.scala index 319be82a7a..3d1f52e39a 100644 --- a/test/files/neg/t0218.scala +++ b/test/files/neg/t0218.scala @@ -1,4 +1,4 @@ -trait APQ { +trait APQ { class Placement { } @@ -7,6 +7,6 @@ trait APQ { type PP = P def pq(numQueens: Int, numRows: Int) : List[Placement] = { - List(new PP) + List(new PP) } } diff --git a/test/files/neg/t0503.scala b/test/files/neg/t0503.scala index 322e1ad132..a9b5dcb1dd 100644 --- a/test/files/neg/t0503.scala +++ b/test/files/neg/t0503.scala @@ -1,3 +1,3 @@ val x = new { } with { } -trait A +trait A val y = new { } with A diff --git a/test/files/neg/t0764.scala b/test/files/neg/t0764.scala index daeeb21d91..9aebe04b79 100644 --- a/test/files/neg/t0764.scala +++ b/test/files/neg/t0764.scala @@ -9,6 +9,6 @@ trait Node extends NotNull { outer => class Main[NextType <: Node](value: Node { type T = NextType }) extends Top[Node { type T = NextType }] { - + new Main[AType]( (value: AType).prepend ) } diff --git a/test/files/neg/t1477.scala b/test/files/neg/t1477.scala index a9a6d678ca..ab13f14b06 100644 --- a/test/files/neg/t1477.scala +++ b/test/files/neg/t1477.scala @@ -8,7 +8,7 @@ object Test extends App { type V <: D val y: V#T = new B { } } - + trait Middle extends C { type V <: (D with U) } diff --git a/test/files/neg/t1705.scala b/test/files/neg/t1705.scala index fabdca0ec6..bf1fcea815 100644 --- a/test/files/neg/t1705.scala +++ b/test/files/neg/t1705.scala @@ -17,7 +17,7 @@ object crashing { } } } -/* +/* Infinite loop in Typer.addLocals. Printing all calls to it: diff --git a/test/files/neg/t2421b.scala b/test/files/neg/t2421b.scala index d8159a8c37..a8d22f285e 100644 --- a/test/files/neg/t2421b.scala +++ b/test/files/neg/t2421b.scala @@ -12,6 +12,6 @@ object Test { f } -/* bug: +/* bug: error: type arguments [Test2.A] do not conform to method b's type parameter bounds [X <: Test2.B] */
\ No newline at end of file diff --git a/test/files/neg/t2641.scala b/test/files/neg/t2641.scala index 5529035f79..68a4ca35b2 100644 --- a/test/files/neg/t2641.scala +++ b/test/files/neg/t2641.scala @@ -8,7 +8,7 @@ abstract class ManagedSeqStrict[+A] with GenericTraversableTemplate[A, ManagedSeqStrict] { override def companion: GenericCompanion[ManagedSeqStrict] = null - + override def foreach[U](f: A => U): Unit = null } @@ -18,9 +18,9 @@ trait ManagedSeq[+A, +Coll] with TraversableView[A, ManagedSeqStrict[A]] with TraversableViewLike[A, ManagedSeqStrict[A], ManagedSeq[A]] { self => - + override def underlying = throw new Exception("no underlying") - + //trait Transformed[+B] extends ManagedSeq[B] with super.Transformed[B] trait Transformed[+B] extends ManagedSeq[B, Coll] with super.Transformed[B] diff --git a/test/files/neg/t2870.check b/test/files/neg/t2870.check index 759af53626..6577577d3f 100644 --- a/test/files/neg/t2870.check +++ b/test/files/neg/t2870.check @@ -2,6 +2,6 @@ t2870.scala:1: error: not found: type Jar class Jars(jar: Jar) ^ t2870.scala:6: error: illegal cyclic reference involving value <import> - val scala = fromClasspathString(javaClassPath) + val scala = fromClasspathString(javaClassPath) ^ two errors found diff --git a/test/files/neg/t2870.scala b/test/files/neg/t2870.scala index 4de19242e3..59fba3e76d 100755 --- a/test/files/neg/t2870.scala +++ b/test/files/neg/t2870.scala @@ -1,9 +1,9 @@ class Jars(jar: Jar) -object Jars { +object Jars { import scala.util.Properties.javaClassPath - val scala = fromClasspathString(javaClassPath) - + val scala = fromClasspathString(javaClassPath) + def fromClasspathString(s: String): Jars = null } diff --git a/test/files/neg/t2910.scala b/test/files/neg/t2910.scala index b772ee4d43..aafeb59f3e 100644 --- a/test/files/neg/t2910.scala +++ b/test/files/neg/t2910.scala @@ -10,7 +10,7 @@ object Junk { val z = 0 lazy val s = "abc" } - + def test4() { lazy val x = { x @@ -34,5 +34,5 @@ object Test { lazy val f: Int = g var x: Int = f lazy val g: Int = x - } + } } diff --git a/test/files/neg/t2918.check b/test/files/neg/t2918.check index bb6ecad282..e67f24ec57 100644 --- a/test/files/neg/t2918.check +++ b/test/files/neg/t2918.check @@ -1,7 +1,7 @@ t2918.scala:2: error: cyclic aliasing or subtyping involving type A - def g[X, A[X] <: A[X]](x: A[X]) = x + def g[X, A[X] <: A[X]](x: A[X]) = x ^ t2918.scala:2: error: A does not take type parameters - def g[X, A[X] <: A[X]](x: A[X]) = x + def g[X, A[X] <: A[X]](x: A[X]) = x ^ two errors found diff --git a/test/files/neg/t2918.scala b/test/files/neg/t2918.scala index ff2be39ae0..03477ccfbf 100755 --- a/test/files/neg/t2918.scala +++ b/test/files/neg/t2918.scala @@ -1,3 +1,3 @@ object Test { - def g[X, A[X] <: A[X]](x: A[X]) = x + def g[X, A[X] <: A[X]](x: A[X]) = x } diff --git a/test/files/neg/t3015.check b/test/files/neg/t3015.check index 5c01f08b23..32809b0669 100644 --- a/test/files/neg/t3015.check +++ b/test/files/neg/t3015.check @@ -1,11 +1,11 @@ t3015.scala:7: error: scrutinee is incompatible with pattern type; found : _$1 where type _$1 required: java.lang.String - val b(foo) = "foo" + val b(foo) = "foo" ^ t3015.scala:7: error: type mismatch; found : _$1(in value foo) where type _$1(in value foo) <: java.lang.String required: (some other)_$1(in value foo) where type (some other)_$1(in value foo) - val b(foo) = "foo" + val b(foo) = "foo" ^ two errors found diff --git a/test/files/neg/t3015.scala b/test/files/neg/t3015.scala index adfa15b388..9af8f30c65 100644 --- a/test/files/neg/t3015.scala +++ b/test/files/neg/t3015.scala @@ -4,5 +4,5 @@ class UnApp[P] { object Test extends App { val b: UnApp[_] = new UnApp[String] - val b(foo) = "foo" + val b(foo) = "foo" } diff --git a/test/files/neg/t3118.scala b/test/files/neg/t3118.scala index 9be24c1ed4..75f3b8f50c 100644 --- a/test/files/neg/t3118.scala +++ b/test/files/neg/t3118.scala @@ -1,8 +1,8 @@ class O1 { private[this] case class C() - + val x = new O1 - + println(x.C()) // should not be accessible println(new x.C) // is correctly not accessible } diff --git a/test/files/neg/t3224.scala b/test/files/neg/t3224.scala index 589e1db4aa..774de3335a 100755 --- a/test/files/neg/t3224.scala +++ b/test/files/neg/t3224.scala @@ -1,16 +1,16 @@ object Texts{ - def textL[T](list: List[T]) = { - list match{ - case List() => "Empty" - case List(_) => "One" + def textL[T](list: List[T]) = { + list match{ + case List() => "Empty" + case List(_) => "One" case List(_*) => "Many" } } - def textA[T](array: Array[T]) = { - array match{ - case Array() => "Empty" - case Array(_) => "One" + def textA[T](array: Array[T]) = { + array match{ + case Array() => "Empty" + case Array(_) => "One" case Array(_*) => "Many" } } @@ -23,7 +23,7 @@ object Test extends App { array.toList } - + println(Texts textL List()); println(Texts textL List(1)); println(Texts textL List(1, 1)); println(Texts textL Array()); println(Texts textL Array(1)); println(Texts textL Array(1, 1)) diff --git a/test/files/neg/t3399.scala b/test/files/neg/t3399.scala index 3edaa0724f..b1fe4e5ee2 100644 --- a/test/files/neg/t3399.scala +++ b/test/files/neg/t3399.scala @@ -10,7 +10,7 @@ object Nats { type FoldR[Init <: Type, Type, F <: Fold[Nat, Type]] = F#Apply[Succ[N], N#FoldR[Init, Type, F]] } - + type Add[A <: Nat, B <: Nat] = A#FoldR[B, Nat, Inc] trait Fold[-Elem, Value] { type Apply[N <: Elem, Acc <: Value] <: Value @@ -18,7 +18,7 @@ object Nats { type Inc = Fold[Any, Nat] { type Apply[N <: Any, Acc <: Nat] = Succ[Acc] } - + type _1 = Succ[_0] implicitly[ Add[_1, _1] =:= _1] }
\ No newline at end of file diff --git a/test/files/neg/t3453.scala b/test/files/neg/t3453.scala index 090b777151..0f1c6e0282 100644 --- a/test/files/neg/t3453.scala +++ b/test/files/neg/t3453.scala @@ -25,7 +25,7 @@ object O { class T2a { import O._ - + def x: B = { val aToB = 3 // ok: doesn't compile, because aToB method requires 'T.this.' prefix @@ -39,7 +39,7 @@ class T2a { class T2b { import O.aToB - + def x: B = { val aToB = 3 // ok: doesn't compile, because aToB method requires 'T.this.' prefix @@ -53,7 +53,7 @@ class T2b { class T3 { implicit def aToB(a: A): B = new B - + def x: B = { val aToB = 3 // ok: doesn't compile, because aToB method requires 'T.this.' prefix diff --git a/test/files/neg/t3507.scala b/test/files/neg/t3507.scala index 9a8c7c5462..32688d3934 100644 --- a/test/files/neg/t3507.scala +++ b/test/files/neg/t3507.scala @@ -8,7 +8,7 @@ class A { object Test { var a: A = new A // mutable val c /*: object _1.b.c forSome { val _1: A } */ = a.m // widening using existential - + def mani[T: Manifest](x: T) = () mani/*[object _1.b.c]*/(c) // kaboom in manifestOfType / TreeGen.mkAttributedQualifier // --> _1 is not in scope here diff --git a/test/files/neg/t3757/B.scala b/test/files/neg/t3757/B.scala index 7c78fb634e..68766a9f6e 100644 --- a/test/files/neg/t3757/B.scala +++ b/test/files/neg/t3757/B.scala @@ -1,5 +1,5 @@ package b -class B extends a.A { +class B extends a.A { override def foo = "B" }
\ No newline at end of file diff --git a/test/files/neg/t3776.check b/test/files/neg/t3776.check index 0dfe129596..4a5284cf0f 100644 --- a/test/files/neg/t3776.check +++ b/test/files/neg/t3776.check @@ -1,4 +1,4 @@ t3776.scala:8: error: value someOperation is not a member of _$1 - def parsedAs[T](v: T) = MyParser.parse(pattern, a).get someOperation v + def parsedAs[T](v: T) = MyParser.parse(pattern, a).get someOperation v ^ one error found diff --git a/test/files/neg/t3776.scala b/test/files/neg/t3776.scala index 6e368165aa..454f914316 100644 --- a/test/files/neg/t3776.scala +++ b/test/files/neg/t3776.scala @@ -5,6 +5,6 @@ object MyParser extends RegexParsers with PackratParsers { object Test { class ParsedAs(a: String) (implicit pattern: MyParser.Parser[_]) { - def parsedAs[T](v: T) = MyParser.parse(pattern, a).get someOperation v + def parsedAs[T](v: T) = MyParser.parse(pattern, a).get someOperation v } } diff --git a/test/files/neg/t3816.scala b/test/files/neg/t3816.scala index 31b0825f1d..b7f3fde699 100644 --- a/test/files/neg/t3816.scala +++ b/test/files/neg/t3816.scala @@ -1,7 +1,7 @@ class B { def ::(a: List[Int]) { a match { - case x::xs => + case x::xs => case _ => } } @@ -32,11 +32,11 @@ object Test { } } - var foo = 0 + var foo = 0 def testFail2( x: Any ) = { x match { case Some( `foo` ) => case _ => } - } + } } diff --git a/test/files/neg/t3987.scala b/test/files/neg/t3987.scala index 1226d80228..c97d57b38f 100644 --- a/test/files/neg/t3987.scala +++ b/test/files/neg/t3987.scala @@ -1,7 +1,7 @@ class Gox { object Zed { } class Zed { } -} +} object Test { type GoxZed = t#Zed forSome { type t <: Gox } diff --git a/test/files/neg/t4079/t4079_1.scala b/test/files/neg/t4079/t4079_1.scala index cbae864788..8dc73556c7 100644 --- a/test/files/neg/t4079/t4079_1.scala +++ b/test/files/neg/t4079/t4079_1.scala @@ -9,7 +9,7 @@ trait ComposeT[F[_],G[_]] { case class Compose[F[_],G[_]]() { def Functor(implicit f: Functor[F], g: Functor[G]): Functor[ComposeT[F,G]#Apply] = new Functor[ComposeT[F,G]#Apply] { - def map[A,B](c: ComposeT[F,G]#Apply[A], h: A => B) = + def map[A,B](c: ComposeT[F,G]#Apply[A], h: A => B) = f.map(c, (x:G[A]) => g.map(x,h)) } } @@ -19,10 +19,10 @@ object Cat { } object Functors { - implicit val List = new Functor[List] { + implicit val List = new Functor[List] { def map[A,B](fa: List[A], f: A => B): List[B] = fa map f } - implicit val Option = new Functor[Option] { + implicit val Option = new Functor[Option] { def map[A,B](fa: Option[A], f: A => B): Option[B] = fa map f } } diff --git a/test/files/neg/t4431.scala b/test/files/neg/t4431.scala index 5fbb239e04..91e4abfe36 100644 --- a/test/files/neg/t4431.scala +++ b/test/files/neg/t4431.scala @@ -7,7 +7,7 @@ object Test { // this earns a VerifyError. trait C { def wait (): Unit } class D { } - + def main(args: Array[String]): Unit = { new B with A { } new BB diff --git a/test/files/neg/t4457_1.scala b/test/files/neg/t4457_1.scala index 11f12379f6..91d9bc9f51 100644 --- a/test/files/neg/t4457_1.scala +++ b/test/files/neg/t4457_1.scala @@ -22,7 +22,7 @@ object ImplicitConvAmbiguity2 { def aFunc[A](a: NQ[A]) = new BB[A] def bFunc[T](e1: N[T]) = {} - + def typeMe1 { val x = aFunc(4F) bFunc(x) diff --git a/test/files/neg/t4457_2.scala b/test/files/neg/t4457_2.scala index f3a170f1f2..b2e7505cf2 100644 --- a/test/files/neg/t4457_2.scala +++ b/test/files/neg/t4457_2.scala @@ -22,7 +22,7 @@ object ImplicitConvAmbiguity2 { def aFunc[A](a: NQ[A]) = new BB[A] def bFunc[T](e1: N[T]) = {} - + def typeMe2 { val x = aFunc(4F) bFunc(x) diff --git a/test/files/neg/tailrec.scala b/test/files/neg/tailrec.scala index e0ebde9863..5b9018ae89 100644 --- a/test/files/neg/tailrec.scala +++ b/test/files/neg/tailrec.scala @@ -9,21 +9,21 @@ object Winners { @tailrec def loopsucc1(x: Int): Int = loopsucc1(x - 1) @tailrec def loopsucc2[T](x: Int): Int = loopsucc2[T](x - 1) - + def ding() { object dong { @tailrec def loopsucc3(x: Int): Int = loopsucc3(x) } () } - + def inner(q: Int) = { @tailrec def loopsucc4(x: Int): Int = loopsucc4(x + 1) - + loopsucc4(q) } - + object innerBob { @tailrec def loopsucc5(x: Int): Int = loopsucc5(x) } @@ -45,19 +45,19 @@ object Failures { else n * facfail(n - 1) } -class Failures { +class Failures { // not private, not final @tailrec def fail1(x: Int): Int = fail1(x) - + // a typical between-chair-and-keyboard error @tailrec final def fail2[T](xs: List[T]): List[T] = xs match { case Nil => Nil case x :: xs => x :: fail2[T](xs) } - + // unsafe @tailrec final def fail3[T](x: Int): Int = fail3(x - 1) - + // unsafe class Tom[T](x: Int) { @tailrec final def fail4[U](other: Tom[U], x: Int): Int = other.fail4[U](other, x - 1) diff --git a/test/files/neg/tcpoly_infer_ticket1162.scala b/test/files/neg/tcpoly_infer_ticket1162.scala index 0552b42a22..b88bd358d9 100644 --- a/test/files/neg/tcpoly_infer_ticket1162.scala +++ b/test/files/neg/tcpoly_infer_ticket1162.scala @@ -1,8 +1,8 @@ object Test { - trait Expression[A,B] + trait Expression[A,B] case class Lift[A,B,F[_]]() extends Expression[F[A],F[B]] - + def simplify[A,B]: Expression[A,B] = Lift[A,B]() } diff --git a/test/files/neg/tcpoly_ticket2101.scala b/test/files/neg/tcpoly_ticket2101.scala index 68f061ce70..3af07acfac 100644 --- a/test/files/neg/tcpoly_ticket2101.scala +++ b/test/files/neg/tcpoly_ticket2101.scala @@ -4,10 +4,10 @@ class T2[X] extends T[T2, X] // ill-typed // Forall Y. T2[Y] <: T[T2, X] // debugging before fix: -// def isSubType0 --> +// def isSubType0 --> // case (PolyType(tparams1, res1), PolyType(tparams2, res2)) => println("<:<PT: "+((tparams1, res1), (tparams2, res2))) //@MDEBUG // (tparams1.length == tparams2.length && -// List.forall2(tparams1, tparams2) +// List.forall2(tparams1, tparams2) // ((p1, p2) => p2.info.substSym(tparams2, tparams1) <:< p1.info) && // res1 <:< res2.substSym(tparams2, tparams1)) @@ -22,7 +22,7 @@ class T2[X] extends T[T2, X] // ill-typed // (tparams1.length == tparams2.length && // { // val tpsFresh = cloneSymbols(tparams1) // @M cloneSymbols(tparams2) should be equivalent -- TODO: check -// List.forall2(tparams1, tparams2) +// List.forall2(tparams1, tparams2) // ((p1, p2) => p2.info.substSym(tparams2, tpsFresh) <:< p1.info.substSym(tparams1, tpsFresh)) && -// res1.substSym(tparams1, tpsFresh) <:< res2.substSym(tparams2, tpsFresh) +// res1.substSym(tparams1, tpsFresh) <:< res2.substSym(tparams2, tpsFresh) // }) diff --git a/test/files/neg/tcpoly_typealias.scala b/test/files/neg/tcpoly_typealias.scala index 6c7f80cc0b..96e9349298 100644 --- a/test/files/neg/tcpoly_typealias.scala +++ b/test/files/neg/tcpoly_typealias.scala @@ -12,7 +12,7 @@ trait A3 { trait FooCov[+x] trait FooCon[-x] -trait FooBound[+x <: String] +trait FooBound[+x <: String] trait BOk1 extends A { type m[+x] = FooCov[x] @@ -30,8 +30,8 @@ trait BOk4 extends A3 { type m[+x] = FooCov[x] // weaker variance } -// there are two aspects to check: - // does type alias signature (not considering RHS) correspond to abstract type member in super class +// there are two aspects to check: + // does type alias signature (not considering RHS) correspond to abstract type member in super class // does RHS correspond to the type alias sig trait BInv extends A{ type m[x] = FooCov[x] // error: invariant x in alias def diff --git a/test/files/neg/tcpoly_variance_enforce.scala b/test/files/neg/tcpoly_variance_enforce.scala index ddff0e9f94..0db7b692f8 100644 --- a/test/files/neg/tcpoly_variance_enforce.scala +++ b/test/files/neg/tcpoly_variance_enforce.scala @@ -6,7 +6,7 @@ trait coll3[m[x]] trait coll4[m[x <: y], y] -class FooInvar[x] +class FooInvar[x] class FooContra[-x] class FooCov[+x] class FooString[+x <: String] @@ -15,15 +15,15 @@ object fcollok extends coll[FooCov] object fcollinv extends coll[FooInvar] // error object fcollcon extends coll[FooContra] // error object fcollwb extends coll[FooString] // error - + object fcoll2ok extends coll2[FooCov] // error object fcoll2inv extends coll2[FooInvar] // error -object fcoll2con extends coll2[FooContra] +object fcoll2con extends coll2[FooContra] object fcoll2wb extends coll2[FooString] // error - -object fcoll3ok extends coll3[FooCov] -object fcoll3inv extends coll3[FooInvar] -object fcoll3con extends coll3[FooContra] + +object fcoll3ok extends coll3[FooCov] +object fcoll3inv extends coll3[FooInvar] +object fcoll3con extends coll3[FooContra] object fcoll3wb extends coll3[FooString] // error object fcoll4ok extends coll4[FooString, String] @@ -33,7 +33,7 @@ object fcoll4_2 extends coll4[FooString, Any] // error object test { var ok: coll[FooCov] = _ - + def x: coll[FooInvar] = sys.error("foo") // error def y: coll[FooContra] = sys.error("foo") // error } diff --git a/test/files/neg/type-diagnostics.scala b/test/files/neg/type-diagnostics.scala index c4171328de..de7e7adc3c 100644 --- a/test/files/neg/type-diagnostics.scala +++ b/test/files/neg/type-diagnostics.scala @@ -6,14 +6,14 @@ object SetVsSet { object TParamConfusion { def strings(xs: List[String]) = xs - + def f1[a <% Ordered[a]](x: List[a]) = { def f2[b >: List[a] <% Ordered[b]](x: List[a], y: b): Int = { def f3(xs: List[a], ys: List[a]) = -1 y match { case y1: List[a] => f3(x, y1) } } } - + def f2[String](s: String) = strings(List(s)) } diff --git a/test/files/neg/unit-returns-value.scala b/test/files/neg/unit-returns-value.scala index 27a1111c5b..ecc981f217 100644 --- a/test/files/neg/unit-returns-value.scala +++ b/test/files/neg/unit-returns-value.scala @@ -3,7 +3,7 @@ object Test { var b = false if (b) return 5 } - + // no warning def g { return println("hello") diff --git a/test/files/neg/varargs.scala b/test/files/neg/varargs.scala index be75e9b0a7..657750ec8f 100644 --- a/test/files/neg/varargs.scala +++ b/test/files/neg/varargs.scala @@ -7,21 +7,21 @@ import annotation.varargs // Failing varargs annotation object Test { - + trait A { def v1(a: Int, b: Array[String]) = a } - + trait B extends A { @varargs def v1(a: Int, b: String*) = a + b.length } - + @varargs def nov(a: Int) = 0 @varargs def v(a: Int, b: String*) = a + b.length @varargs def v2(a: Int, b: String*) = 0 def v2(a: Int, b: Array[String]) = 0 - - def main(args: Array[String]) { + + def main(args: Array[String]) { } - + } diff --git a/test/files/neg/variances.check b/test/files/neg/variances.check index b134a9a68c..4eaab56cef 100644 --- a/test/files/neg/variances.check +++ b/test/files/neg/variances.check @@ -1,8 +1,8 @@ variances.scala:4: error: covariant type A occurs in contravariant position in type test.Vector[A] of value x - def append(x: Vector[A]): Vector[A] + def append(x: Vector[A]): Vector[A] ^ variances.scala:14: error: covariant type A occurs in contravariant position in type A of value a - private[this] def setA(a : A) = this.a = a + private[this] def setA(a : A) = this.a = a ^ variances.scala:16: error: covariant type A occurs in invariant position in supertype test.C[A] with ScalaObject of object Baz object Baz extends C[A] diff --git a/test/files/neg/variances.scala b/test/files/neg/variances.scala index 181783f48a..57abba130d 100644 --- a/test/files/neg/variances.scala +++ b/test/files/neg/variances.scala @@ -1,7 +1,7 @@ package test trait Vector[+A] { - def append(x: Vector[A]): Vector[A] + def append(x: Vector[A]): Vector[A] private[this] def append3(x: Vector[A]): Vector[A] = append(x) } @@ -11,8 +11,8 @@ object Covariant { class Foo[+A] { private[this] var a : A = _ def getA : A = a - private[this] def setA(a : A) = this.a = a - + private[this] def setA(a : A) = this.a = a + object Baz extends C[A] trait Convert[B] { def b2a(b : B) : A @@ -22,8 +22,8 @@ object Covariant { class Foo2[+A] { private[this] var a : A = _ def getA : A = a - private[this] def setA(a : A) = this.a = a - + private[this] def setA(a : A) = this.a = a + { trait Convert[B] { def b2a(b : B) : A @@ -35,8 +35,8 @@ object Covariant { class Foo3[+A] { private[this] var a : A = _ def getA : A = a - private[this] def setA(a : A) = this.a = a - + private[this] def setA(a : A) = this.a = a + private[this] trait Convert[B] { def b2a(b : B) : A def doit(b : B) = setA(b2a(b)) diff --git a/test/files/neg/viewtest.scala b/test/files/neg/viewtest.scala index 5e7d624d23..ddb7fa4a3b 100644 --- a/test/files/neg/viewtest.scala +++ b/test/files/neg/viewtest.scala @@ -37,7 +37,7 @@ object O { } } - implicit def view3[a <% Ordered[a]](x: List[a]): Ordered[List[a]] = + implicit def view3[a <% Ordered[a]](x: List[a]): Ordered[List[a]] = new Ordered[List[a]] { def compareTo [b >: List[a] <% Ordered[b]](y: b): Int = y match { case y1: List[a] => compareLists(x, y1) @@ -72,7 +72,7 @@ class Node[a <% Ordered[a]](elem: a, l: Tree[a], r: Tree[a]) extends Tree[a] { if (x == elem) this else if (x < elem) new Node(elem, l insert x, r) else new Node(elem, l, r insert x) - def elements: List[a] = + def elements: List[a] = l.elements ::: List(elem) ::: r.elements } @@ -86,7 +86,7 @@ case class Str(elem: String) extends Ordered[Str] { object Test { import O._ - private def toCharList(s: String): List[Char] = + private def toCharList(s: String): List[Char] = if (s.length() == 0) List() else s.charAt(0) :: toCharList(s.substring(1)) diff --git a/test/files/pos/List1.scala b/test/files/pos/List1.scala index 1321d95c20..9d3a51f4e3 100644 --- a/test/files/pos/List1.scala +++ b/test/files/pos/List1.scala @@ -17,7 +17,7 @@ object lists { def isEmpty = false; def head = x; def tail = xs; - } + } def foo = { val intnil = Nil[Int]; diff --git a/test/files/pos/MailBox.scala b/test/files/pos/MailBox.scala index 67b923ea3e..35b38f4725 100644 --- a/test/files/pos/MailBox.scala +++ b/test/files/pos/MailBox.scala @@ -23,7 +23,7 @@ class MailBox { private val sent = new LinkedList[Any]; private var lastSent = sent; private val receivers = new LinkedList[Receiver]; - private var lastReceiver = receivers; + private var lastReceiver = receivers; def send(msg: Any): Unit = synchronized { var r = receivers; @@ -58,7 +58,7 @@ class MailBox { } f(msg) } - + def receiveWithin[a](msec: Long)(f: PartialFunction[Any, a]): a = { val msg: Any = synchronized { var s = sent; diff --git a/test/files/pos/Transactions.scala b/test/files/pos/Transactions.scala index ed989e178e..9b4388300b 100644 --- a/test/files/pos/Transactions.scala +++ b/test/files/pos/Transactions.scala @@ -28,7 +28,7 @@ class Transaction { var next: Transaction = null def this(hd: Transaction, tl: Transaction) = { this(); this.head = head; this.next = next } - + def makeAbort() = synchronized { while (status != Transaction.Aborted && status != Transaction.Committed) { status = Transaction.Abortable @@ -48,7 +48,7 @@ class Transaction { case ex: AbortException => abort(); None case ex: Throwable => abort(); throw ex } - + } trait Transactional { @@ -58,7 +58,7 @@ trait Transactional { /** copy back snapshot */ def rollBack(): Unit - + var readers: Transaction var writer: Transaction @@ -66,11 +66,11 @@ trait Transactional { if (writer == null) null else if (writer.status == Transaction.Running) writer else { - if (writer.status != Transaction.Committed) rollBack(); - writer = null; - null + if (writer.status != Transaction.Committed) rollBack(); + writer = null; + null } - + def getter(thisTrans: Transaction) { if (writer == thisTrans) return var r = readers @@ -96,7 +96,7 @@ trait Transactional { synchronized { val w = currentWriter() if (w != null) - if (thisTrans.id < w.id) { w.makeAbort(); rollBack() } + if (thisTrans.id < w.id) { w.makeAbort(); rollBack() } else throw new AbortException var r = readers while (r != null && r.head.status != Transaction.Running) { r = r.next; readers = r } @@ -111,4 +111,4 @@ trait Transactional { } } } - + diff --git a/test/files/pos/array-interfaces.scala b/test/files/pos/array-interfaces.scala index 70cafd2bb1..4955911078 100644 --- a/test/files/pos/array-interfaces.scala +++ b/test/files/pos/array-interfaces.scala @@ -1,7 +1,7 @@ object s { def f(x: Cloneable) = () def g(x: java.io.Serializable) = () - + def main(args: Array[String]): Unit = { f(args) g(args) diff --git a/test/files/pos/arrays2.scala b/test/files/pos/arrays2.scala index 795c486e37..2d5409cbb8 100644 --- a/test/files/pos/arrays2.scala +++ b/test/files/pos/arrays2.scala @@ -11,8 +11,8 @@ object arrays2 { // #2422 object arrays4 { - val args = Array[String]("World") - "Hello %1$s".format(args: _*) + val args = Array[String]("World") + "Hello %1$s".format(args: _*) } // #2461 diff --git a/test/files/pos/bug0031.scala b/test/files/pos/bug0031.scala index aa787ca794..ec6eae9282 100644 --- a/test/files/pos/bug0031.scala +++ b/test/files/pos/bug0031.scala @@ -4,7 +4,7 @@ object Main { def ensure(postcondition: a => Boolean): a } - def require[a](precondition: => Boolean)(command: => a): Ensure[a] = + def require[a](precondition: => Boolean)(command: => a): Ensure[a] = if (precondition) new Ensure[a] { def ensure(postcondition: a => Boolean): a = { diff --git a/test/files/pos/bug0066.scala b/test/files/pos/bug0066.scala index 2153264e7a..9317da7165 100644 --- a/test/files/pos/bug0066.scala +++ b/test/files/pos/bug0066.scala @@ -3,5 +3,5 @@ class GBTree[A, B] /*with Map[A, B, GBTree[A,B]]*/ { case class Node[A,B](key:A,value:B,smaller:Node[A,B],bigger:Node[A,B]) extends Tree[A,B]; case class Nil[A,B]() extends Tree[A,B]; - + } diff --git a/test/files/pos/bug0069.scala b/test/files/pos/bug0069.scala index 113820613f..5a8c15cd5a 100644 --- a/test/files/pos/bug0069.scala +++ b/test/files/pos/bug0069.scala @@ -8,4 +8,4 @@ object testCQ { */ } - + diff --git a/test/files/pos/bug0305.scala b/test/files/pos/bug0305.scala index 4838b1fcf8..4d37a02eb3 100644 --- a/test/files/pos/bug0305.scala +++ b/test/files/pos/bug0305.scala @@ -1,5 +1,5 @@ object Test extends App { - + def foo(is:Int*) = 1; def foo(i:Int) = 2; diff --git a/test/files/pos/bug0599.scala b/test/files/pos/bug0599.scala index 885159af66..6125b99ce2 100644 --- a/test/files/pos/bug0599.scala +++ b/test/files/pos/bug0599.scala @@ -15,4 +15,4 @@ abstract class FooA { a.xxx; doB.xxx; } - } + } diff --git a/test/files/pos/bug0646.scala b/test/files/pos/bug0646.scala index a56e857223..6146e60020 100644 --- a/test/files/pos/bug0646.scala +++ b/test/files/pos/bug0646.scala @@ -2,7 +2,7 @@ object xfor { import scala.xml.NodeSeq - val books = + val books = <bks> <title>Blabla</title> <title>Blubabla</title> @@ -13,7 +13,7 @@ object xfor { case t @ Seq(<title>Blabla</title>) => t } - //val n: NodeSeq = new NodeSeq { val theSeq = books.child } + //val n: NodeSeq = new NodeSeq { val theSeq = books.child } //n match { // case t @ <title>Blabla</title> => t //} diff --git a/test/files/pos/bug1048.scala b/test/files/pos/bug1048.scala index f88dbbc88b..ce57e72391 100644 --- a/test/files/pos/bug1048.scala +++ b/test/files/pos/bug1048.scala @@ -1,7 +1,7 @@ trait T[U] { def x: T[V] forSome { type V <: U } } - + object T { def unapply[U](t: T[U]): Option[T[V] forSome { type V <: U }] = Some(t.x) } @@ -12,4 +12,4 @@ object Test { } } - + diff --git a/test/files/pos/bug1071.scala b/test/files/pos/bug1071.scala index 59149a021b..7fb802f8b0 100644 --- a/test/files/pos/bug1071.scala +++ b/test/files/pos/bug1071.scala @@ -12,6 +12,6 @@ object Test { val c = new C (c: D).a // works - c.a // error + c.a // error } diff --git a/test/files/pos/bug1090.scala b/test/files/pos/bug1090.scala index a9bce90b00..dca762af4f 100644 --- a/test/files/pos/bug1090.scala +++ b/test/files/pos/bug1090.scala @@ -10,7 +10,7 @@ object Test { type Node = Core.this.Node } def f(manager : Manager) = manager.iterator.foreach{ - case node : NodeImpl => + case node : NodeImpl => } } } diff --git a/test/files/pos/bug1123.scala b/test/files/pos/bug1123.scala index 3812fa3eb3..a7b009cbbe 100644 --- a/test/files/pos/bug1123.scala +++ b/test/files/pos/bug1123.scala @@ -7,5 +7,5 @@ object Test { } def f = extraListener.h } - def main(args : Array[String]) : Unit = (new Editor).f + def main(args : Array[String]) : Unit = (new Editor).f } diff --git a/test/files/pos/bug1168.scala b/test/files/pos/bug1168.scala index 75638e792f..d9f38714b8 100644 --- a/test/files/pos/bug1168.scala +++ b/test/files/pos/bug1168.scala @@ -1,5 +1,5 @@ object Test extends App { - + trait SpecialException {} try { diff --git a/test/files/pos/bug1210a.scala b/test/files/pos/bug1210a.scala index b3492f96e4..fbb0a611d6 100644 --- a/test/files/pos/bug1210a.scala +++ b/test/files/pos/bug1210a.scala @@ -1,9 +1,9 @@ // both styles of abstraction should behave the same // related to 1210 because that bug broke the OO version below -trait OO { +trait OO { abstract class Test { self => type T - + val v: Test {type T = self.T} = self.v.v } } diff --git a/test/files/pos/bug122.scala b/test/files/pos/bug122.scala index 630e24ce4a..e3daeef73e 100644 --- a/test/files/pos/bug122.scala +++ b/test/files/pos/bug122.scala @@ -1,4 +1,4 @@ class L { - val List(v:Int, 2) = List(2, v:Int) + val List(v:Int, 2) = List(2, v:Int) val (a:Int, b:Int) = (1, a) } diff --git a/test/files/pos/bug1237.scala b/test/files/pos/bug1237.scala index 7777372138..0d1dd05d50 100644 --- a/test/files/pos/bug1237.scala +++ b/test/files/pos/bug1237.scala @@ -1,11 +1,11 @@ -class HelloWorld { - def main(args: Array[String]) { +class HelloWorld { + def main(args: Array[String]) { object TypeBool; trait Fct { def g(x : Int) = TypeBool // breaks. - + // def g(x : Int) = 3 // fine. } diff --git a/test/files/pos/bug1272.scala b/test/files/pos/bug1272.scala index d86a909ae5..aab1a886c7 100644 --- a/test/files/pos/bug1272.scala +++ b/test/files/pos/bug1272.scala @@ -2,8 +2,8 @@ object ImplicitTest { implicit val i : Int = 10 implicit def a(implicit i : Int) : Array[Byte] = null implicit def b[T](implicit i : Int) : Array[T] = null - + def fn[T](implicit x : T) = 0 - + val x = fn[Array[Byte]] }
\ No newline at end of file diff --git a/test/files/pos/bug1292.scala b/test/files/pos/bug1292.scala index 83a996d530..3ed153abf2 100644 --- a/test/files/pos/bug1292.scala +++ b/test/files/pos/bug1292.scala @@ -1,5 +1,5 @@ trait Foo[T <: Foo[T, Enum], Enum <: Enumeration] { - type StV = Enum#Value + type StV = Enum#Value type Meta = MegaFoo[T, Enum] type Slog <: Enumeration diff --git a/test/files/pos/bug1385.scala b/test/files/pos/bug1385.scala index 55356c1f25..59953bcc39 100644 --- a/test/files/pos/bug1385.scala +++ b/test/files/pos/bug1385.scala @@ -1,3 +1,3 @@ -@serializable object Test { +@serializable object Test { private def readResolve:AnyRef = this } diff --git a/test/files/pos/bug1560.scala b/test/files/pos/bug1560.scala index cd27fdf0ef..4419ae024d 100644 --- a/test/files/pos/bug1560.scala +++ b/test/files/pos/bug1560.scala @@ -2,10 +2,10 @@ object Test extends App { trait C[T] { def t: T } - + def b: Option[C[_]] = null - + def c = b match { case Some(b) => b.t - } + } } diff --git a/test/files/pos/bug1565.scala b/test/files/pos/bug1565.scala index df333151d5..030086c541 100644 --- a/test/files/pos/bug1565.scala +++ b/test/files/pos/bug1565.scala @@ -3,7 +3,7 @@ object Bug1565 { def x() = { 0; (a : Int, b : Int) => println(List(a, b)) ; 0 } (a : Int, b : Int) => println(List(a, b)) - + // various function syntaxes to exercise the parser val xs = List(1,2,3) xs.filter(x => x < 2) diff --git a/test/files/pos/bug1974.scala b/test/files/pos/bug1974.scala index a0daa13c21..3d28478177 100644 --- a/test/files/pos/bug1974.scala +++ b/test/files/pos/bug1974.scala @@ -1,20 +1,20 @@ object Broken { private var map = Map[Class[_], String]() - + def addToMap(c : Class[_], s : String) = map += (c -> s) def fetch(c : Class[_]) = map(c) } object Works { private var map = Map[Class[_], String]() - + def addToMap(c : Class[_], s : String) = map += ((c, s)) def fetch(c : Class[_]) = map(c) } object Works2 { private var map = Map[Class[_], String]() - + def addToMap(c : Class[_], s : String) = map += ((c : Class[_]) -> s) def fetch(c : Class[_]) = map(c) }
\ No newline at end of file diff --git a/test/files/pos/bug2023.scala b/test/files/pos/bug2023.scala index 21c6fc96a6..de3e848fbd 100644 --- a/test/files/pos/bug2023.scala +++ b/test/files/pos/bug2023.scala @@ -3,11 +3,11 @@ trait C[A] object C { implicit def ipl[A](implicit from: A => Ordered[A]): C[A] = null } - + object P { def foo[A](i: A, j: A)(implicit c: C[A]): Unit = () } - + class ImplicitChainTest { def testTrivial: Unit = { P.foo('0', '9') diff --git a/test/files/pos/bug2081.scala b/test/files/pos/bug2081.scala index 52388464a5..d772c02dc2 100644 --- a/test/files/pos/bug2081.scala +++ b/test/files/pos/bug2081.scala @@ -7,5 +7,5 @@ object ScalaForRubyists { val x = 10.days // a couple parser corner cases I wanted not to break - val y = 5.e0 + 5e7 + val y = 5.e0 + 5e7 } diff --git a/test/files/pos/bug2130-2.scala b/test/files/pos/bug2130-2.scala index 1d0b33c3e5..464f5e0d8e 100644 --- a/test/files/pos/bug2130-2.scala +++ b/test/files/pos/bug2130-2.scala @@ -10,7 +10,7 @@ package object bar { class Dingus object Dingus case class Dongus(x: Float) - + def apply(xs: Int*) = new Bippy(xs.sum) def apply() = new Bippy(5) } diff --git a/test/files/pos/bug2168.scala b/test/files/pos/bug2168.scala index e3b24b6a72..845c5b7361 100644 --- a/test/files/pos/bug2168.scala +++ b/test/files/pos/bug2168.scala @@ -2,5 +2,5 @@ object Test extends App { def foo1(x: AnyRef) = x match { case x: Function0[_] => x() } def foo2(x: AnyRef) = x match { case x: Function0[Any] => x() } } - - + + diff --git a/test/files/pos/bug2310.scala b/test/files/pos/bug2310.scala index 68912b4961..e08411a3df 100644 --- a/test/files/pos/bug2310.scala +++ b/test/files/pos/bug2310.scala @@ -1,15 +1,15 @@ import scala.Stream._ object consistencyError { - /* this gives an error: + /* this gives an error: Consistency problem compiling (virtual file)! Trying to call method body%1(List(scala.collection.immutable.Stream[A])) with arguments (List(tp2, temp6, temp5)) case (l #:: ls, rs) => None ^ scala.tools.nsc.symtab.Types$TypeError: too many arguments for method body%1: (val rs: scala.collection.immutable.Stream[A])None.type - + two errors found - vss(0) = + vss(0) = args = List(tp2, temp6, temp5) vss(1) = value rs, value ls, value l args = List(tp2, temp6, temp5) @@ -18,19 +18,19 @@ object consistencyError { labels(1) = method body%1 labels(0) = method body%0 bx = 1 - label.tpe = (val rs: scala.collection.immutable.Stream[A])None.type + label.tpe = (val rs: scala.collection.immutable.Stream[A])None.type */ def crash[A](lefts: Stream[A], rights: Stream[A]) = (lefts, rights) match { case (Stream.Empty, Stream.Empty) => None case (l #:: ls, rs) => None } - + // These work // def works1[A](lefts: Stream[A]) = lefts match { // case Stream.Empty => None // case l #:: ls => None // } - // + // // def works2[A](lefts: Stream[A], rights: Stream[A]) = (lefts, rights) match { // case (Stream.Empty, Stream.Empty) => None // case (ls, rs) => None diff --git a/test/files/pos/bug2399.scala b/test/files/pos/bug2399.scala index 07882dd549..b009f7856b 100644 --- a/test/files/pos/bug2399.scala +++ b/test/files/pos/bug2399.scala @@ -3,12 +3,12 @@ trait That2[A, R <: That2[A, R]] trait T[A, This >: Null <: That1[A] with T[A, This]] extends That2[A, This] { self: This => - + private var next: This = _ def isEmpty = next eq null - + def length: Int = { def loop(x: This, cnt: Int): Int = if (x.isEmpty) cnt else loop(x.next, cnt + 1) loop(self, 0) - } + } }
\ No newline at end of file diff --git a/test/files/pos/bug247.scala b/test/files/pos/bug247.scala index e976404e61..983b7998a9 100644 --- a/test/files/pos/bug247.scala +++ b/test/files/pos/bug247.scala @@ -12,7 +12,7 @@ class TreeMapFactory[KEY](newOrder:Order[KEY]) extends MapFactory[KEY] { def Empty[V] = new TreeMap[KEY,V](new TreeMapFactory[KEY](order)); } -class Tree[KEY,Entry](order:Order[KEY]) { +class Tree[KEY,Entry](order:Order[KEY]) { def size =0; } diff --git a/test/files/pos/bug262.scala b/test/files/pos/bug262.scala index ec6187b36b..b81490977c 100644 --- a/test/files/pos/bug262.scala +++ b/test/files/pos/bug262.scala @@ -1,11 +1,11 @@ object O { abstract class A { - def f:A; + def f:A; } class B extends A { def f = if(1 == 2) new C else new D; } - class C extends A { + class C extends A { def f = this; } class D extends A { diff --git a/test/files/pos/bug2691.scala b/test/files/pos/bug2691.scala index 1037b53601..d289605ba6 100644 --- a/test/files/pos/bug2691.scala +++ b/test/files/pos/bug2691.scala @@ -1,5 +1,5 @@ object Breakdown { - def unapplySeq(x: Int): Some[List[String]] = Some(List("", "there")) + def unapplySeq(x: Int): Some[List[String]] = Some(List("", "there")) } object Test { 42 match { diff --git a/test/files/pos/bug2939.scala b/test/files/pos/bug2939.scala index 3be4d4d561..67677f2f18 100644 --- a/test/files/pos/bug2939.scala +++ b/test/files/pos/bug2939.scala @@ -4,10 +4,10 @@ object Proxies { class C1 extends MapProxy[Int,Int] { def self = Map[Int,Int]() } class C2 extends mutable.MapProxy[Int,Int] { def self = mutable.Map[Int,Int]() } class C3 extends immutable.MapProxy[Int,Int] { def self = immutable.Map[Int,Int]() } - + class C4 extends SetProxy[Int] { def self = Set[Int]() } class C5 extends mutable.SetProxy[Int] { def self = mutable.Set[Int]() } class C6 extends immutable.SetProxy[Int] { def self = immutable.Set[Int]() } - + class C7 extends SeqProxy[Int] { def self = Seq[Int]() } }
\ No newline at end of file diff --git a/test/files/pos/bug3020.scala b/test/files/pos/bug3020.scala index 016563e27f..cb429cd94f 100644 --- a/test/files/pos/bug3020.scala +++ b/test/files/pos/bug3020.scala @@ -1,7 +1,7 @@ object Test { def main(args: Array[String]): Unit = { var x = true - + ( { if (x) new scala.util.Random() } .asInstanceOf[Runnable] ) } } diff --git a/test/files/pos/bug3106.scala b/test/files/pos/bug3106.scala index 162e93366f..cf7b507126 100644 --- a/test/files/pos/bug3106.scala +++ b/test/files/pos/bug3106.scala @@ -3,5 +3,5 @@ class Sample[A] (val d0: ((A,A)) => A) {} object Sample { implicit def apply[A] (x:A): Sample[A] = { new Sample(p => p._1) - } + } }
\ No newline at end of file diff --git a/test/files/pos/bug3136.scala b/test/files/pos/bug3136.scala index 33d42c2f3c..6a5850aeb0 100644 --- a/test/files/pos/bug3136.scala +++ b/test/files/pos/bug3136.scala @@ -11,7 +11,7 @@ object NullaryMethodType { } object Test { - def TEST(tp: Type): String = + def TEST(tp: Type): String = tp match { case PolyType(ps1, PolyType(ps2, res @ PolyType(a, b))) => "1"+tp // couldn't find a simpler version that still crashes case NullaryMethodType(meh) => "2"+meh diff --git a/test/files/pos/bug3175-pos.scala b/test/files/pos/bug3175-pos.scala index 89bbf8b5fc..497ff8255c 100644 --- a/test/files/pos/bug3175-pos.scala +++ b/test/files/pos/bug3175-pos.scala @@ -1,7 +1,7 @@ object Test { - def f(g:{val update:Unit}) = g.update - + def f(g:{val update:Unit}) = g.update + def main(args: Array[String]): Unit = { - + } } diff --git a/test/files/pos/bug3234.scala b/test/files/pos/bug3234.scala index 1553f1fa05..443d0467f0 100644 --- a/test/files/pos/bug3234.scala +++ b/test/files/pos/bug3234.scala @@ -1,6 +1,6 @@ trait Trait1 { // need more work before this one works - // @inline + // @inline def foo2(n: Int) = n*n } diff --git a/test/files/pos/bug3312.scala b/test/files/pos/bug3312.scala index aef965d2e7..9bf3e23ed3 100644 --- a/test/files/pos/bug3312.scala +++ b/test/files/pos/bug3312.scala @@ -12,6 +12,6 @@ trait B extends Root { object Foo extends A with B { override def say: String = foo(super[A].say) - + def foo(p: => String): String = p } diff --git a/test/files/pos/bug3411.scala b/test/files/pos/bug3411.scala index b58e52db8d..b76fec66a6 100644 --- a/test/files/pos/bug3411.scala +++ b/test/files/pos/bug3411.scala @@ -1,6 +1,6 @@ object A { def g(c: PartialFunction[Any,Unit]) {} - + def f { lazy val x = 0 g { case `x` => } diff --git a/test/files/pos/bug3430.scala b/test/files/pos/bug3430.scala index 3129c6276a..4990abb2a1 100644 --- a/test/files/pos/bug3430.scala +++ b/test/files/pos/bug3430.scala @@ -1,6 +1,6 @@ // package com.example -object A { +object A { def f1(f: String => Boolean) = f("a") def f2(): Boolean = diff --git a/test/files/pos/bug3440.scala b/test/files/pos/bug3440.scala index 026abfea1f..46bba1b207 100644 --- a/test/files/pos/bug3440.scala +++ b/test/files/pos/bug3440.scala @@ -9,7 +9,7 @@ object test { case object Int16 extends SampleFormat1 { def readerFactory = error("") } - + (new {}: Any) match { case 8 => Int8 case 16 => Int16 diff --git a/test/files/pos/bug3521/DoubleValue.java b/test/files/pos/bug3521/DoubleValue.java index e8c093890b..28f05cd972 100644 --- a/test/files/pos/bug3521/DoubleValue.java +++ b/test/files/pos/bug3521/DoubleValue.java @@ -4,4 +4,4 @@ import java.lang.annotation.*; @Target(ElementType.FIELD) public @interface DoubleValue { double value(); -}
\ No newline at end of file +}
\ No newline at end of file diff --git a/test/files/pos/bug3528.scala b/test/files/pos/bug3528.scala index ff49b3e929..b1c4344731 100644 --- a/test/files/pos/bug3528.scala +++ b/test/files/pos/bug3528.scala @@ -4,5 +4,5 @@ class A { // 3528 comments def f2 = List(Set(1,2,3), List(1,2,3)) // 2322 - def f3 = List(null: Range, null: List[Int]) + def f3 = List(null: Range, null: List[Int]) } diff --git a/test/files/pos/bug3568.scala b/test/files/pos/bug3568.scala index 7cfb927138..950c16539b 100644 --- a/test/files/pos/bug3568.scala +++ b/test/files/pos/bug3568.scala @@ -14,7 +14,7 @@ package buffer { // ArrayVec2 can be compiled, instantiated and used. def main(args: Array[String]) { println(works) } } - + trait ElemType { type Element; type Component <: ElemType } trait Float1 extends ElemType { type Element = Float; type Component = Float1} class Vec2 extends ElemType { type Element = Vec2; type Component = Float1 } diff --git a/test/files/pos/bug3578.scala b/test/files/pos/bug3578.scala index d984118208..306cde811b 100644 --- a/test/files/pos/bug3578.scala +++ b/test/files/pos/bug3578.scala @@ -24,7 +24,7 @@ object Test { case class JInt(num: BigInt) extends JValue case class JBool(value: Boolean) extends JValue case class JField(name: String, value: JValue) extends JValue - case class JObject(obj: List[JField]) extends JValue + case class JObject(obj: List[JField]) extends JValue case class JArray(arr: List[JValue]) extends JValue } diff --git a/test/files/pos/bug3636.scala b/test/files/pos/bug3636.scala index 24d18c653d..dbfc7a2c94 100644 --- a/test/files/pos/bug3636.scala +++ b/test/files/pos/bug3636.scala @@ -5,11 +5,11 @@ class CTxnLocal[ T ] { } trait Txn - + trait ProcTxn { def ccstm: Txn } - + trait TxnLocal[ @specialized T ] { def apply()( implicit tx: ProcTxn ) : T def set( v: T )( implicit tx: ProcTxn ) : Unit diff --git a/test/files/pos/bug3671.scala b/test/files/pos/bug3671.scala index 1ca9327bb7..75559f84e2 100644 --- a/test/files/pos/bug3671.scala +++ b/test/files/pos/bug3671.scala @@ -2,6 +2,6 @@ object Crash { def crash(value: Int): Unit = value match { case java.lang.Integer.MAX_VALUE => println("MAX_VALUE") - case java.lang.Integer.MIN_VALUE => println("MIN_VALUE") + case java.lang.Integer.MIN_VALUE => println("MIN_VALUE") } }
\ No newline at end of file diff --git a/test/files/pos/bug3938/Parent.java b/test/files/pos/bug3938/Parent.java index 08fae330bb..a35f435030 100644 --- a/test/files/pos/bug3938/Parent.java +++ b/test/files/pos/bug3938/Parent.java @@ -1,7 +1,7 @@ public class Parent<A>{ class I1 {} class I2 extends Parent.I1 {} - + // OKAY: class I3 extends I1 {} static class I4 {} diff --git a/test/files/pos/bug3938/UseParent.scala b/test/files/pos/bug3938/UseParent.scala index 685d1a03a8..3f4c2298d5 100644 --- a/test/files/pos/bug3938/UseParent.scala +++ b/test/files/pos/bug3938/UseParent.scala @@ -1,6 +1,6 @@ object UseParent { classOf[Parent[AnyRef]#I2] - + // OKAY classOf[Parent[AnyRef]#I3] classOf[Parent.I5] diff --git a/test/files/pos/bug3972.scala b/test/files/pos/bug3972.scala index 5dfc10fcef..d6cbb3dfb7 100644 --- a/test/files/pos/bug3972.scala +++ b/test/files/pos/bug3972.scala @@ -2,7 +2,7 @@ object CompilerCrash { def main(args: Array[String]) { args match { case Array("a", a @ _*) => { } // The code compiles fine if this line is commented out or "@ _*" is deleted or this line is swapped for the next line - case Array("b") => { } // The code compiles fine if this line is commented out + case Array("b") => { } // The code compiles fine if this line is commented out case Array("c", c) => { 0 // The code compiles fine if this line is commented out } diff --git a/test/files/pos/bug4220.scala b/test/files/pos/bug4220.scala index 98f2649767..8fb999e345 100644 --- a/test/files/pos/bug4220.scala +++ b/test/files/pos/bug4220.scala @@ -1,4 +1,4 @@ -// don't know if our half-working sbt build is meaningfully +// don't know if our half-working sbt build is meaningfully // tested for #4220 with this, but it can't hurt. class Boo(a: Int = 0) diff --git a/test/files/pos/bug4269.scala b/test/files/pos/bug4269.scala index 99a30785b4..70f0471a9a 100644 --- a/test/files/pos/bug4269.scala +++ b/test/files/pos/bug4269.scala @@ -1,5 +1,5 @@ -class A { - PartialFunction.condOpt(Nil) { - case items@List(_*) if true => +class A { + PartialFunction.condOpt(Nil) { + case items@List(_*) if true => } } diff --git a/test/files/pos/bug4275.scala b/test/files/pos/bug4275.scala index 1938aceadc..183cb5155e 100644 --- a/test/files/pos/bug4275.scala +++ b/test/files/pos/bug4275.scala @@ -1,6 +1,6 @@ object Test { def f = "abc".count(_ > 'a') - + class A { private val count: Int = 0 } diff --git a/test/files/pos/bug430-feb09.scala b/test/files/pos/bug430-feb09.scala index 1499f32b7a..bba8996e4e 100644 --- a/test/files/pos/bug430-feb09.scala +++ b/test/files/pos/bug430-feb09.scala @@ -13,12 +13,12 @@ package c.scala { case class C[T]() } -// Doesn't compile: type Nothing is not a member of d.scala +// Doesn't compile: type Nothing is not a member of d.scala package d.scala.d { case class D[T]() } -// Doesn't compile: type Any is not a member of e.scala +// Doesn't compile: type Any is not a member of e.scala package e.scala { case class E[T >: Nothing]() } diff --git a/test/files/pos/bug4501.scala b/test/files/pos/bug4501.scala index 40628f1a4b..dac2524024 100644 --- a/test/files/pos/bug4501.scala +++ b/test/files/pos/bug4501.scala @@ -6,7 +6,7 @@ class A { def f1 = foo(ListBuffer(), List()) def f2 = foo(ListBuffer(), ListBuffer()) def f3 = foo(List(), List()) - + // scalap // def f1 : scala.collection.Seq[scala.Nothing] = { /* compiled code */ } // def f2 : scala.collection.mutable.ListBuffer[scala.Nothing] = { /* compiled code */ } diff --git a/test/files/pos/bug460.scala b/test/files/pos/bug460.scala index 3fc13e4dd0..466d06c2ad 100644 --- a/test/files/pos/bug460.scala +++ b/test/files/pos/bug460.scala @@ -1,8 +1,8 @@ object Bug460 { def testFun(x : Int, y : Int) = x + y - val fn = testFun _ - - fn(1, 2) // Ok + val fn = testFun _ + + fn(1, 2) // Ok (testFun(_, _))(1, 2) // Ok (testFun _).apply(1, 2) (testFun _)(1, 2) // Error! (but no longer) diff --git a/test/files/pos/bug4603/S.scala b/test/files/pos/bug4603/S.scala index c7d809d9f7..9e228195a4 100644 --- a/test/files/pos/bug4603/S.scala +++ b/test/files/pos/bug4603/S.scala @@ -1,7 +1,7 @@ // S.scala class S extends J[AnyRef] -object Test { +object Test { def main(args:Array[String]) { J.f(classOf[S]) } diff --git a/test/files/pos/bug4840.scala b/test/files/pos/bug4840.scala index bf44f71d7a..eefa3b2dee 100644 --- a/test/files/pos/bug4840.scala +++ b/test/files/pos/bug4840.scala @@ -1,6 +1,6 @@ class Crashy { def g(): Option[Any] = None - + def crashy() = { for (_ <- g()) { (null: Any) match { diff --git a/test/files/pos/bug516.scala b/test/files/pos/bug516.scala index ce4e0e3dd6..735b259436 100644 --- a/test/files/pos/bug516.scala +++ b/test/files/pos/bug516.scala @@ -4,7 +4,7 @@ import scala.collection.script._; class Members; object subscriber extends Subscriber[Message[String] with Undoable, Members] { - def notify(pub: Members, event: Message[String] with Undoable): Unit = + def notify(pub: Members, event: Message[String] with Undoable): Unit = (event: Message[String]) match { case Include(l, elem) => Console.println("ADD: " + elem); case Remove(l, elem) => Console.println("REM: " + elem); @@ -12,4 +12,4 @@ object subscriber extends Subscriber[Message[String] with Undoable, Members] { //case r : Remove [HasTree] with Undoable => } } - + diff --git a/test/files/pos/bug573.scala b/test/files/pos/bug573.scala index 694d001e3c..7b9d377cd1 100644 --- a/test/files/pos/bug573.scala +++ b/test/files/pos/bug573.scala @@ -16,15 +16,15 @@ import DirX._; abstract class Linked { type Node <: Node0; - + abstract class Node0 { self: Node => - + var next : Node = _; var prev : Node = _; - + def get(dir : Dir) = if (dir == BEFORE) prev; else next; - private def set(dir : Dir, node : Node) = + private def set(dir : Dir, node : Node) = if (dir == BEFORE) prev = node; else next = node; def link(dir : Dir, node : Node) = { @@ -34,7 +34,7 @@ abstract class Linked { node.set(dir.reverse, self); } - + def end(dir : Dir) : Node = { if (get(dir) == null) this; else get(dir).end(dir); diff --git a/test/files/pos/bug577.scala b/test/files/pos/bug577.scala index ede45399a0..236c1395e2 100644 --- a/test/files/pos/bug577.scala +++ b/test/files/pos/bug577.scala @@ -1,15 +1,15 @@ trait PriorityTree { type Node <: BasicTreeNode; - + val top = initTree; top.next = (initTree); top.next.prev = (top); - + def initTree : Node; + + - - - + trait BasicTreeNode { private[PriorityTree] var next : Node = _; private[PriorityTree] var prev : Node = _; diff --git a/test/files/pos/bug599.scala b/test/files/pos/bug599.scala index 968e2deaee..53f205a26b 100644 --- a/test/files/pos/bug599.scala +++ b/test/files/pos/bug599.scala @@ -16,4 +16,4 @@ abstract class FooA { val aaa: InnerB.this.B = doB aaa.xxx; } - } + } diff --git a/test/files/pos/bug602.scala b/test/files/pos/bug602.scala index 18dd405645..6062b976b6 100644 --- a/test/files/pos/bug602.scala +++ b/test/files/pos/bug602.scala @@ -10,5 +10,5 @@ case class Span[K <: Ordered[K]](low: Option[K], high: Option[K]) extends Functi case Span(Some(low), None) => (k >= low) case Span(None, Some(high)) => (k <= high) case _ => false - } + } } diff --git a/test/files/pos/bug613.scala b/test/files/pos/bug613.scala index e140833106..6e3841dada 100644 --- a/test/files/pos/bug613.scala +++ b/test/files/pos/bug613.scala @@ -3,9 +3,9 @@ class Outer extends App { abstract class C { val x: Int } - val foo = new C { + val foo = new C { class I { - val z = y + val z = y } val x = (new I).z } diff --git a/test/files/pos/bug616.scala b/test/files/pos/bug616.scala index bb91c732a6..074ad190da 100644 --- a/test/files/pos/bug616.scala +++ b/test/files/pos/bug616.scala @@ -1,7 +1,7 @@ object testImplicit { implicit def foo2bar(foo: Foo): Bar = foo.bar class Foo(val bar: Bar) { - def testCoercion = {val a = this; a.baz} // here, foo2bar is inferred by the compiler, as expected + def testCoercion = {val a = this; a.baz} // here, foo2bar is inferred by the compiler, as expected //def testCoercionThisImplicit = baz // --> error: not found: value baz def testCoercionThisExplicit: Any = this.baz // --> error: value baz is not a member of Foo } diff --git a/test/files/pos/bug651.scala b/test/files/pos/bug651.scala index c146446af9..44d20ad580 100644 --- a/test/files/pos/bug651.scala +++ b/test/files/pos/bug651.scala @@ -4,12 +4,12 @@ trait Test3 { trait MatchableImpl { trait MatchImpl; } - + trait BracePairImpl { trait BraceImpl extends MatchableImpl { private object MyMatch1 extends MatchImpl; protected def match0 : MatchImpl = MyMatch1; - + } } } diff --git a/test/files/pos/bug675.scala b/test/files/pos/bug675.scala index c736d9dc05..c284c0e202 100644 --- a/test/files/pos/bug675.scala +++ b/test/files/pos/bug675.scala @@ -7,7 +7,7 @@ trait T { } trait X { def foo : Foo = FOO_0; - } + } } object Test extends App { @@ -15,5 +15,5 @@ object Test extends App { val x = new t.X{} Console.println(x.foo) } - - + + diff --git a/test/files/pos/bug690.scala b/test/files/pos/bug690.scala index a93c54f007..3fcdca785d 100644 --- a/test/files/pos/bug690.scala +++ b/test/files/pos/bug690.scala @@ -10,5 +10,5 @@ trait test { override def foo(t : T) = super.foo(t); } def t : T; - M0.foo(t); + M0.foo(t); } diff --git a/test/files/pos/bug711.scala b/test/files/pos/bug711.scala index 4dd6040969..10b410e54e 100644 --- a/test/files/pos/bug711.scala +++ b/test/files/pos/bug711.scala @@ -2,7 +2,7 @@ abstract class Component class Button extends Component { def sayHey: Unit = Console.println("Hey, I'm a button") } - + abstract class Origin { val delegate: Component } diff --git a/test/files/pos/bug715/meredith_1.scala b/test/files/pos/bug715/meredith_1.scala index 4be7b48908..3ed2e57d7a 100644 --- a/test/files/pos/bug715/meredith_1.scala +++ b/test/files/pos/bug715/meredith_1.scala @@ -9,7 +9,7 @@ trait XMLRenderer { classOf[java.lang.Boolean], classOf[java.lang.Integer], classOf[java.lang.Float], - classOf[java.lang.String] + classOf[java.lang.String] // more to come ) @@ -21,14 +21,14 @@ trait XMLRenderer { value match { case null => Text( "null" ) case vUnmatched => - if (value.isInstanceOf[java.lang.Boolean]) + if (value.isInstanceOf[java.lang.Boolean]) Text( value.asInstanceOf[java.lang.Boolean].toString ) - else if (value.isInstanceOf[java.lang.Integer]) + else if (value.isInstanceOf[java.lang.Integer]) Text( value.asInstanceOf[java.lang.Integer].toString ) - else if (value.isInstanceOf[java.lang.Float]) + else if (value.isInstanceOf[java.lang.Float]) Text( value.asInstanceOf[java.lang.Float].toString ) - // else if (value.isInstanceOf[T]) - // pojo2XML( value.asInstanceOf[T] ) + // else if (value.isInstanceOf[T]) + // pojo2XML( value.asInstanceOf[T] ) else <unmatchedType> <theType> @@ -57,7 +57,7 @@ trait XMLRenderer { null, field.getName, null, - TopScope, + TopScope, fldValXML ) } @@ -73,7 +73,7 @@ trait XMLRenderer { null, TopScope, progeny.asInstanceOf[Array[scala.xml.Node]] : _* - ) + ) } } diff --git a/test/files/pos/bug757.scala b/test/files/pos/bug757.scala index fd7624cee7..7513910d8d 100644 --- a/test/files/pos/bug757.scala +++ b/test/files/pos/bug757.scala @@ -1,4 +1,4 @@ -package foo { +package foo { object C { def foo { Console.println("foo") @@ -6,7 +6,7 @@ package foo { } } -package bar { +package bar { object Main extends App { foo.C.foo } diff --git a/test/files/pos/bug758.scala b/test/files/pos/bug758.scala index 160bf37172..44769d54f1 100644 --- a/test/files/pos/bug758.scala +++ b/test/files/pos/bug758.scala @@ -1,7 +1,7 @@ trait A { type T; type M >: T } -trait B extends A { - val x : String; - val u : A { type T = B.this.T } ; - type T = x.type; - type M = u.M +trait B extends A { + val x : String; + val u : A { type T = B.this.T } ; + type T = x.type; + type M = u.M } diff --git a/test/files/pos/bug767.scala b/test/files/pos/bug767.scala index 0c4067f022..d4d7eae870 100644 --- a/test/files/pos/bug767.scala +++ b/test/files/pos/bug767.scala @@ -4,7 +4,7 @@ abstract class AbsCell { private var value: T = init def get: T = value def set (x: T) { value = x } - + class Node { val foo = 1 } diff --git a/test/files/pos/bug788.scala b/test/files/pos/bug788.scala index 19638dd170..3da88a2d26 100644 --- a/test/files/pos/bug788.scala +++ b/test/files/pos/bug788.scala @@ -4,7 +4,7 @@ trait Test { type Node <: NodeImpl; trait NodeImpl; type Expression <: Node with ExpressionImpl; - trait ExpressionImpl extends NodeImpl { + trait ExpressionImpl extends NodeImpl { def self : Expression; } type Named <: Node with NamedImpl; diff --git a/test/files/pos/bug802.scala b/test/files/pos/bug802.scala index 2dea7036d6..124d4915bc 100644 --- a/test/files/pos/bug802.scala +++ b/test/files/pos/bug802.scala @@ -1,17 +1,17 @@ package test; trait Test { - abstract class BracesImpl { + abstract class BracesImpl { type Singleton; type Brace <: Singleton with BraceImpl; - trait BraceImpl; + trait BraceImpl; trait ForFile; } - abstract class ParensImpl extends BracesImpl { + abstract class ParensImpl extends BracesImpl { type Brace <: Singleton with BraceImpl; trait BraceImpl extends super.BraceImpl; } val parens : ParensImpl; - abstract class BracksImpl extends BracesImpl { + abstract class BracksImpl extends BracesImpl { type Brace <: Singleton with BraceImpl; trait BraceImpl extends super.BraceImpl; } diff --git a/test/files/pos/bug807.scala b/test/files/pos/bug807.scala index 0eeb92ea24..ed73fe3f97 100644 --- a/test/files/pos/bug807.scala +++ b/test/files/pos/bug807.scala @@ -6,7 +6,7 @@ trait Matcher { trait HasLinks { def link(b : Boolean) : Link = null; } - + } trait BraceMatcher extends Matcher { trait BracePair { diff --git a/test/files/pos/bug927.scala b/test/files/pos/bug927.scala index 7d4c59d94c..8f3cdac20f 100644 --- a/test/files/pos/bug927.scala +++ b/test/files/pos/bug927.scala @@ -7,5 +7,5 @@ object Test { } val str: Stream[Int] = Stream.fromIterator(List(1,2,3).iterator) assert(sum(str) == 6) - + } diff --git a/test/files/pos/bug946.scala b/test/files/pos/bug946.scala index c4bd6e9ba4..9f4cdbc043 100644 --- a/test/files/pos/bug946.scala +++ b/test/files/pos/bug946.scala @@ -1,7 +1,7 @@ object pmbugbounds { trait Bar class Foo[t <: Bar] {} - + (new Foo[Bar]) match { case _ : Foo[x] => null } diff --git a/test/files/pos/builders.scala b/test/files/pos/builders.scala index 0b620769c0..51d8af88f8 100644 --- a/test/files/pos/builders.scala +++ b/test/files/pos/builders.scala @@ -18,16 +18,16 @@ object builders { def += (elem: B) { buf += elem } def result: List[B] = buf.toList } -/* +/* def fill[A, Dim1, Dim2, Coll](n1: Int, n2: Int, elem: A)(implicit b1: Builder[Coll, Dim1, A], b2: Builder[Coll, Dim2, Dim1]) = { for (i <- 0 until n1) { for (j <- 0 until n2) { b1 += elem - } + } b2 += b1.result } b2.result - } + } */ /* implicit def arrayBuilder[A, B] = new Builder[Array[A], Array[B], B] { @@ -35,7 +35,7 @@ object builders { private val buf = new scala.collection.mutable.ListBuffer[B] def += (elem: B) { buf += elem } def result: Array[B] = buf.toArray - } + } */ class Iter[A, C](elems: List[A]) { def ++ [B >: A, D](xs: Iterable[B])(implicit b: Builder[C, D, B]): D = { @@ -48,7 +48,7 @@ object builders { b.result } } - + def main(args : Array[String]) : Unit = { val x1 = new Iter[Int, List[Int]](List(1, 2, 3)) // val x2 = new Iter[Int, Array[Int]](List(1, 2, 3)) diff --git a/test/files/pos/channels.scala b/test/files/pos/channels.scala index eb26a2bcf6..0a2274c47a 100644 --- a/test/files/pos/channels.scala +++ b/test/files/pos/channels.scala @@ -6,7 +6,7 @@ case class ![a](chan: Channel[a], data: a) /* object Bang { - def unapply[a](x: ![a]): Option[{Channel[a], a}] = + def unapply[a](x: ![a]): Option[{Channel[a], a}] = Some(x.chan, x.data) } @@ -14,7 +14,7 @@ object Bang { object Test extends App { object IC extends Channel[Int] def f[b](x: ![b]): Int = x match { - case send: ![c] => + case send: ![c] => send.chan match { case IC => send.data } @@ -27,4 +27,4 @@ object Test2 extends App { case IC ! x => x } } - + diff --git a/test/files/pos/clsrefine.scala b/test/files/pos/clsrefine.scala index 0a016dec07..b29c01db8b 100644 --- a/test/files/pos/clsrefine.scala +++ b/test/files/pos/clsrefine.scala @@ -25,9 +25,9 @@ object test { val y1, y2 = 1; } val a: A { type X1 = Int; type X2 = Int } = b; - val a1 = new A { + val a1 = new A { type X1 = Int; - type X2 = String; + type X2 = String; val x1 = 1; val x2 = "hello" } diff --git a/test/files/pos/collectGenericCC.scala b/test/files/pos/collectGenericCC.scala index 099a53d3f5..750475207f 100644 --- a/test/files/pos/collectGenericCC.scala +++ b/test/files/pos/collectGenericCC.scala @@ -7,8 +7,8 @@ object Test { for (a <- r) b += a b.result } - - collect[Int, Vector[Int]](List(1,2,3,4)) + + collect[Int, Vector[Int]](List(1,2,3,4)) collect[Char, String](List('1','2','3','4')) - collect[Char, Array[Char]](List('1','2','3','4')) + collect[Char, Array[Char]](List('1','2','3','4')) }
\ No newline at end of file diff --git a/test/files/pos/context.scala b/test/files/pos/context.scala index 4e11d07eb4..13f6bb43c5 100644 --- a/test/files/pos/context.scala +++ b/test/files/pos/context.scala @@ -12,10 +12,10 @@ class Context { abstract class SymbolWrapper { val context: Context; import context._; - + class Symbols { self: context.symbols.type => - + abstract class Symbol { def typ: types.Type; def sym: Symbol = typ.sym; @@ -29,7 +29,7 @@ abstract class TypeWrapper { class Types { self: context.types.type => - + abstract class Type { def sym: symbols.Symbol; def typ: Type = sym.typ; diff --git a/test/files/pos/cyclics-pos.scala b/test/files/pos/cyclics-pos.scala index 395e88815a..051bdd6ed8 100644 --- a/test/files/pos/cyclics-pos.scala +++ b/test/files/pos/cyclics-pos.scala @@ -1,26 +1,26 @@ trait Param[T] trait Abs { type T } trait Cyclic1[A <: Param[A]] // works -trait Cyclic2[A <: Abs { type T <: A }] -trait Cyclic3 { type A <: Abs { type T = A } } +trait Cyclic2[A <: Abs { type T <: A }] +trait Cyclic3 { type A <: Abs { type T = A } } trait Cyclic4 { type A <: Param[A] } // works -trait Cyclic5 { type AA <: Abs; type A <: AA { type T = A } } +trait Cyclic5 { type AA <: Abs; type A <: AA { type T = A } } trait IterableTemplate { type Elem type Constr <: IterableTemplate type ConstrOf[A] = Constr { type Elem = A } - + def iterator: Iterator[Elem] - + def map [B] (f: Elem => B): ConstrOf[B] - + def foreach(f: Elem => Unit) = iterator.foreach(f) } trait Iterable[A] extends IterableTemplate { self => - type Elem + type Elem type Constr <: Iterable[A] { type Constr <: Iterable.this.Constr } } diff --git a/test/files/pos/depmet_implicit_chaining_zw.scala b/test/files/pos/depmet_implicit_chaining_zw.scala index e3a145ab38..93da3b0f8e 100644 --- a/test/files/pos/depmet_implicit_chaining_zw.scala +++ b/test/files/pos/depmet_implicit_chaining_zw.scala @@ -15,7 +15,7 @@ object ZipWith { type T = Stream[S] => zWith.T // dependent types replace the associated types functionality } - // can't use implicitly[ZipWith[Succ[Succ[Zero]], Int => String => Boolean]], + // can't use implicitly[ZipWith[Succ[Succ[Zero]], Int => String => Boolean]], // since that will chop of the {type T = ... } refinement in adapt (pt = ZipWith[Succ[Succ[Zero]], Int => String => Boolean]) // this works // def zipWith(implicit zw: ZipWith[Succ[Succ[Zero]], Int => String => Boolean]): zw.T = zw.x diff --git a/test/files/pos/depmet_implicit_norm_ret.scala b/test/files/pos/depmet_implicit_norm_ret.scala index 4cdb2931c6..bafd2f7c51 100644 --- a/test/files/pos/depmet_implicit_norm_ret.scala +++ b/test/files/pos/depmet_implicit_norm_ret.scala @@ -1,29 +1,29 @@ object Test{ def ?[S <: AnyRef](implicit w : S) : w.type = w - + // fallback, lower priority (overloading rules apply: pick alternative in subclass lowest in subtyping lattice) class ZipWithDefault { implicit def ZeroZipWith[S] = new ZipWith[S] { type T = Stream[S] - } + } } - + object ZipWith extends ZipWithDefault { // def apply[S: ZipWith](s : S) = ?[ZipWith[S]].zipWith(s) // TODO: bug return type should be inferred def apply[S](s : S)(implicit zw: ZipWith[S]): zw.T = zw.zipWith(s) implicit def SuccZipWith[S,R](implicit zWith : ZipWith[R]) = new ZipWith[S => R] { type T = Stream[S] => zWith.T // dependent types replace the associated types functionality - } + } } - + trait ZipWith[S] { type T def zipWith : S => T = error("") } - + // bug: inferred return type = (Stream[A]) => java.lang.Object with Test.ZipWith[B]{type T = Stream[B]}#T // this seems incompatible with vvvvvvvvvvvvvvvvvvvvvv -- #3731 - def map[A,B](f : A => B) /* : Stream[A] => Stream[B]*/ = ZipWith(f) - val tst: Stream[Int] = map{x: String => x.length}(Stream("a")) -}
\ No newline at end of file + def map[A,B](f : A => B) /* : Stream[A] => Stream[B]*/ = ZipWith(f) + val tst: Stream[Int] = map{x: String => x.length}(Stream("a")) +}
\ No newline at end of file diff --git a/test/files/pos/depmet_implicit_oopsla_session.scala b/test/files/pos/depmet_implicit_oopsla_session.scala index 21588a56ad..e2c67d7c32 100644 --- a/test/files/pos/depmet_implicit_oopsla_session.scala +++ b/test/files/pos/depmet_implicit_oopsla_session.scala @@ -11,19 +11,19 @@ object Sessions { def run(p: Stop, dp: Stop): Unit = {} } - implicit def InDual[A, B](implicit sessionDIn: Session[B]) = + implicit def InDual[A, B](implicit sessionDIn: Session[B]) = new Session[In[A, B]] { type Dual = Out[A, sessionDIn.Dual] - def run(p: In[A, B], dp: Dual): Unit = + def run(p: In[A, B], dp: Dual): Unit = sessionDIn.run(p.func(dp.x), dp.y) } - implicit def OutDual[A, B](implicit sessionDOut: Session[B]) = + implicit def OutDual[A, B](implicit sessionDOut: Session[B]) = new Session[Out[A, B]] { type Dual = In[A, sessionDOut.Dual] - def run(p: Out[A, B], dp: Dual): Unit = + def run(p: Out[A, B], dp: Dual): Unit = sessionDOut.run(p.y, dp.func(p.x)) } @@ -32,7 +32,7 @@ object Sessions { sealed case class Out[+A, +B](x: A, y: B) def addServer = - In{x: Int => + In{x: Int => In{y: Int => System.out.println("Thinking") Out(x+y, Stop())}} @@ -48,7 +48,7 @@ object Sessions { // def runSession[S, D](p: S, dp: D)(implicit s: Session[S]#HasDual[D]) = // s.run(p, dp) - // + // // def runSession[S, D](p: S, dp: D)(implicit s: Session[S]{type Dual=D}) = // s.run(p, dp) diff --git a/test/files/pos/depmet_implicit_oopsla_session_2.scala b/test/files/pos/depmet_implicit_oopsla_session_2.scala index 5c3b78e3f5..8d7daa6dc6 100644 --- a/test/files/pos/depmet_implicit_oopsla_session_2.scala +++ b/test/files/pos/depmet_implicit_oopsla_session_2.scala @@ -36,7 +36,7 @@ object Sessions { implicit def InDual[Data, Cont](implicit cont: Session[Cont]) = new Session[In[Data, Cont]] { type Dual = Out[Data, cont.Dual] - def run(self: Self, dual: Dual): Unit = + def run(self: Self, dual: Dual): Unit = cont.run(self.recv(dual.data), dual.cont) } @@ -46,13 +46,13 @@ object Sessions { implicit def OutDual[Data, Cont](implicit cont: Session[Cont]) = new Session[Out[Data, Cont]] { type Dual = In[Data, cont.Dual] - def run(self: Self, dual: Dual): Unit = + def run(self: Self, dual: Dual): Unit = cont.run(self.cont, dual.recv(self.data)) } // a concrete session def addServer = - In{x: Int => + In{x: Int => In{y: Int => System.out.println("Thinking") Out(x+y, Stop())}} @@ -71,7 +71,7 @@ object Sessions { // def runSession[S, D](p: S, dp: D)(implicit s: Session[S]#HasDual[D]) = // s.run(p, dp) - // + // // def runSession[S, D](p: S, dp: D)(implicit s: Session[S]{type Dual=D}) = // s.run(p, dp) diff --git a/test/files/pos/depmet_implicit_oopsla_session_simpler.scala b/test/files/pos/depmet_implicit_oopsla_session_simpler.scala index 37bc0958d3..d2986ef56f 100644 --- a/test/files/pos/depmet_implicit_oopsla_session_simpler.scala +++ b/test/files/pos/depmet_implicit_oopsla_session_simpler.scala @@ -14,7 +14,7 @@ object Sessions { // can't write B <: Session{type Dual = BDual} due to limitations in type inference algorithm // (type variables cannot occur on both sides of <:) // using B#Dual instead of BDual is too imprecise, since it is disconnected from the actual argument that is passed for B - // would be nice if we could introduce a universal quantification over BDual that is not part of the + // would be nice if we could introduce a universal quantification over BDual that is not part of the // type parameter list sealed case class In[A, B <: Session, BDual <: Session](recv: A => B)(implicit dual: B <:< Session{type Dual=BDual}) extends Session { type Dual = Out[A, BDual] @@ -29,7 +29,7 @@ object Sessions { } def addServer = - In{x: Int => + In{x: Int => In{y: Int => System.out.println("Thinking") Out(x+y, Stop())}} diff --git a/test/files/pos/depmet_implicit_oopsla_zipwith.scala b/test/files/pos/depmet_implicit_oopsla_zipwith.scala index c76d02c1ae..fe69802d26 100644 --- a/test/files/pos/depmet_implicit_oopsla_zipwith.scala +++ b/test/files/pos/depmet_implicit_oopsla_zipwith.scala @@ -15,7 +15,7 @@ object ZipWith { def manyApp = n => xs => xs } - implicit def SuccZipWith[N, S, R](implicit zw: ZipWith[N, R]) = + implicit def SuccZipWith[N, S, R](implicit zw: ZipWith[N, R]) = new ZipWith[Succ[N],S => R] { type T = Stream[S] => zw.T @@ -33,12 +33,12 @@ object ZipWith { object Test { def zWith[N, S](n: N, s: S)(implicit zw: ZipWith[N, S]): zw.T = zw.zipWith(n)(s) - def zipWith0: Stream[Int] = zWith(Zero(),0) + def zipWith0: Stream[Int] = zWith(Zero(),0) // (Stream[A]) => java.lang.Object with ZipWith[Zero,B]{type T = Stream[B]}#T // should normalise to: Stream[A] => Stream[B] def map[A, B](f: A => B) = zWith(Succ(Zero()),f) - + def zipWith3[A, B, C, D](f: A => B => C => D) = //: Stream[A] => Stream[B] => Stream[C] => Stream[D] = // BUG why do we need a return type? zWith(Succ(Succ(Succ(Zero()))),f) }
\ No newline at end of file diff --git a/test/files/pos/depmet_implicit_tpbetareduce.scala b/test/files/pos/depmet_implicit_tpbetareduce.scala index 35d260683b..c0b9b4e8e4 100644 --- a/test/files/pos/depmet_implicit_tpbetareduce.scala +++ b/test/files/pos/depmet_implicit_tpbetareduce.scala @@ -1,10 +1,10 @@ trait HOSeq { trait Accumulator[+coll[x], elT] trait Iterable[+t] { - type m[+x] + type m[+x] def accumulator[t]: Accumulator[m, t] } - implicit def listAccumulator[elT]: Accumulator[List, elT] = new Accumulator[List, elT] {} + implicit def listAccumulator[elT]: Accumulator[List, elT] = new Accumulator[List, elT] {} trait List[+t] extends Iterable[t] { type m[+x] = List[x] def accumulator[t]: Accumulator[List, t] = listAccumulator[t] diff --git a/test/files/pos/elidable-tparams.scala b/test/files/pos/elidable-tparams.scala index 23b1cba615..e47951f61d 100644 --- a/test/files/pos/elidable-tparams.scala +++ b/test/files/pos/elidable-tparams.scala @@ -3,7 +3,7 @@ import elidable._ class ElidableCrashTest { trait My - + @elidable(MINIMUM) def foo[a >: My <: My]: scala.Unit = () foo[My] // crash diff --git a/test/files/pos/gadt-gilles.scala b/test/files/pos/gadt-gilles.scala index 662be9017d..309168c1e0 100644 --- a/test/files/pos/gadt-gilles.scala +++ b/test/files/pos/gadt-gilles.scala @@ -6,7 +6,7 @@ object Test { val x: A[C with D] = new B[C, D] {} val y: A[C with D] = x match { case b: B[u, v] => (new B[u, v] {}): A[u with v] } // OK - + def f[T, U](p: A[T with U]): A[T with U] = p match { case b: B[u, v] => new A[u with v] {} } // Not OK } diff --git a/test/files/pos/gadts2.scala b/test/files/pos/gadts2.scala index fc2a7e4333..2263cf13a6 100644 --- a/test/files/pos/gadts2.scala +++ b/test/files/pos/gadts2.scala @@ -9,8 +9,8 @@ object Test { final case class NumTerm(val n: Number) extends Term[Number] def f[a](t: Term[a], c: Cell[a]) { - t match { - case NumTerm(n) => c.x = MyDouble(1.0) + t match { + case NumTerm(n) => c.x = MyDouble(1.0) } } diff --git a/test/files/pos/generic-sigs.scala b/test/files/pos/generic-sigs.scala index 533163373b..40ec044656 100644 --- a/test/files/pos/generic-sigs.scala +++ b/test/files/pos/generic-sigs.scala @@ -4,7 +4,7 @@ object A { def f3(x: Class[_ <: Int]) = x def f4(x: Class[_ <: String with Int]) = x def f5(x: Class[_ <: Int with String]) = x - + class Bippy[T] def f6(x: Int) = new Bippy[t forSome { type t <: Int }] def f7(x: T forSome { type T <: Float }) = x @@ -12,7 +12,7 @@ object A { def f9(x: T forSome { type T <: runtime.BoxedUnit }) = x def f10(x: Int) = new Bippy[t forSome { type t <: Unit }] def f11(x: Int) = new Bippy[t forSome { type t >: Null }] - + class Boppy[+T1,-T2] def g1 = new Boppy[t forSome { type t <: Int }, u forSome { type u <: String }] }
\ No newline at end of file diff --git a/test/files/pos/gosh.scala b/test/files/pos/gosh.scala index 98fae8a31e..427df4d33c 100644 --- a/test/files/pos/gosh.scala +++ b/test/files/pos/gosh.scala @@ -7,35 +7,35 @@ object ShapeTest extends App { abstract class Shape { def draw(): Unit } - + class Line(s: Point, e: Point) extends Shape { def draw() { Console.println("draw line " + s + "," + e) } } - + abstract class Foo { type T <: Object - + def show(o: T): Unit def print() { Console.println("in Foo") } } - + abstract class ShapeFoo extends Foo { type T <: Shape def show(o: T) { o.draw() } override def print() { Console.println("in ShapeFoo") } } - + class LineFoo extends ShapeFoo { type T = Line override def print() { Console.println("in LineFoo") } } - + val p1 = new Point(1,4) val p2 = new Point(12, 28) - + val l1 = new Line(p1, p2) - + val l = new ShapeFoo { // ** // type T = Line // ** // override def print() { Console.println("in LineFoo") } // ** // diff --git a/test/files/pos/gui.scala b/test/files/pos/gui.scala index 3b4f49cf55..322e0a6e22 100644 --- a/test/files/pos/gui.scala +++ b/test/files/pos/gui.scala @@ -2,7 +2,7 @@ object Geom { trait Shape case class Point(x: Int, y: Int) extends Shape case class Rectangle(ll: Point, ur: Point) extends Shape { - def inset(delta: Int) = + def inset(delta: Int) = Rectangle(Point(ll.x - delta, ll.y - delta), Point(ur.x + delta, ur.y + delta)); } } @@ -20,7 +20,7 @@ trait Screen { } object DummyScreen extends Screen { - def drawRect(r: Geom.Rectangle, c: Color) { + def drawRect(r: Geom.Rectangle, c: Color) { Console.println("draw " + r + " with " + c) } def fillRect(r: Geom.Rectangle, c: Color) { @@ -55,7 +55,7 @@ object GUI { def mouseDown(p: Geom.Point): Unit } - abstract class Button(scr: Screen, p: Geom.Point, name: String) + abstract class Button(scr: Screen, p: Geom.Point, name: String) extends Glyph with MouseCtl { var enabled: Boolean = false val label = new Label(scr, p, name) @@ -86,7 +86,7 @@ object GUIClient { def quit() { Console.println("application exited") } } - class QuitButton (scr: Screen, p: Geom.Point, name: String, a: App) + class QuitButton (scr: Screen, p: Geom.Point, name: String, a: App) extends GUI.Button(scr, p, name) { def doit() { a.quit() } } diff --git a/test/files/pos/hk-infer.scala b/test/files/pos/hk-infer.scala index 30e3476404..7834282bf2 100644 --- a/test/files/pos/hk-infer.scala +++ b/test/files/pos/hk-infer.scala @@ -31,7 +31,7 @@ object DoesWorkHK { def BOOP(ys: Seq[M[_]]) = new Booper[M](xs ++ ys) } implicit def mkBoop[M[_]](xs: Seq[M[_]]) = new Booper[M](xs) - + def f1 = x BOOP y BOOP x1 BOOP x2 } diff --git a/test/files/pos/hkarray.scala b/test/files/pos/hkarray.scala index af1160300a..3faae180f4 100644 --- a/test/files/pos/hkarray.scala +++ b/test/files/pos/hkarray.scala @@ -1,5 +1,5 @@ trait Foo[CC[_]] { } class Bip { - val x = new Foo[Array] { } + val x = new Foo[Array] { } }
\ No newline at end of file diff --git a/test/files/pos/imp2-pos.scala b/test/files/pos/imp2-pos.scala index 5460c60015..407b07f3fd 100644 --- a/test/files/pos/imp2-pos.scala +++ b/test/files/pos/imp2-pos.scala @@ -1,5 +1,5 @@ object Test { - import collection.mutable._ + import collection.mutable._ import collection.mutable._ val x = new HashMap } diff --git a/test/files/pos/implicit-infix-ops.scala b/test/files/pos/implicit-infix-ops.scala index 66f3718e86..d7519e6340 100644 --- a/test/files/pos/implicit-infix-ops.scala +++ b/test/files/pos/implicit-infix-ops.scala @@ -1,7 +1,7 @@ object Test { import Ordering.Implicits._ import Numeric.Implicits._ - + def f1[T: Numeric](x: T, y: T, z: T) = x + y + z def f2[T: Ordering](x: T, y: T, z: T) = if (x < y) (z > y) else (x < z) } @@ -9,7 +9,7 @@ object Test { object Int { import Ordering.Implicits._ import math.Integral.Implicits._ - + def f1[T: Integral](x: T, y: T, z: T) = (x + y + z) / z def f2[T: Ordering](x: T, y: T, z: T) = if (x < y) (z > y) else (x < z) } @@ -17,7 +17,7 @@ object Int { object Frac { import Ordering.Implicits._ import math.Fractional.Implicits._ - + def f1[T: Fractional](x: T, y: T, z: T) = (x + y + z) / z def f2[T: Ordering](x: T, y: T, z: T) = if (x < y) (z > y) else (x < z) }
\ No newline at end of file diff --git a/test/files/pos/implicits.scala b/test/files/pos/implicits.scala index 960c265e55..2c01dd0ba8 100644 --- a/test/files/pos/implicits.scala +++ b/test/files/pos/implicits.scala @@ -45,7 +45,7 @@ object Test1625 { implicit def byName[A](x: =>A) = new Wrapped(x) implicit def byVal[A](x: A) = x - + def main(args: Array[String]) = { // val res:Wrapped = 7 // works @@ -57,7 +57,7 @@ object Test1625 { } object Test2188 { - implicit def toJavaList[A: ClassManifest](t:collection.Seq[A]):java.util.List[A] = java.util.Arrays.asList(t.toArray:_*) + implicit def toJavaList[A: ClassManifest](t:collection.Seq[A]):java.util.List[A] = java.util.Arrays.asList(t.toArray:_*) val x: java.util.List[String] = List("foo") } @@ -67,21 +67,21 @@ object TestNumericWidening { val x: java.lang.Long = y } -// #2709 -package foo2709 { - class A - class B - - package object bar { - implicit def a2b(a: A): B = new B - } - - package bar { - object test { - new A: B - } - } -} +// #2709 +package foo2709 { + class A + class B + + package object bar { + implicit def a2b(a: A): B = new B + } + + package bar { + object test { + new A: B + } + } +} // Problem with specs object specsProblem { diff --git a/test/files/pos/imports-pos.scala b/test/files/pos/imports-pos.scala index f6a55e5e07..5f70a5d2da 100644 --- a/test/files/pos/imports-pos.scala +++ b/test/files/pos/imports-pos.scala @@ -7,10 +7,10 @@ object test { val foo = 1; - p("hello"); print("world"); S.out.println("!"); + p("hello"); print("world"); S.out.println("!"); S.out.flush(); } object test1 { import test._; foo -} +} diff --git a/test/files/pos/infer2-pos.scala b/test/files/pos/infer2-pos.scala index e065219a80..06d0f5814f 100644 --- a/test/files/pos/infer2-pos.scala +++ b/test/files/pos/infer2-pos.scala @@ -5,4 +5,4 @@ case class nil[T] extends Lst[T] object test { Console.println(cons(1, nil())) } - + diff --git a/test/files/pos/inferbroadtype.scala b/test/files/pos/inferbroadtype.scala index de8f7aa184..467bd0f186 100644 --- a/test/files/pos/inferbroadtype.scala +++ b/test/files/pos/inferbroadtype.scala @@ -2,7 +2,7 @@ object Test { abstract class Base { val changesBaseClasses: Boolean } class Concrete extends Base { val changesBaseClasses = true } def getBase : Base = new Concrete - + var c = new Base { val changesBaseClasses = true } c = getBase } diff --git a/test/files/pos/java-access-pos/J.java b/test/files/pos/java-access-pos/J.java index b6bc3363a1..4f2024673c 100644 --- a/test/files/pos/java-access-pos/J.java +++ b/test/files/pos/java-access-pos/J.java @@ -4,11 +4,11 @@ public abstract class J { public J() { } J(int x1) { } protected J(int x1, int x2) { } - + abstract void packageAbstract(); protected abstract void protectedAbstract(); public abstract void publicAbstract(); - + void packageConcrete() { return; } protected void protectedConcrete() { return; } public void publicConcrete() { return; } diff --git a/test/files/pos/java-access-pos/S1.scala b/test/files/pos/java-access-pos/S1.scala index 10730e3a70..cc739d9555 100644 --- a/test/files/pos/java-access-pos/S1.scala +++ b/test/files/pos/java-access-pos/S1.scala @@ -6,7 +6,7 @@ class S1 extends J { override private[b] def packageAbstract() = () override protected[b] def protectedAbstract() = () override def publicAbstract() = () - + override private[b] def packageConcrete() = () override protected[b] def protectedConcrete() = () override def publicConcrete() = () @@ -26,7 +26,7 @@ class S3 extends J { protected[b] def packageAbstract() = () protected[b] def protectedAbstract() = () def publicAbstract() = () - + override protected[b] def packageConcrete() = () override protected[b] def protectedConcrete() = () override def publicConcrete() = () @@ -37,7 +37,7 @@ class S4 extends J { private[a] def packageAbstract() = () protected[a] def protectedAbstract() = () def publicAbstract() = () - + override private[a] def packageConcrete() = () override protected[a] def protectedConcrete() = () override def publicConcrete() = () @@ -48,14 +48,14 @@ class S5 extends J { def packageAbstract() = () def protectedAbstract() = () def publicAbstract() = () - + override def packageConcrete() = () override def protectedConcrete() = () override def publicConcrete() = () } /** Constructors. */ -class S6 extends J(1) { +class S6 extends J(1) { def packageAbstract() = () def protectedAbstract() = () def publicAbstract() = () diff --git a/test/files/pos/javaReadsSigs/fromjava.java b/test/files/pos/javaReadsSigs/fromjava.java index 745fb84efd..5d82ae43f3 100644 --- a/test/files/pos/javaReadsSigs/fromjava.java +++ b/test/files/pos/javaReadsSigs/fromjava.java @@ -22,11 +22,11 @@ class B { }; class Contra { // Not an Ordering<Character>. static Ordering<Object> charOrd = scala.math.Ordering$Char$.MODULE$; - + public boolean useCharOrd() { return charOrd.compare(new Object(), new Object()) == 0; } - + static Numeric<?> intNum = scala.math.Numeric$IntIsIntegral$.MODULE$; } @@ -36,13 +36,13 @@ public class fromjava { return null; } }; - + public static Function1<Tuple2<? extends Object, B>, B> f2 = new scala.runtime.AbstractFunction1<Tuple2<? extends Object, B>, B>() { public B apply(Tuple2<? extends Object, B> tup) { return tup._2(); } }; - + public static String vector(Vector<String> x) { Vector<String> y = x.take(2); return y.head(); diff --git a/test/files/pos/lambdalift.scala b/test/files/pos/lambdalift.scala index bc997d6f81..10bbf3ac12 100644 --- a/test/files/pos/lambdalift.scala +++ b/test/files/pos/lambdalift.scala @@ -11,5 +11,5 @@ object test { def h() = x; } g() + new inner().g(); - } + } } diff --git a/test/files/pos/listpattern.scala b/test/files/pos/listpattern.scala index 47145bf037..b64068474c 100644 --- a/test/files/pos/listpattern.scala +++ b/test/files/pos/listpattern.scala @@ -1,7 +1,7 @@ trait Value {} case class FloatValue(x: Double) extends Value object Test { - def applyNumeric(op: (Double, Double) => Double): + def applyNumeric(op: (Double, Double) => Double): PartialFunction[List[Value], Value] = { case List(FloatValue(x), FloatValue(y)) => FloatValue(op(x, y)) } diff --git a/test/files/pos/looping-jsig.scala b/test/files/pos/looping-jsig.scala index 6e3313c463..e2d9e76229 100644 --- a/test/files/pos/looping-jsig.scala +++ b/test/files/pos/looping-jsig.scala @@ -1,15 +1,15 @@ import scala.collection.mutable._ trait BugTrack { - trait B[+T] + trait B[+T] val cache : HashMap[A[_], B[_]] = HashMap.empty - def A[T](f: Int => B[T]): A[T] + def A[T](f: Int => B[T]): A[T] = new A[T]{def apply(in: Int) = f(in)} - + abstract class A[+T] extends (Int => B[T]) { def giveMeSame = this - } + } def amethod[T](p: =>A[T]): A[T] = A(in => cache.get(p) match { case Some(res) => res diff --git a/test/files/pos/michel6.scala b/test/files/pos/michel6.scala index b32e8bed75..f312bf1796 100644 --- a/test/files/pos/michel6.scala +++ b/test/files/pos/michel6.scala @@ -1,6 +1,6 @@ object M { def f(x: Int): Unit = {} - + def g(): Int => Unit = if (0 == 0) f else g() } diff --git a/test/files/pos/needstypeearly.scala b/test/files/pos/needstypeearly.scala index a90c2575f2..bd93b5c45d 100644 --- a/test/files/pos/needstypeearly.scala +++ b/test/files/pos/needstypeearly.scala @@ -1,4 +1,4 @@ -abstract class NeedsXEarly { - val x: Int +abstract class NeedsXEarly { + val x: Int } class Foo extends { val x = 1 } with NeedsXEarly diff --git a/test/files/pos/nothing_manifest_disambig.scala b/test/files/pos/nothing_manifest_disambig.scala index 9a3db0c6d4..076742033f 100644 --- a/test/files/pos/nothing_manifest_disambig.scala +++ b/test/files/pos/nothing_manifest_disambig.scala @@ -1,10 +1,10 @@ object Test { def mani[T: Manifest](xs: T) = xs mani(List()) - + def listElMani[T: Manifest](xs: List[T]) = xs listElMani(List()) - + def foo[A, C](m : C)(implicit ev: C <:< Traversable[A], mani: Manifest[A]): (C, A, Manifest[A]) = (m, m.head, mani) - foo(List(1,2,3)) + foo(List(1,2,3)) }
\ No newline at end of file diff --git a/test/files/pos/nullary.scala b/test/files/pos/nullary.scala index 614fcdf480..8e5a834012 100644 --- a/test/files/pos/nullary.scala +++ b/test/files/pos/nullary.scala @@ -2,7 +2,7 @@ abstract class NullaryTest[T, m[s]] { def nullary: String = "a" val x = nullary - def nullary2: T + def nullary2: T val x2 = nullary2 def nullary3: m[T] @@ -16,5 +16,5 @@ class Concrete extends NullaryTest[Int, List] { object test { (new Concrete).nullary2 - (new Concrete).nullary3 + (new Concrete).nullary3 } diff --git a/test/files/pos/nullary_poly.scala b/test/files/pos/nullary_poly.scala index d2e1e127a1..4de7235a1c 100644 --- a/test/files/pos/nullary_poly.scala +++ b/test/files/pos/nullary_poly.scala @@ -2,9 +2,9 @@ class A { // built-in synchronized {} - + val x: String = "a".asInstanceOf[String] - + // user-defined: def polyNullary[T]: List[T] = Nil } diff --git a/test/files/pos/partialfun.scala b/test/files/pos/partialfun.scala index 9f32a22023..d8971e56fb 100644 --- a/test/files/pos/partialfun.scala +++ b/test/files/pos/partialfun.scala @@ -1,6 +1,6 @@ object partialfun { - def applyPartial[b](f: PartialFunction[Option[String], b])(x: Option[String]) = + def applyPartial[b](f: PartialFunction[Option[String], b])(x: Option[String]) = if (f.isDefinedAt(x)) f(x) else "<undefined>"; applyPartial { diff --git a/test/files/pos/pat_gilles.scala b/test/files/pos/pat_gilles.scala index 704d5b9c00..567d700eba 100644 --- a/test/files/pos/pat_gilles.scala +++ b/test/files/pos/pat_gilles.scala @@ -1,7 +1,7 @@ abstract class Table2 { - val x: Any => Unit = { zz:Any => + val x: Any => Unit = { zz:Any => zz match { case Table2.CellUpdated(row, column) => val foo = Table2.CellUpdated(2,2) diff --git a/test/files/pos/propagate.scala b/test/files/pos/propagate.scala index 84f4f5d6d2..a7f9d6ce6d 100644 --- a/test/files/pos/propagate.scala +++ b/test/files/pos/propagate.scala @@ -14,4 +14,4 @@ class C { - + diff --git a/test/files/pos/return_thistype.scala b/test/files/pos/return_thistype.scala index c0736c0ad9..f164e06cc0 100644 --- a/test/files/pos/return_thistype.scala +++ b/test/files/pos/return_thistype.scala @@ -1,8 +1,8 @@ // tests transformation of return type in typedTypeApply (see also tcpoly_gm.scala) -class As { - class A { +class As { + class A { def foo: A.this.type = bar.asInstanceOf[A.this.type] def foo2: this.type = bar.asInstanceOf[this.type] - def bar: A = null + def bar: A = null } } diff --git a/test/files/pos/scala-singleton.scala b/test/files/pos/scala-singleton.scala index 08038db93b..5e0baa0cb2 100644 --- a/test/files/pos/scala-singleton.scala +++ b/test/files/pos/scala-singleton.scala @@ -3,12 +3,12 @@ object Test { def f1(x: AnyRef with Singleton): AnyRef with Singleton = x def f2[T <: AnyRef with Singleton](x: T): T = x - + val x1: AnyRef with Singleton = "abc" val x2 = "def" final val x3 = "ghi" val x4: String = "jkl" - + // compiles... def narrow1(x: AnyRef): AnyRef with Singleton = x @@ -17,26 +17,26 @@ object Test { // fails, wait, what? This fails and narrow1 compiles? def narrow3(x: AnyRef): AnyRef with Singleton = x.asInstanceOf[AnyRef with Singleton] - + // ok def narrow4[T <: AnyRef](x: T): AnyRef with Singleton = x - + object imp { implicit def narrow4[T <: AnyRef](x: T): AnyRef with Singleton = x val x5: String = "mno" def imp1 = f1(x5) - + // f2(x5) // doesn't work but I think it should def imp2 = f2(narrow4(x5)) } - + def main(args: Array[String]): Unit = { // compiles f1(x1) f1(x2) f1(x3) f1(x4) - + f2(x1) // f2(x2) // f2(x3) // maybe this one should work diff --git a/test/files/pos/scoping1.scala b/test/files/pos/scoping1.scala index 9fe1b5f3e5..548f154b6b 100644 --- a/test/files/pos/scoping1.scala +++ b/test/files/pos/scoping1.scala @@ -9,4 +9,4 @@ object This extends App { def foo() = () } val c: C = new D -} +} diff --git a/test/files/pos/selftails.scala b/test/files/pos/selftails.scala index a4253b80c7..7c58543747 100644 --- a/test/files/pos/selftails.scala +++ b/test/files/pos/selftails.scala @@ -1,10 +1,10 @@ package net.liftweb.util - + /** * This trait adds functionality to Scala standard types */ trait BasicTypesHelpers { self: StringHelpers with ControlHelpers => - + /** * Compare two arrays of Byte for byte equality. * @return true if two Byte arrays contain the same bytes @@ -19,5 +19,5 @@ trait BasicTypesHelpers { self: StringHelpers with ControlHelpers => } } -trait StringHelpers +trait StringHelpers trait ControlHelpers diff --git a/test/files/pos/seq-ordering.scala b/test/files/pos/seq-ordering.scala index 517d8ae8aa..8f1d293c40 100644 --- a/test/files/pos/seq-ordering.scala +++ b/test/files/pos/seq-ordering.scala @@ -2,7 +2,7 @@ import Ordering.Implicits._ class A { import Predef.{ implicitly => ? } - + ?[Ordering[List[Int]]] ?[Ordering[IndexedSeq[(Int, String)]]] ?[Ordering[Seq[Seq[Int]]]] diff --git a/test/files/pos/signatures/Test.java b/test/files/pos/signatures/Test.java index 3d1e3756a7..78c196526b 100644 --- a/test/files/pos/signatures/Test.java +++ b/test/files/pos/signatures/Test.java @@ -3,7 +3,7 @@ import test.Outer; /* Test correct generation of java signatures. The Outer class should not * have a Java signature attribute for the inner method definition. Trait - * Mutable should have one, even though it is also a nested definition. + * Mutable should have one, even though it is also a nested definition. * (but for classes there is a way to tell about nesting to the JVM). */ class Test { diff --git a/test/files/pos/signatures/sig.scala b/test/files/pos/signatures/sig.scala index 4236f27bed..3feb9c456a 100644 --- a/test/files/pos/signatures/sig.scala +++ b/test/files/pos/signatures/sig.scala @@ -1,7 +1,7 @@ package test /* Tests correct generation of Java signatures. The local method 'bar' should - * not get a generic signature, as it may refer to type parameters of the enclosing + * not get a generic signature, as it may refer to type parameters of the enclosing * method, and the JVM does not know about nested methods. */ class Outer { diff --git a/test/files/pos/spec-Function1.scala b/test/files/pos/spec-Function1.scala index 8d961c454d..7bdcd072b2 100644 --- a/test/files/pos/spec-Function1.scala +++ b/test/files/pos/spec-Function1.scala @@ -35,11 +35,11 @@ package scala trait Function1[@specialized -T1, @specialized +R] extends AnyRef { self => def apply(v1:T1): R override def toString() = "<function>" - + /** (f compose g)(x) == f(g(x)) */ def compose[A](g: A => T1): A => R = { x => apply(g(x)) } - + /** (f andThen g)(x) == g(f(x)) */ def andThen[A](g: R => A): T1 => A = { x => g(apply(x)) } diff --git a/test/files/pos/spec-arrays.scala b/test/files/pos/spec-arrays.scala index 96c75dd8de..84f6eef071 100644 --- a/test/files/pos/spec-arrays.scala +++ b/test/files/pos/spec-arrays.scala @@ -20,7 +20,7 @@ abstract class AbsArray[T] { def updateBoolean(idx: Int, elem: Boolean) = update(idx, elem.asInstanceOf[T]) def applyObject(idx: Int): Object = apply(idx).asInstanceOf[Object] def updateObject(idx: Int, elem: Object) = update(idx, elem.asInstanceOf[T]) -} +} final class IntArray(arr: Array[Int]) extends AbsArray[Int] { def apply(idx: Int): Int = applyInt(idx) @@ -64,7 +64,7 @@ class ScalaSpecTest extends Test { while (i < arr.length) { acc = acc + arr.applyInt(i); i += 1 } acc } - + def modify(j: Int) = { val base = j * 100 % 1000 var i = 0 @@ -74,7 +74,7 @@ class ScalaSpecTest extends Test { } } } - + class ScalaSpec2Test extends Test { val arr: AbsArray[Int] = new IntArray(new Array[Int](1000)) @@ -84,7 +84,7 @@ class ScalaSpec2Test extends Test { while (i < arr.length) { acc = acc + arr.applyInt(i); i += 1 } acc } - + def modify(j: Int) = { val base = j * 100 % 1000 var i = 0 @@ -94,7 +94,7 @@ class ScalaSpec2Test extends Test { } } } - + class ScalaWrapTest extends Test { val arr: AbsArray[Int] = new ArraySeq(new Array[Int](1000)) @@ -104,7 +104,7 @@ class ScalaWrapTest extends Test { while (i < arr.length) { acc = acc + arr.applyInt(i); i += 1 } acc } - + def modify(j: Int) = { val base = j * 100 % 1000 var i = 0 @@ -114,7 +114,7 @@ class ScalaWrapTest extends Test { } } } - + class ScalaGenTest extends Test { val arr: AbsArray[Integer] = new ArraySeq(new Array[Integer](1000)) for (i <- 0 until arr.length) arr(i) = new Integer(0) @@ -125,7 +125,7 @@ class ScalaGenTest extends Test { while (i < arr.length) { acc = acc + arr.apply(i).intValue; i += 1 } acc } - + def modify(j: Int) = { val base = j * 100 % 1000 var i = 0 @@ -135,7 +135,7 @@ class ScalaGenTest extends Test { } } } - + class JavaTest extends Test { val arr = new Array[Int](1000) @@ -145,7 +145,7 @@ class JavaTest extends Test { while (i < arr.length) { acc = acc + arr(i); i += 1 } acc } - + def modify(j: Int) = { val base = j * 100 % 1000 var i = 0 @@ -166,7 +166,7 @@ class ScalaSpec3Test extends Test { while (i < arr.length) { acc = acc + arr(i); i += 1 } acc } - + def modify(j: Int) = { val base = j * 100 % 1000 var i = 0 @@ -188,25 +188,25 @@ object TestSpec extends scala.testing.Benchmark { (new ScalaSpecTest).run() } } - + object TestSpec2 extends scala.testing.Benchmark { def run() { (new ScalaSpec2Test).run() } } - + object TestGen extends scala.testing.Benchmark { def run() { (new ScalaGenTest).run() } } - + object TestWrap extends scala.testing.Benchmark { def run() { (new ScalaWrapTest).run() } } - + object TestSpec3 extends scala.testing.Benchmark { def run() { (new ScalaSpec3Test).run() diff --git a/test/files/pos/spec-asseenfrom.scala b/test/files/pos/spec-asseenfrom.scala index edd801071a..cf20fc5ffa 100644 --- a/test/files/pos/spec-asseenfrom.scala +++ b/test/files/pos/spec-asseenfrom.scala @@ -1,4 +1,4 @@ -class Automaton[@specialized(Double) W,State] { +class Automaton[@specialized(Double) W,State] { def finalWeight(s: State): W = error("todo"); diff --git a/test/files/pos/spec-cyclic.scala b/test/files/pos/spec-cyclic.scala index 65da297989..b983caa6db 100644 --- a/test/files/pos/spec-cyclic.scala +++ b/test/files/pos/spec-cyclic.scala @@ -6,18 +6,18 @@ trait MyPartialFunction[-A, +B] extends AnyRef with AbsFun[A, B] trait ColMap[A, +B] extends MyPartialFunction[A, B] /*with Collection[(A, B)] */ -trait ColSorted[K,+A] extends ColRanged[K,A] +trait ColSorted[K,+A] extends ColRanged[K,A] -trait ColSortedMap[K,+E] extends ColMap[K,E] with ColSorted[K,Tuple2[K,E]] +trait ColSortedMap[K,+E] extends ColMap[K,E] with ColSorted[K,Tuple2[K,E]] trait MutMap[A, B] extends AnyRef with ColMap[A, B] -trait ColRanged[K, +A] //extends Iterable[A] +trait ColRanged[K, +A] //extends Iterable[A] trait JclRanged[K,A] extends ColRanged[K,A] //with MutableIterable[A] { -trait JclMap[K,E] extends /*collection.jcl.MutableIterable[Tuple2[K,E]] with*/ MutMap[K,E] +trait JclMap[K,E] extends /*collection.jcl.MutableIterable[Tuple2[K,E]] with*/ MutMap[K,E] trait JclSorted[K,A] extends ColSorted[K,A] with JclRanged[K,A] diff --git a/test/files/pos/spec-funs.scala b/test/files/pos/spec-funs.scala index 5fea5e9560..9acc5054c9 100644 --- a/test/files/pos/spec-funs.scala +++ b/test/files/pos/spec-funs.scala @@ -19,7 +19,7 @@ final class IntTest { val xs = new Array[Int](10000) val f = new AbsFunction1[Int, Int] { def apply(x: Int): Int = x * x - } + } for (j <- 0 until niters) { transF(xs, f) } diff --git a/test/files/pos/spec-params.scala b/test/files/pos/spec-params.scala index 33a252120c..f522512846 100644 --- a/test/files/pos/spec-params.scala +++ b/test/files/pos/spec-params.scala @@ -10,7 +10,7 @@ class Foo[@specialized A: ClassManifest] { def m2[@specialized B <: String](x: B) = x.concat("a") // conflicting in bounds, no mention of other spec members - // expect an overload here plus implementation in + // expect an overload here plus implementation in // compatible specialized subclasses def m3[@specialized B >: A](x: B) = () @@ -19,10 +19,10 @@ class Foo[@specialized A: ClassManifest] { // non-conflicting, expect a normalized overload implementation here def m5[@specialized B](x: B) = x - + // non-conflicting, expect a normalized implementation here // and specialized implementations for all expansions in specialized subclasses - def m6[@specialized B](x: B, y: A) = + def m6[@specialized B](x: B, y: A) = goal(y) def goal(x: A) = { diff --git a/test/files/pos/spec-sealed.scala b/test/files/pos/spec-sealed.scala index a5ee4e3c5f..5782930899 100644 --- a/test/files/pos/spec-sealed.scala +++ b/test/files/pos/spec-sealed.scala @@ -2,7 +2,7 @@ sealed abstract class MyList[@specialized +A] { def head: A def tail: MyList[A] - def ::[@specialized B >: A](x: B): MyList[B] = + def ::[@specialized B >: A](x: B): MyList[B] = new Cons[B](x, this) } @@ -19,7 +19,7 @@ case class Cons[@specialized a](private val hd: a, tl: MyList[a]) extends MyList abstract class IntList extends MyList[Int] object Main extends App { - val xs = 1 :: 2 :: 3 :: MyNil + val xs = 1 :: 2 :: 3 :: MyNil println(xs) } diff --git a/test/files/pos/spec-short.scala b/test/files/pos/spec-short.scala index 71e56a485a..94a8007c6e 100644 --- a/test/files/pos/spec-short.scala +++ b/test/files/pos/spec-short.scala @@ -5,7 +5,7 @@ abstract class AbsFun[@specialized T, @specialized U] { // abstract function, specialized def sum(xs: List[T]): Int - def prod(xs: List[T], mul: (Int, T) => Int): Int = + def prod(xs: List[T], mul: (Int, T) => Int): Int = (1 /: xs)(mul) // concrete function, not specialized @@ -18,9 +18,9 @@ abstract class AbsFun[@specialized T, @specialized U] { class Square extends AbsFun[Int, Int] { def apply(x: Int): Int = x * x - def sum(xs: List[Int]): Int = + def sum(xs: List[Int]): Int = (0 /: xs) (_ + _) - def abs(m: Int): Int = + def abs(m: Int): Int = sum(List(1, 2, 3)) } diff --git a/test/files/pos/spec-t3497.scala b/test/files/pos/spec-t3497.scala index ff054aa7de..6cc0e24f89 100644 --- a/test/files/pos/spec-t3497.scala +++ b/test/files/pos/spec-t3497.scala @@ -10,7 +10,7 @@ object B extends A[ Array[Byte], Int ] { return -1 } } - + return 0 } } diff --git a/test/files/pos/spec-tailcall.scala b/test/files/pos/spec-tailcall.scala index 703ec011ad..d91e2f59ce 100644 --- a/test/files/pos/spec-tailcall.scala +++ b/test/files/pos/spec-tailcall.scala @@ -1,5 +1,5 @@ class TailCall[@specialized T] { - final def dropLeft(n: Int, xs: List[T]): List[T] = + final def dropLeft(n: Int, xs: List[T]): List[T] = if (n == 0) xs else dropLeft(n - 1, xs.tail) /* @@ -7,7 +7,7 @@ class TailCall[@specialized T] { def crash(o: Option[String]) = filter { case None if { - def dropLeft[T](n: Int, xs: List[T]): List[T] = + def dropLeft[T](n: Int, xs: List[T]): List[T] = if (n == 0) xs else dropLeft(n - 1, xs.tail) dropLeft(2, List(1, 2, 3)).isEmpty diff --git a/test/files/pos/spec-traits.scala b/test/files/pos/spec-traits.scala index 8b1fefe80f..c6cc2921b7 100644 --- a/test/files/pos/spec-traits.scala +++ b/test/files/pos/spec-traits.scala @@ -11,12 +11,12 @@ class Lazy { // issue 3307 class Bug3307 { - def f[Z](block: String => Z) { - block("abc") + def f[Z](block: String => Z) { + block("abc") } - - ({ () => - f { implicit x => println(x) } })() + + ({ () => + f { implicit x => println(x) } })() } // issue 3301 diff --git a/test/files/pos/spec-vector.scala b/test/files/pos/spec-vector.scala index 392949c669..06e49b521f 100644 --- a/test/files/pos/spec-vector.scala +++ b/test/files/pos/spec-vector.scala @@ -1,4 +1,4 @@ // ticket #3379, abstract overrides trait Vector extends (Int=>Double) { - override def apply(i: Int): Double + override def apply(i: Int): Double } diff --git a/test/files/pos/spec.scala b/test/files/pos/spec.scala index cc060ffe84..093d3cded4 100644 --- a/test/files/pos/spec.scala +++ b/test/files/pos/spec.scala @@ -7,7 +7,7 @@ class Bar[@specialized(Int, AnyRef) A](a: A) { } -class WithInner[@specialized(Int, AnyRef) A](a: A) { +class WithInner[@specialized(Int, AnyRef) A](a: A) { class Inner { def meth = a } @@ -42,7 +42,7 @@ class Qux[@specialized(AnyRef) A] { class Foo[@specialized(Int, AnyRef) A](val a: Array[A]) { a(0) - + def id(elem: A) = a(0) = elem } @@ -52,13 +52,13 @@ object Test { def main(arg: Array[String]) { val f = new Foo(new Array[String](5)) f.id("") - + val z = new Baz[Int, Double] z.ab(1, 1.0) - + testspec(new Array[String](5)) testspec(new Array[Int](5)) } - + def testspec[@specialized(Int, AnyRef) T](arr: Array[T]) = arr(0) } diff --git a/test/files/pos/strings.scala b/test/files/pos/strings.scala index 9fe8cfd94b..83b8179706 100644 --- a/test/files/pos/strings.scala +++ b/test/files/pos/strings.scala @@ -6,5 +6,5 @@ object test { } // #1000 object A { - println("""This a "raw" string ending with a "double quote"""") + println("""This a "raw" string ending with a "double quote"""") } diff --git a/test/files/pos/sudoku.scala b/test/files/pos/sudoku.scala index 9435f504d6..336dc756a9 100644 --- a/test/files/pos/sudoku.scala +++ b/test/files/pos/sudoku.scala @@ -3,22 +3,22 @@ object SudokuSolver extends App { // held in a global variable m. The program begins by reading 9 lines // of input to fill the board var m: Array[Array[Char]] = Array.tabulate(9)((x: Int) => readLine.toArray) - + // For printing m, a method print is defined def print = { println(""); m map (carr => println(new String(carr))) } - + // The test for validity is performed by looping over i=0..8 and // testing the row, column and 3x3 square containing the given // coordinate def invalid(i: Int, x: Int, y: Int, n: Char): Boolean = i<9 && (m(y)(i) == n || m(i)(x) == n || m(y/3*3 + i/3)(x/3*3 + i % 3) == n || invalid(i+1, x, y, n)) - + // Looping over a half-closed range of consecutive integers [l..u) // is factored out into a higher-order function def fold(f: (Int, Int) => Int, accu: Int, l: Int, u: Int): Int = if(l==u) accu else fold(f, f(accu, l), l+1, u) - + // The search function examines each position on the board in turn, // trying the numbers 1..9 in each unfilled position // The function is itself a higher-order fold, accumulating the value @@ -34,7 +34,7 @@ object SudokuSolver extends App { val newaccu = search(x+1, y, f, accu); m(y)(x) = '0'; newaccu}, accu, 1, 10)} - + // The main part of the program uses the search function to accumulate // the total number of solutions println("\n"+search(0,0,i => {print; i+1},0)+" solution(s)") diff --git a/test/files/pos/super/Super_1.java b/test/files/pos/super/Super_1.java index 9acbba0ec4..418ae96bc0 100644 --- a/test/files/pos/super/Super_1.java +++ b/test/files/pos/super/Super_1.java @@ -1,6 +1,6 @@ // A.java interface Inter<T> { } -class Super implements Inter<Super.Inner> { +class Super implements Inter<Super.Inner> { public class Inner { }; } diff --git a/test/files/pos/t0227.scala b/test/files/pos/t0227.scala index a52a9798fc..8650350c4a 100644 --- a/test/files/pos/t0227.scala +++ b/test/files/pos/t0227.scala @@ -19,7 +19,7 @@ class SA(val settings: Settings) extends Base { SD ) ::: settings.f( SC - ) + ) } object SC extends Factory { diff --git a/test/files/pos/t0288/Foo.scala b/test/files/pos/t0288/Foo.scala index 778ba65f58..1f7d81327d 100644 --- a/test/files/pos/t0288/Foo.scala +++ b/test/files/pos/t0288/Foo.scala @@ -6,4 +6,4 @@ class Foo extends Outer{ val bar = new Inner(); // Shouldn't this work? -} +} diff --git a/test/files/pos/t0288/Outer.java b/test/files/pos/t0288/Outer.java index bea3e3f8d0..7a3754fb5d 100644 --- a/test/files/pos/t0288/Outer.java +++ b/test/files/pos/t0288/Outer.java @@ -6,4 +6,4 @@ public class Outer{ } -} +} diff --git a/test/files/pos/t0438.scala b/test/files/pos/t0438.scala index fa5b7711ff..33b7efeaac 100644 --- a/test/files/pos/t0438.scala +++ b/test/files/pos/t0438.scala @@ -1,9 +1,9 @@ class Foo { - implicit def pair2fun2[A, B, C](f: (A, B) => C) = + implicit def pair2fun2[A, B, C](f: (A, B) => C) = {p: (A, B) => f(p._1, p._2) } def foo(f: ((Int, Int)) => Int) = f - def bar(x: Int, y: Int) = x + y + def bar(x: Int, y: Int) = x + y foo({ (x: Int, y: Int) => x + y }) // works foo(pair2fun2(bar _)) // works diff --git a/test/files/pos/t0453.scala b/test/files/pos/t0453.scala index dfacc5eed7..d59a3d22f2 100644 --- a/test/files/pos/t0453.scala +++ b/test/files/pos/t0453.scala @@ -1,5 +1,5 @@ object Test { - val foo = new { + val foo = new { trait Bar def l () : Bar = { new Bar {} } } diff --git a/test/files/pos/t0625.scala b/test/files/pos/t0625.scala index 5614542599..bda463d6a6 100644 --- a/test/files/pos/t0625.scala +++ b/test/files/pos/t0625.scala @@ -1,6 +1,6 @@ object Test { def idMap[C[_],T](m: { def map[U](f: T => U): C[U] }): C[T] = m.map(t => t) - + def main(args: Array[String]): Unit = { idMap(Some(5)) idMap(Responder.constant(5)) diff --git a/test/files/pos/t0770.scala b/test/files/pos/t0770.scala index 7a0a2bf9bb..bb438f1918 100644 --- a/test/files/pos/t0770.scala +++ b/test/files/pos/t0770.scala @@ -1,7 +1,7 @@ trait A { private[this] val p = 5 - + def f = (b: Byte) => p } diff --git a/test/files/pos/t0774/unrelated.scala b/test/files/pos/t0774/unrelated.scala index 1efdb2505e..483f836d0c 100644 --- a/test/files/pos/t0774/unrelated.scala +++ b/test/files/pos/t0774/unrelated.scala @@ -1,8 +1,8 @@ object Outer { import Inner._ - + deathname - + object Inner { def deathname: Int = 1 } diff --git a/test/files/pos/t0786.scala b/test/files/pos/t0786.scala index f40cf7d2e1..4d9f1d0dc9 100644 --- a/test/files/pos/t0786.scala +++ b/test/files/pos/t0786.scala @@ -2,15 +2,15 @@ object ImplicitProblem { class M[T] def nullval[T] = null.asInstanceOf[T]; - + trait Rep[T] { def eval: Int } - + implicit def toRep0(n: Int) = new Rep[Int] { def eval = 0 } - + implicit def toRepN[T](n: M[T])(implicit f: T => Rep[T]) = new Rep[M[T]] { def eval = f(nullval[T]).eval + 1 } @@ -18,11 +18,11 @@ object ImplicitProblem { def depth[T <% Rep[T]](n: T) = n.eval def main(args: Array[String]) { - println(depth(nullval[M[Int]])) // (1) this works + println(depth(nullval[M[Int]])) // (1) this works println(nullval[M[Int]].eval) // (2) this works - + type m = M[Int] - println(depth(nullval[m])) // (3) this doesn't compile on 2.7.RC1 + println(depth(nullval[m])) // (3) this doesn't compile on 2.7.RC1 println(nullval[m].eval) // (4) this works } diff --git a/test/files/pos/t0816.scala b/test/files/pos/t0816.scala index 0128a0ad72..738a634166 100644 --- a/test/files/pos/t0816.scala +++ b/test/files/pos/t0816.scala @@ -6,7 +6,7 @@ case class Ctest(override val data: String) extends Btest(data, true) class testCaseClass { def test(x: Atest) = x match { - case Ctest(data) => Console.println("C") + case Ctest(data) => Console.println("C") case Btest(data, b) => Console.println("B") } } diff --git a/test/files/pos/t1000.scala b/test/files/pos/t1000.scala index 38f71863d8..31d7c7e902 100644 --- a/test/files/pos/t1000.scala +++ b/test/files/pos/t1000.scala @@ -1,3 +1,3 @@ object A { - println("""This a "raw" string ending with a "double quote"""") + println("""This a "raw" string ending with a "double quote"""") } diff --git a/test/files/pos/t1035.scala b/test/files/pos/t1035.scala index e0a9379c7e..bd693d9e68 100644 --- a/test/files/pos/t1035.scala +++ b/test/files/pos/t1035.scala @@ -7,7 +7,7 @@ class A { var name:String = _ def getName() = name def this(name:String, age:Int){this();this.name=name} - + } class B(name:String) extends A(name,0){ @@ -18,15 +18,15 @@ class D { object A { def unapply(p:A) = Some(p.getName) } - + object B { def unapply(p:B) = Some(p.getName) } def foo(p:Any) = p match { - case B(n) => println("B") - case A(n) => println("A") - - + case B(n) => println("B") + case A(n) => println("A") + + } } diff --git a/test/files/pos/t1059.scala b/test/files/pos/t1059.scala index 659bf375ca..bcd8f0374f 100644 --- a/test/files/pos/t1059.scala +++ b/test/files/pos/t1059.scala @@ -25,4 +25,4 @@ object SafeNodeSeq { })) case _ => None } -} +} diff --git a/test/files/pos/t1107/O.scala b/test/files/pos/t1107/O.scala index 0198867704..aa605a6d09 100644 --- a/test/files/pos/t1107/O.scala +++ b/test/files/pos/t1107/O.scala @@ -4,10 +4,10 @@ object O case s: Sub => true case _ => false } - + def main(args: Array[String]): Unit = { val c = new AnyRef with C c.bob.toString + c.bob2.toString - } + } } diff --git a/test/files/pos/t1107/T.scala b/test/files/pos/t1107/T.scala index 0dff0b94fd..1f3712d529 100644 --- a/test/files/pos/t1107/T.scala +++ b/test/files/pos/t1107/T.scala @@ -1,6 +1,6 @@ sealed trait Top sealed trait Sub extends Top -trait C { +trait C { private object P extends Sub def bob() = P.getClass def bob2() = O.d(P) diff --git a/test/files/pos/t1164.scala b/test/files/pos/t1164.scala index ca780c9a26..307ca92c85 100644 --- a/test/files/pos/t1164.scala +++ b/test/files/pos/t1164.scala @@ -1,29 +1,29 @@ -object test { +object test { - class Foo[a](val arg : a) - - object Foo { - def apply [a](arg : a, right :a) = new Foo[a](arg) - def unapply [a](m : Foo[a]) = Some (m.arg) - } + class Foo[a](val arg : a) + object Foo { + def apply [a](arg : a, right :a) = new Foo[a](arg) + def unapply [a](m : Foo[a]) = Some (m.arg) + } + def matchAndGetArgFromFoo[a]( e:Foo[a]):a = {e match { case Foo(x) => x }} - - + + // Try the same thing as above but use function as argument to Bar // constructor - + type FunIntToA [a] = (Int) => a - class Bar[a] (var f: FunIntToA[a]) - + class Bar[a] (var f: FunIntToA[a]) + object Bar { def apply[a](f: FunIntToA[a]) = new Bar[a](f) def unapply[a](m: Bar[a]) = Some (m.f) } - + def matchAndGetFunFromBar[a](b:Bar[a]) : FunIntToA[a] = { b match { case Bar(x) => x}} - + } diff --git a/test/files/pos/t1236.scala b/test/files/pos/t1236.scala index 5e221ce411..7028162ee0 100644 --- a/test/files/pos/t1236.scala +++ b/test/files/pos/t1236.scala @@ -1,5 +1,5 @@ trait Empty[E[_]] { - def e[A]: E[A] + def e[A]: E[A] } object T { diff --git a/test/files/pos/t1254/t1254.java b/test/files/pos/t1254/t1254.java index 17e1c60bf5..17dc391672 100644 --- a/test/files/pos/t1254/t1254.java +++ b/test/files/pos/t1254/t1254.java @@ -11,7 +11,7 @@ class NothingBug3 { scala.Option<?> o = scala.None$.MODULE$; test(o); - None.toLeft(new scala.runtime.AbstractFunction0<Integer>() { + None.toLeft(new scala.runtime.AbstractFunction0<Integer>() { public Integer apply() { return 0; } }); } diff --git a/test/files/pos/t1263/test.scala b/test/files/pos/t1263/test.scala index 92d8c1cdfa..7ced59083a 100644 --- a/test/files/pos/t1263/test.scala +++ b/test/files/pos/t1263/test.scala @@ -2,7 +2,7 @@ package test trait Map[A, +B] { def plus(key: A): MapTo = new MapTo(key) - + class MapTo(key: A) { def arrow [B1 >: B](value: B1) = null } diff --git a/test/files/pos/t1459/App.scala b/test/files/pos/t1459/App.scala index 651b285b17..1152fcb0c3 100755 --- a/test/files/pos/t1459/App.scala +++ b/test/files/pos/t1459/App.scala @@ -8,11 +8,11 @@ object App extends Application { val impl = new Concrete - //succeeds + //succeeds
impl.doStuff(null) val caller = new Caller - + // fails with AbstractMethodError caller.callDoStuff(impl) } diff --git a/test/files/pos/t1480.scala b/test/files/pos/t1480.scala index 1d9f94d2e9..3dc3062ca0 100644 --- a/test/files/pos/t1480.scala +++ b/test/files/pos/t1480.scala @@ -1,6 +1,6 @@ class Foo{ def compare(newP : Any, oldP : Any) : Boolean = (newP,oldP) match { - case (newP : AnyRef, oldP : AnyRef) if newP == oldP => newP == oldP - case (newS : Symbol, oldS: Symbol) if newS == oldS => newS == oldS + case (newP : AnyRef, oldP : AnyRef) if newP == oldP => newP == oldP + case (newS : Symbol, oldS: Symbol) if newS == oldS => newS == oldS } } diff --git a/test/files/pos/t1545.scala b/test/files/pos/t1545.scala index 8cdd39660c..51df606da3 100755 --- a/test/files/pos/t1545.scala +++ b/test/files/pos/t1545.scala @@ -9,8 +9,8 @@ object Main extends App { case None => 99 } } - + println (x (Foo (None))) // prints 99 println (x (Foo (Some ("foo")))) // prints 42 - + } diff --git a/test/files/pos/t1560.scala b/test/files/pos/t1560.scala index 2af299af86..fb5592016a 100644 --- a/test/files/pos/t1560.scala +++ b/test/files/pos/t1560.scala @@ -1,13 +1,13 @@ object Test extends App { - + trait C[T] { def t: T } - + def b: Option[C[x] forSome { type x }] = null - + def c = b match { case Some(b) => b.t } - + } diff --git a/test/files/pos/t1591b.scala b/test/files/pos/t1591b.scala index c671ad6472..84372bb084 100644 --- a/test/files/pos/t1591b.scala +++ b/test/files/pos/t1591b.scala @@ -1,10 +1,10 @@ import scala.tools.nsc._ -class SemanticTokens(val compiler: Global) { - import compiler._ +class SemanticTokens(val compiler: Global) { + import compiler._ def build() = ErrorType - + class Process { def f() = analyzer // or to crash the compiler instead of a nice message, diff --git a/test/files/pos/t1711/Seq.scala b/test/files/pos/t1711/Seq.scala index c18f05cd73..5f426ea0f7 100644 --- a/test/files/pos/t1711/Seq.scala +++ b/test/files/pos/t1711/Seq.scala @@ -3,7 +3,7 @@ package com object Sequence { def filteringFunction[V](filter: V => Boolean): List[V] => List[V] = { - def include(v: V) = + def include(v: V) = filter(v) (l: List[V]) => l.filter(include) } diff --git a/test/files/pos/t1722-A.scala b/test/files/pos/t1722-A.scala index d059bf22f8..9e522a5059 100644 --- a/test/files/pos/t1722-A.scala +++ b/test/files/pos/t1722-A.scala @@ -1,8 +1,8 @@ sealed trait Top trait C { private object P extends Top -} -/* +} +/* $ scala -e 'new AnyRef with C' error: error while loading Top, class file '/private/tmp/bobobo/./Top.class' is broken (error reading Scala signature of /private/tmp/bobobo/./Top.class: malformed Scala signature of Top at 185; reference value P of trait C refers to nonexisting symbol.) diff --git a/test/files/pos/t1722/Test.scala b/test/files/pos/t1722/Test.scala index f236d3fdc4..5685d8f40a 100755 --- a/test/files/pos/t1722/Test.scala +++ b/test/files/pos/t1722/Test.scala @@ -1,5 +1,5 @@ package t1722 object Test { - val x = new AnyRef with C + val x = new AnyRef with C } diff --git a/test/files/pos/t1722/Top.scala b/test/files/pos/t1722/Top.scala index 4ac52412aa..cec4c531f9 100755 --- a/test/files/pos/t1722/Top.scala +++ b/test/files/pos/t1722/Top.scala @@ -3,8 +3,8 @@ package t1722 sealed trait Top trait C { private object P extends Top -} -/* +} +/* $ scala -e 'new AnyRef with C' error: error while loading Top, class file '/private/tmp/bobobo/./Top.class' is broken (error reading Scala signature of /private/tmp/bobobo/./Top.class: malformed Scala signature of Top at 185; reference value P of trait C refers to nonexisting symbol.) diff --git a/test/files/pos/t1745/J.java b/test/files/pos/t1745/J.java index 8444eabb24..d95efe8e6f 100644 --- a/test/files/pos/t1745/J.java +++ b/test/files/pos/t1745/J.java @@ -1,9 +1,9 @@ -class J { +class J { S1 s1; S2 s2; - + String s = bar(S3.foo(), S3.bar("def")); - + private String bar(String s1, String s2) { return s1 + s2; } diff --git a/test/files/pos/t1756.scala b/test/files/pos/t1756.scala index 1d067c3b04..2e09c8a94a 100755 --- a/test/files/pos/t1756.scala +++ b/test/files/pos/t1756.scala @@ -1,5 +1,5 @@ -/** +/** This is a tricky issue which has to do with the fact that too much conflicting type information is propagated into a single implicit search, where the intended solution applies two implicit searches. @@ -35,20 +35,20 @@ class Poly[C <: Ring[C]](val c: C) extends Ring[Poly[C]] { } object Test extends App { - + implicit def coef2poly[C <: Ring[C]](c: C): Poly[C] = new Poly(c) val a = new A val x = new Poly(new A) - + println(x+a) // works println(a+x) // works - + val y = new Poly(new Poly(new A)) - + println(x+y*x) // works println(x*y+x) // works println(y*x+x) // works - + println(x+x*y) // failed before } diff --git a/test/files/pos/t1761.scala b/test/files/pos/t1761.scala index a3ceeea815..2af7280734 100644 --- a/test/files/pos/t1761.scala +++ b/test/files/pos/t1761.scala @@ -3,7 +3,7 @@ import scala.xml._ class Foo { val elements: Seq[Node] = Nil val innerTransform: PartialFunction[Elem, String] = { - case Elem(_, l: String, _, _, _ @ _*) if elements.exists(_.label == l) => + case Elem(_, l: String, _, _, _ @ _*) if elements.exists(_.label == l) => l } } diff --git a/test/files/pos/t1798.scala b/test/files/pos/t1798.scala index 1624e3025e..93df61e844 100644 --- a/test/files/pos/t1798.scala +++ b/test/files/pos/t1798.scala @@ -2,7 +2,7 @@ object Foo { private def bar(): Int = 55 } class Foo(x: Int) { def this() = this(Foo.bar()) } /* - * scalac28 a.scala + * scalac28 a.scala a.scala:2: error: method bar cannot be accessed in object Foo class Foo(x: Int) { def this() = this(Foo.bar()) } ^ diff --git a/test/files/pos/t1840/J.java b/test/files/pos/t1840/J.java index fd98b6c4a5..a697596fdd 100644 --- a/test/files/pos/t1840/J.java +++ b/test/files/pos/t1840/J.java @@ -1,4 +1,4 @@ package p; -class J { - J() {} +class J { + J() {} } diff --git a/test/files/pos/t2023.scala b/test/files/pos/t2023.scala index 21c6fc96a6..de3e848fbd 100644 --- a/test/files/pos/t2023.scala +++ b/test/files/pos/t2023.scala @@ -3,11 +3,11 @@ trait C[A] object C { implicit def ipl[A](implicit from: A => Ordered[A]): C[A] = null } - + object P { def foo[A](i: A, j: A)(implicit c: C[A]): Unit = () } - + class ImplicitChainTest { def testTrivial: Unit = { P.foo('0', '9') diff --git a/test/files/pos/t2060.scala b/test/files/pos/t2060.scala index 2c701150e4..cf7250f545 100755 --- a/test/files/pos/t2060.scala +++ b/test/files/pos/t2060.scala @@ -4,7 +4,7 @@ * line': * * val failure = 1.0 + new Op[Int] - * + * * we reduce the problem to finding a function from Double to * {+: _ >: Op[Int] <: Any}, that is, a method which takes * an argument which is an Op[Int] or a supertype thereof. diff --git a/test/files/pos/t2082.scala b/test/files/pos/t2082.scala index 3a160612fe..38937d78fb 100755 --- a/test/files/pos/t2082.scala +++ b/test/files/pos/t2082.scala @@ -1,10 +1,10 @@ trait Mapper[T <: Mapper[T]] -trait KeyedMapper[KeyType, T <: KeyedMapper[KeyType, T]] extends Mapper[T] +trait KeyedMapper[KeyType, T <: KeyedMapper[KeyType, T]] extends Mapper[T] -trait KeyedMetaMapper[KeyType, T <: KeyedMapper[KeyType, T]] +trait KeyedMetaMapper[KeyType, T <: KeyedMapper[KeyType, T]] trait MappedForeignKey[KeyType, Owner <: Mapper[Owner], Other <: KeyedMapper[KeyType, Other]] @@ -19,19 +19,19 @@ class TestRun extends KeyedMapper[Long, TestRun] with IdPK { object TestRun extends TestRun with KeyedMetaMapper[Long, TestRun] class MetaTestSubject extends TestSubject with KeyedMetaMapper[Long, TestSubject] -object TestSubject extends MetaTestSubject +object TestSubject extends MetaTestSubject object Main { - + def oneToOneJoin[PType <: KeyedMapper[Long, PType] with IdPK, CType <: KeyedMapper[Long, CType] with IdPK, - CMetaType <: CType with KeyedMetaMapper[Long, CType], + CMetaType <: CType with KeyedMetaMapper[Long, CType], FKType <: MappedForeignKey[Long, PType, CType]] - (parents: List[PType], metaMapper: CMetaType, keyGetter: (PType) => FKType ): + (parents: List[PType], metaMapper: CMetaType, keyGetter: (PType) => FKType ): Map[Long, CType] = Map.empty - + def callIt { - oneToOneJoin[TestRun, TestSubject, MetaTestSubject, + oneToOneJoin[TestRun, TestSubject, MetaTestSubject, MappedForeignKey[Long, TestRun, TestSubject]]( List(), TestSubject, (tr: TestRun) => tr.testSubject) } diff --git a/test/files/pos/t2133.scala b/test/files/pos/t2133.scala index c74d0a4bbf..99bac5c38b 100644 --- a/test/files/pos/t2133.scala +++ b/test/files/pos/t2133.scala @@ -13,6 +13,6 @@ trait Foo2 { class Bob extends AnyRef with Foo with Foo2 { import bip._ import bar._ - + def go() = fn() } diff --git a/test/files/pos/t2261.scala b/test/files/pos/t2261.scala index aac5c9e0fd..af24234235 100644 --- a/test/files/pos/t2261.scala +++ b/test/files/pos/t2261.scala @@ -5,5 +5,5 @@ object Test { x = List(1,2,3) // the problem here was that somehow the type variable that was used to infer the type argument for List.apply // would accumulate several conflicting constraints - // can't reproduce with + // can't reproduce with }
\ No newline at end of file diff --git a/test/files/pos/t2305.scala b/test/files/pos/t2305.scala index 8b5abccbe0..d0b103fdba 100644 --- a/test/files/pos/t2305.scala +++ b/test/files/pos/t2305.scala @@ -1,6 +1,6 @@ import java.util.ArrayList -trait Bind[Z[_]] +trait Bind[Z[_]] class MySerializable[X] extends java.io.Serializable @@ -17,7 +17,7 @@ object works { object breaks { def runbind(implicit bind: Bind[ArrayList]) {} - runbind + runbind /*java.lang.AssertionError: assertion failed: java.io.Serializable at scala.Predef$.assert(Predef.scala:107) at scala.tools.nsc.symtab.Types$TypeRef.transform(Types.scala:1417) diff --git a/test/files/pos/t2413/TestScalac.scala b/test/files/pos/t2413/TestScalac.scala index 098e852dd7..6992a30f2c 100644 --- a/test/files/pos/t2413/TestScalac.scala +++ b/test/files/pos/t2413/TestScalac.scala @@ -4,7 +4,7 @@ class Foo extends TestJava { // THIS METHOD YIELDS TO CRASH /* def foomethod : Option[String] => Unit = { - case None => + case None => val path = repeatParam("s","a","b","c") () case Some(error) => diff --git a/test/files/pos/t2421.scala b/test/files/pos/t2421.scala index 0d01be29fc..26e485c160 100644 --- a/test/files/pos/t2421.scala +++ b/test/files/pos/t2421.scala @@ -7,8 +7,8 @@ object Test { implicit val forcibleInt: (Int <~< Forcible[Int]) = error("") def headProxy[P <: Forcible[Int]](implicit w: Int <~< P): P = error("") - - headProxy - // trivial[Int] should not be considered a valid implicit, since w would have type Int <~< Int, + + headProxy + // trivial[Int] should not be considered a valid implicit, since w would have type Int <~< Int, // and headProxy's type parameter P cannot be instantiated to Int }
\ No newline at end of file diff --git a/test/files/pos/t2421_delitedsl.scala b/test/files/pos/t2421_delitedsl.scala index a05887023a..ad6afa7bd8 100644 --- a/test/files/pos/t2421_delitedsl.scala +++ b/test/files/pos/t2421_delitedsl.scala @@ -1,10 +1,10 @@ trait DeliteDSL { abstract class <~<[-From, +To] extends (From => To) - implicit def trivial[A]: A <~< A = new (A <~< A) {def apply(x: A) = x} + implicit def trivial[A]: A <~< A = new (A <~< A) {def apply(x: A) = x} trait Forcible[T] object Forcible { - def factory[T](f: T => Forcible[T]) = new (T <~< Forcible[T]){def apply(x: T) = f(x)} + def factory[T](f: T => Forcible[T]) = new (T <~< Forcible[T]){def apply(x: T) = f(x)} } case class DeliteInt(x: Int) extends Forcible[Int] @@ -22,16 +22,16 @@ trait DeliteDSL { // If T is already a proxy (it is forcible), the compiler should use // forcibleIdentity to deduce that P=T. If T is Int, the compiler // should use intToForcible to deduce that P=DeliteInt. - // + // // Without this feature, the user must write 'xs.proxyOfFirst[DeliteInt]', // with the feature they can write 'xs.proxyOfFirst', which is shorter and // avoids exposing internal DELITE types to the world. object Test { - val x = new DeliteCollection(List(1,2,3)).headProxy + val x = new DeliteCollection(List(1,2,3)).headProxy // inferred: val x: Forcible[Int] = new DeliteCollection[Int](List.apply[Int](1, 2, 3)).headProxy[Forcible[Int]](forcibleInt); - val xAlready = new DeliteCollection(List(DeliteInt(1),DeliteInt(2),DeliteInt(3))).headProxy + val xAlready = new DeliteCollection(List(DeliteInt(1),DeliteInt(2),DeliteInt(3))).headProxy // inferred: val xAlready: DeliteInt = new DeliteCollection[DeliteInt](List.apply[DeliteInt](DeliteInt(1), DeliteInt(2), DeliteInt(3))).headProxy[DeliteInt](trivial[DeliteInt]); } }
\ No newline at end of file diff --git a/test/files/pos/t2421b_pos.scala b/test/files/pos/t2421b_pos.scala index 0df3461662..8b848abb75 100644 --- a/test/files/pos/t2421b_pos.scala +++ b/test/files/pos/t2421b_pos.scala @@ -11,7 +11,7 @@ object Test { f } -/* bug: +/* bug: error: ambiguous implicit values: both method b in object Test1 of type [X <: Test1.B]Test1.F[X] and method a in object Test1 of type => Test1.F[Test1.A] diff --git a/test/files/pos/t2429.scala b/test/files/pos/t2429.scala index 9b9cb89de7..3ea3f9e2a5 100755 --- a/test/files/pos/t2429.scala +++ b/test/files/pos/t2429.scala @@ -1,8 +1,8 @@ object Msg { trait T - + trait TSeq - + object TSeq { implicit def fromSeq(s: Seq[T]): TSeq = error("stub") } diff --git a/test/files/pos/t2433/A.java b/test/files/pos/t2433/A.java index 340690c402..8ae23ff816 100755 --- a/test/files/pos/t2433/A.java +++ b/test/files/pos/t2433/A.java @@ -1,4 +1,4 @@ -class A223 extends B223.Inner { - static class Inner {} - void foo() {} +class A223 extends B223.Inner {
+ static class Inner {}
+ void foo() {}
}
\ No newline at end of file diff --git a/test/files/pos/t2433/B.java b/test/files/pos/t2433/B.java index 151dd71ca1..d0d5580ffb 100755 --- a/test/files/pos/t2433/B.java +++ b/test/files/pos/t2433/B.java @@ -1,4 +1,4 @@ -class B223 { - static class Inner {} - void m(A223.Inner x) {} +class B223 {
+ static class Inner {}
+ void m(A223.Inner x) {}
}
\ No newline at end of file diff --git a/test/files/pos/t2433/Test.scala b/test/files/pos/t2433/Test.scala index 02fd89b646..0e07231e07 100755 --- a/test/files/pos/t2433/Test.scala +++ b/test/files/pos/t2433/Test.scala @@ -1,3 +1,3 @@ -object Test { - (new A223).foo() -} +object Test {
+ (new A223).foo()
+}
diff --git a/test/files/pos/t2444.scala b/test/files/pos/t2444.scala index 6f07dcf92d..a052270196 100644 --- a/test/files/pos/t2444.scala +++ b/test/files/pos/t2444.scala @@ -2,14 +2,14 @@ object Test { trait Foo - class Bar { + class Bar { object baz extends Foo } - def frob[P1, P2<:Foo](f:P1 => P2) = () + def frob[P1, P2<:Foo](f:P1 => P2) = () def main(args:Array[String]) : Unit = { - frob((p:Bar) => p.baz) + frob((p:Bar) => p.baz) } } diff --git a/test/files/pos/t2464/ScalaOne_1.scala b/test/files/pos/t2464/ScalaOne_1.scala index 1caf8ecae4..0271b9ce72 100644 --- a/test/files/pos/t2464/ScalaOne_1.scala +++ b/test/files/pos/t2464/ScalaOne_1.scala @@ -1,6 +1,6 @@ class ScalaClassOne extends ClassTwo.Child { def func4() = { func2 - } + } } diff --git a/test/files/pos/t2484.scala b/test/files/pos/t2484.scala index 6990c46099..20c51b09a1 100755 --- a/test/files/pos/t2484.scala +++ b/test/files/pos/t2484.scala @@ -1,17 +1,17 @@ -class Admin extends javax.swing.JApplet { - val jScrollPane = new javax.swing.JScrollPane (null, 0, 0) - def bug2484: Unit = { - scala.concurrent.ops.spawn {jScrollPane.synchronized { - def someFunction () = {} - //scala.concurrent.ops.spawn {someFunction ()} - jScrollPane.addComponentListener (new java.awt.event.ComponentAdapter {override def componentShown (e: java.awt.event.ComponentEvent) = { - someFunction (); jScrollPane.removeComponentListener (this)}}) - }} - } -} -// t2630.scala -object Test { - def meh(xs: List[Any]) { - xs map { x => (new AnyRef {}) } - } -} +class Admin extends javax.swing.JApplet {
+ val jScrollPane = new javax.swing.JScrollPane (null, 0, 0)
+ def bug2484: Unit = {
+ scala.concurrent.ops.spawn {jScrollPane.synchronized {
+ def someFunction () = {}
+ //scala.concurrent.ops.spawn {someFunction ()}
+ jScrollPane.addComponentListener (new java.awt.event.ComponentAdapter {override def componentShown (e: java.awt.event.ComponentEvent) = {
+ someFunction (); jScrollPane.removeComponentListener (this)}})
+ }}
+ }
+}
+// t2630.scala
+object Test {
+ def meh(xs: List[Any]) {
+ xs map { x => (new AnyRef {}) }
+ }
+}
diff --git a/test/files/pos/t2504.scala b/test/files/pos/t2504.scala index 67f8226852..0abe7dd13e 100755 --- a/test/files/pos/t2504.scala +++ b/test/files/pos/t2504.scala @@ -1,5 +1,5 @@ object Test { val ys: Iterable[_] = Array("abc") - val xs = Array("abc") + val xs = Array("abc") xs sameElements Array("abc") } diff --git a/test/files/pos/t2545.scala b/test/files/pos/t2545.scala index 6ad994223c..b4238fb718 100755 --- a/test/files/pos/t2545.scala +++ b/test/files/pos/t2545.scala @@ -1,6 +1,6 @@ trait Frog[T] { - def hello: T - def size: Int + def hello: T + def size: Int } trait OnlyWithFrogs { diff --git a/test/files/pos/t2569/Child.scala b/test/files/pos/t2569/Child.scala index 64f4dc172f..3d7f4248b5 100644 --- a/test/files/pos/t2569/Child.scala +++ b/test/files/pos/t2569/Child.scala @@ -1,9 +1,9 @@ package varargs - + class Child extends Parent { - + override def concatenate(strings: String*): String = strings map("\"" + _ + "\"") mkString("(", ", ", ")") - + } diff --git a/test/files/pos/t2569/Parent.java b/test/files/pos/t2569/Parent.java index 89421becbd..133f2ee567 100644 --- a/test/files/pos/t2569/Parent.java +++ b/test/files/pos/t2569/Parent.java @@ -1,7 +1,7 @@ package varargs; - + public class Parent { - + public String concatenate(String... strings) { StringBuilder builder = new StringBuilder(); for (String s : strings) { @@ -9,5 +9,5 @@ package varargs; } return builder.toString(); } - + } diff --git a/test/files/pos/t2665.scala b/test/files/pos/t2665.scala index 3163e31326..108daf509a 100644 --- a/test/files/pos/t2665.scala +++ b/test/files/pos/t2665.scala @@ -1,3 +1,3 @@ object Test { - val x: Unit = Array("") + val x: Unit = Array("") }
\ No newline at end of file diff --git a/test/files/pos/t2669.scala b/test/files/pos/t2669.scala index 72e931178c..e34f08f0f5 100644 --- a/test/files/pos/t2669.scala +++ b/test/files/pos/t2669.scala @@ -23,6 +23,6 @@ import java.util.Vector // scalac cannot detect lack of type params, but then throws AssertionError later: class TVector2639 { - val b = new Vector // this line passed without error detected + val b = new Vector // this line passed without error detected val a = new Vector(1) // this line caused throwing AssertionError when scalac } diff --git a/test/files/pos/t2691.scala b/test/files/pos/t2691.scala index ba2e52f1fe..3c0d193e9a 100644 --- a/test/files/pos/t2691.scala +++ b/test/files/pos/t2691.scala @@ -1,5 +1,5 @@ object Breakdown { - def unapplySeq(x: Int): Some[List[String]] = Some(List("", "there")) + def unapplySeq(x: Int): Some[List[String]] = Some(List("", "there")) } object Test { 42 match { diff --git a/test/files/pos/t2726/SQLBuilder_1.scala b/test/files/pos/t2726/SQLBuilder_1.scala index 8d07a88265..7b3e3d8322 100644 --- a/test/files/pos/t2726/SQLBuilder_1.scala +++ b/test/files/pos/t2726/SQLBuilder_1.scala @@ -1,7 +1,7 @@ class SQLBuilder extends SQLBuilder.Segment -object SQLBuilder { - trait Segment +object SQLBuilder { + trait Segment } diff --git a/test/files/pos/t2910.scala b/test/files/pos/t2910.scala index d4d92fa765..17a6a64809 100644 --- a/test/files/pos/t2910.scala +++ b/test/files/pos/t2910.scala @@ -9,9 +9,9 @@ object Test { lazy val s = "abc" } - def test3 { + def test3 { lazy val lazyBar = bar - object bar { + object bar { val foo = 12 } lazy val lazyBar2 = bar @@ -29,5 +29,5 @@ object Test { lazy val f: Int = g Console.println("foo") lazy val g: Int = f - } + } }
\ No newline at end of file diff --git a/test/files/pos/t2913.scala b/test/files/pos/t2913.scala index 11d8b92053..ee86b9e402 100755 --- a/test/files/pos/t2913.scala +++ b/test/files/pos/t2913.scala @@ -11,13 +11,13 @@ class RichA { object Test { implicit def AToRichA(a: A) = new RichA - + val a = new A a.foo() a.foo(1) a.foo("") // Without implicits, a type error regarding invalid argument types is generated at `""`. This is - // the same position as an argument, so the 'second try' typing with an Implicit View is tried, + // the same position as an argument, so the 'second try' typing with an Implicit View is tried, // and AToRichA(a).foo("") is found. // // My reading of the spec "7.3 Views" is that `a.foo` denotes a member of `a`, so the view should @@ -48,6 +48,6 @@ object Main { val fn = (a : Int, str : String) => "a: " + a + ", str: " + str implicit def fx[T](f : (T,String) => String) = (x:T) => f(x,null) println(fn(1)) - () + () } } diff --git a/test/files/pos/t2940/Error.scala b/test/files/pos/t2940/Error.scala index bf5a6bd0df..7c600667f3 100644 --- a/test/files/pos/t2940/Error.scala +++ b/test/files/pos/t2940/Error.scala @@ -5,8 +5,8 @@ abstract class Error { object Test { trait Quux[T] extends Cycle[Quux[T]] val x = new Quux[Int] { def doStuff() { } } - + def main(args: Array[String]): Unit = { - + } } diff --git a/test/files/pos/t2994a.scala b/test/files/pos/t2994a.scala index cb4a389e2f..f2d57c34ca 100644 --- a/test/files/pos/t2994a.scala +++ b/test/files/pos/t2994a.scala @@ -17,8 +17,8 @@ object Naturals { type _5 = SUCC[_4] type _6 = SUCC[_5] - - // crashes scala-2.8.0 beta1 + + // crashes scala-2.8.0 beta1 trait MUL[n <: NAT, m <: NAT] extends NAT { trait curry[n[_[_], _], s[_]] { type f[z <: NAT] = n[s, z] } type a[s[_ <: NAT] <: NAT, z <: NAT] = n#a[curry[m#a, s]#f, z] diff --git a/test/files/pos/t3079.scala b/test/files/pos/t3079.scala index fa732ea516..4bead34ff3 100644 --- a/test/files/pos/t3079.scala +++ b/test/files/pos/t3079.scala @@ -10,8 +10,8 @@ object Coerce { def IdentityCoerce[B] = new Coerce[Identity[B], B] { // java.lang.Error: A in trait Identity cannot be instantiated from ?x$1.type def unwrap = _.value - + // Providing the type of _ works around the problem. - //def unwrap = (_: Identity[B]).value + //def unwrap = (_: Identity[B]).value } }
\ No newline at end of file diff --git a/test/files/pos/t3174b.scala b/test/files/pos/t3174b.scala index 4df1bfe837..002c4f090f 100755 --- a/test/files/pos/t3174b.scala +++ b/test/files/pos/t3174b.scala @@ -2,9 +2,9 @@ trait Foo[X] { def foo : Map[String,Foo[X]] } object Test { def f[T]() : Foo[T] = { - class Anon extends Foo[T] { - var foo: Map[String, Foo[T]] = Map[String,Foo[T]]() - //def foo = Map[String,Foo[T]]() + class Anon extends Foo[T] { + var foo: Map[String, Foo[T]] = Map[String,Foo[T]]() + //def foo = Map[String,Foo[T]]() //def foo_=(x: Map[String,Foo[T]]) {} } new Anon diff --git a/test/files/pos/t3177.scala b/test/files/pos/t3177.scala index 9f9528faec..21893c9422 100644 --- a/test/files/pos/t3177.scala +++ b/test/files/pos/t3177.scala @@ -1,17 +1,17 @@ trait InvariantFunctor[F[_]] { def xmap[A, B](ma: F[A], f: A => B, g: B => A): F[B] } - + object InvariantFunctor { import Endo._ - + implicit val EndoInvariantFunctor = new InvariantFunctor[Endo] { - def xmap[A, B](ma: Endo[A], f: A => B, g: B => A): Endo[B] = (b: B) => f(ma(g(b))) + def xmap[A, B](ma: Endo[A], f: A => B, g: B => A): Endo[B] = (b: B) => f(ma(g(b))) } - + // The definition about fails with: // anon-type.scala:9: error: not found: value b - // def xmap[A, B](ma: Endo[A], f: A => B, g: B => A): Endo[B] = (b: B) => f(ma(g(b))) + // def xmap[A, B](ma: Endo[A], f: A => B, g: B => A): Endo[B] = (b: B) => f(ma(g(b))) // ^ // anon-type.scala:8: error: not found: type $anon // implicit val EndoInvariantFunctor = new InvariantFunctor[Endo] { @@ -20,9 +20,9 @@ object InvariantFunctor { // These both work: // implicit val EndoInvariantFunctorAscribed: InvariantFunctor[Endo] = new InvariantFunctor[Endo] { - // def xmap[A, B](ma: Endo[A], f: A => B, g: B => A): Endo[B] = (b: B) => f(ma(g(b))) + // def xmap[A, B](ma: Endo[A], f: A => B, g: B => A): Endo[B] = (b: B) => f(ma(g(b))) // } - // + // // implicit val EndoInvariantFunctorStubbed = new InvariantFunctor[Endo] { // def xmap[A, B](ma: Endo[A], f: A => B, g: B => A): Endo[B] = error("stub") // } diff --git a/test/files/pos/t3274.scala b/test/files/pos/t3274.scala index 15723184bb..dfa6a4ec01 100644 --- a/test/files/pos/t3274.scala +++ b/test/files/pos/t3274.scala @@ -1,7 +1,7 @@ -trait A { this: B => - trait X { +trait A { this: B => + trait X { class Y1 extends Y - } + } } trait B extends A { diff --git a/test/files/pos/t3349/AbstractTupleSet.java b/test/files/pos/t3349/AbstractTupleSet.java index 38e4743ef4..47b440a589 100644 --- a/test/files/pos/t3349/AbstractTupleSet.java +++ b/test/files/pos/t3349/AbstractTupleSet.java @@ -5,5 +5,5 @@ public abstract class AbstractTupleSet implements TupleSet { public void addColumn(String name, String expr) { throw new UnsupportedOperationException(); - } + } } diff --git a/test/files/pos/t3363.scala b/test/files/pos/t3363.scala index bae54084ea..302f8c43cc 100755 --- a/test/files/pos/t3363.scala +++ b/test/files/pos/t3363.scala @@ -1,18 +1,18 @@ -object TestCase { - - //now matter if you put (abstract) class or trait it will fail in all cases - trait MapOps[T] - - //if fs was reduced to List (generic type with one parameter) then the code compiles - //if you inherit from MapOps[T] instead of MapOps[F] then code compiles fine - implicit def map2ops[T,F](fs: Map[T,F]) = new MapOps[F] { - //if you remove this line, then code compiles - lazy val m: Manifest[T] = error("just something to make it compile") - def is(xs: List[T]) = List(xs) - } - - def main(args: Array[String]) { - println(Map(1 -> "2") is List(2)) - } - - } +object TestCase {
+
+ //now matter if you put (abstract) class or trait it will fail in all cases
+ trait MapOps[T]
+
+ //if fs was reduced to List (generic type with one parameter) then the code compiles
+ //if you inherit from MapOps[T] instead of MapOps[F] then code compiles fine
+ implicit def map2ops[T,F](fs: Map[T,F]) = new MapOps[F] {
+ //if you remove this line, then code compiles
+ lazy val m: Manifest[T] = error("just something to make it compile")
+ def is(xs: List[T]) = List(xs)
+ }
+
+ def main(args: Array[String]) {
+ println(Map(1 -> "2") is List(2))
+ }
+
+ }
diff --git a/test/files/pos/t3429/A.scala b/test/files/pos/t3429/A.scala index 80785db51d..4b705808c1 100644 --- a/test/files/pos/t3429/A.scala +++ b/test/files/pos/t3429/A.scala @@ -2,8 +2,8 @@ class A { @Test(exc = classOf[Exception]) def myTestMethod = 0 } -// rytz@chara:~/scala/trunk/sandbox$ javac Test.java -// rytz@chara:~/scala/trunk/sandbox$ ../build/pack/bin/scalac A.scala +// rytz@chara:~/scala/trunk/sandbox$ javac Test.java +// rytz@chara:~/scala/trunk/sandbox$ ../build/pack/bin/scalac A.scala // A.scala:2: error: type mismatch; // found : java.lang.Class[Exception](classOf[java.lang.Exception]) // required: java.lang.Class diff --git a/test/files/pos/t3568.scala b/test/files/pos/t3568.scala index c8e3fcc4be..0f26e2fad3 100755 --- a/test/files/pos/t3568.scala +++ b/test/files/pos/t3568.scala @@ -14,7 +14,7 @@ package buffer { // ArrayVec2 can be compiled, instantiated and used. def main(args: Array[String]) { println(works) } } - + trait ElemType { type Element; type Component <: ElemType } trait Float1 extends ElemType { type Element = Float; type Component = Float1} class Vec2 extends ElemType { type Element = Vec2; type Component = Float1 } diff --git a/test/files/pos/t3582.scala b/test/files/pos/t3582.scala index 0ac112efbf..e20af5e61d 100644 --- a/test/files/pos/t3582.scala +++ b/test/files/pos/t3582.scala @@ -6,7 +6,7 @@ object Test { // [[syntax trees at end of typer]] // abstract trait C#5[A#9116 >: Nothing#5832 <: Any#52] extends scala#33.AnyRef#2780; // final object Test#15 extends java.lang.Object#2485 with ScalaObject#1913 { -// def ImplicitParamCA#9123[CC#9124[A#10858 >: Nothing#5832 <: Any#52] >: [A#10858]Nothing#5832 <: [A#10858]Any#52, +// def ImplicitParamCA#9123[CC#9124[A#10858 >: Nothing#5832 <: Any#52] >: [A#10858]Nothing#5832 <: [A#10858]Any#52, // A#9125 >: Nothing#5832 <: Any#52](implicit ev#10856: C#5[A#9127]): Unit#3818 // = scala#34.this.Predef#1683.implicitly#8816[C#5[A#10858]]() // } diff --git a/test/files/pos/t3670.scala b/test/files/pos/t3670.scala index ec4fbe5b4f..19959f910f 100644 --- a/test/files/pos/t3670.scala +++ b/test/files/pos/t3670.scala @@ -1,4 +1,4 @@ -class A { +class A { val n = { val z = { lazy val bb = 1 diff --git a/test/files/pos/t3731.scala b/test/files/pos/t3731.scala index 9a617012b3..75938540c0 100644 --- a/test/files/pos/t3731.scala +++ b/test/files/pos/t3731.scala @@ -2,7 +2,7 @@ object Test{ trait ZW[S]{type T} def ZipWith[S, M <: ZW[S]]: M#T = error("ZW") - // meh must be parameterised to force an asSeenFrom that + // meh must be parameterised to force an asSeenFrom that // duplicates the refinement in the TR's pre without updating its sym def meh[A] = ZipWith[A, ZW[A]{type T=Stream[A]}] diff --git a/test/files/pos/t3837.scala b/test/files/pos/t3837.scala index bcaf63cc8d..e1797dba77 100644 --- a/test/files/pos/t3837.scala +++ b/test/files/pos/t3837.scala @@ -1,8 +1,8 @@ class BipClass { } trait BipTrait { self: BipClass => - - private[this] def foo() = 5 + + private[this] def foo() = 5 def bar() = this.foo() } // error: value foo is not a member of BipTrait with BipClass diff --git a/test/files/pos/t3856.scala b/test/files/pos/t3856.scala index 71c7bdc99d..fd253a56a8 100644 --- a/test/files/pos/t3856.scala +++ b/test/files/pos/t3856.scala @@ -1,4 +1,4 @@ -case class C[T](x: T) +case class C[T](x: T) case class CS(xs: C[_]*) diff --git a/test/files/pos/t3864/tuples_1.scala b/test/files/pos/t3864/tuples_1.scala index ed0c63dc79..1d19af6e41 100644 --- a/test/files/pos/t3864/tuples_1.scala +++ b/test/files/pos/t3864/tuples_1.scala @@ -4,7 +4,7 @@ trait PimpedType[X] { trait Tuples { - + trait Tuple15W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O] extends PimpedType[Tuple15[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple15[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15)} @@ -13,7 +13,7 @@ trait Tuple15W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O] extends PimpedType[T implicit def ToTuple15W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O](t: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)): Tuple15W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O] = new { val value = t } with Tuple15W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O] - + trait Tuple16W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P] extends PimpedType[Tuple16[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple16[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16)} @@ -22,7 +22,7 @@ trait Tuple16W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P] extends PimpedTyp implicit def ToTuple16W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P](t: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)): Tuple16W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P] = new { val value = t } with Tuple16W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P] - + trait Tuple17W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q] extends PimpedType[Tuple17[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple17[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17)} @@ -31,7 +31,7 @@ trait Tuple17W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q] extends Pimped implicit def ToTuple17W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q](t: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)): Tuple17W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q] = new { val value = t } with Tuple17W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q] - + trait Tuple18W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R] extends PimpedType[Tuple18[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple18[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18)} @@ -40,7 +40,7 @@ trait Tuple18W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R] extends Pim implicit def ToTuple18W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R](t: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)): Tuple18W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R] = new { val value = t } with Tuple18W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R] - + trait Tuple19W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S] extends PimpedType[Tuple19[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple19[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19)} @@ -49,7 +49,7 @@ trait Tuple19W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S] extends implicit def ToTuple19W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S](t: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)): Tuple19W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S] = new { val value = t } with Tuple19W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S] - + trait Tuple20W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T] extends PimpedType[Tuple20[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple20[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20)} @@ -58,7 +58,7 @@ trait Tuple20W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T] exten implicit def ToTuple20W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T](t: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)): Tuple20W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T] = new { val value = t } with Tuple20W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T] - + trait Tuple21W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U] extends PimpedType[Tuple21[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple21[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21)} @@ -67,7 +67,7 @@ trait Tuple21W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U] ex implicit def ToTuple21W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U](t: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)): Tuple21W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U] = new { val value = t } with Tuple21W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U] - + trait Tuple22W[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V] extends PimpedType[Tuple22[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V]] { def fold[Z](f: => (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V) => Z): Z = {import value._; f(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22)} def toIndexedSeq[Z](implicit ev: value.type <:< Tuple22[Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z, Z]): IndexedSeq[Z] = {val zs = ev(value); import zs._; IndexedSeq(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22)} diff --git a/test/files/pos/t3866.scala b/test/files/pos/t3866.scala index 5d366ccf13..5fe7e3f50e 100644 --- a/test/files/pos/t3866.scala +++ b/test/files/pos/t3866.scala @@ -13,5 +13,5 @@ abstract class ImplicitRepeated { f("A", 1, 2) // should be implicitly resolved to alternative b) f( 1, 2 ) // should be implicitly resolved to alternative a) // ImplicitRepeated.this.f[Int, Nothing]("A", ImplicitRepeated.this.anyToN[Int](1), ImplicitRepeated.this.anyToN[Int](2)); - // ImplicitRepeated.this.f[Int, Nothing](ImplicitRepeated.this.anyToN[Int](1), ImplicitRepeated.this.anyToN[Int](2)) + // ImplicitRepeated.this.f[Int, Nothing](ImplicitRepeated.this.anyToN[Int](1), ImplicitRepeated.this.anyToN[Int](2)) }
\ No newline at end of file diff --git a/test/files/pos/t3927.scala b/test/files/pos/t3927.scala index c1344febba..eb4c4b3be5 100644 --- a/test/files/pos/t3927.scala +++ b/test/files/pos/t3927.scala @@ -3,4 +3,4 @@ object A { implicit lazy val e: Equiv[Int] = error("") implicitly[Equiv[Int]] } -} +} diff --git a/test/files/pos/t4202.scala b/test/files/pos/t4202.scala index b2a0c0120a..aca7d503ee 100644 --- a/test/files/pos/t4202.scala +++ b/test/files/pos/t4202.scala @@ -2,7 +2,7 @@ object t4202_1 { () => { trait T { def t = () - } + } } } diff --git a/test/files/pos/t4243.scala b/test/files/pos/t4243.scala index e6c66faff0..5fa8665918 100644 --- a/test/files/pos/t4243.scala +++ b/test/files/pos/t4243.scala @@ -3,16 +3,16 @@ object wrap { - + trait DomainLike[@specialized(Int) A, +This <: Domain[A]] - + trait Domain[@specialized(Int) B] extends DomainLike[B, Domain[B]] - + trait IterableDomainLike[@specialized(Int) C, +This <: IterableDomain[C]] extends DomainLike[C, This] - + trait IterableDomain[@specialized(Int) D] extends Domain[D] with IterableDomainLike[D, IterableDomain[D]] - + } diff --git a/test/files/pos/t4266.scala b/test/files/pos/t4266.scala index 222f65e970..301cc264bc 100644 --- a/test/files/pos/t4266.scala +++ b/test/files/pos/t4266.scala @@ -1,21 +1,21 @@ object Test { - + trait Tensor2Like[ - @specialized(Int) A1, - +D1 <: DomainLike[A1], + @specialized(Int) A1, + +D1 <: DomainLike[A1], +D <: Product2DomainLike[D1] ] { def domain: D; - + def checkKey(k1: A1) { domain._1.contains(k1) } } - + trait DomainLike[A] { def contains(key: A): Boolean; } - + // trait DomainLike[@specialized(Int) A] { // def contains(key: A): Boolean; // } diff --git a/test/files/pos/t4432.scala b/test/files/pos/t4432.scala index 106312311a..09f4c2ab34 100644 --- a/test/files/pos/t4432.scala +++ b/test/files/pos/t4432.scala @@ -9,7 +9,7 @@ object Main { } new A } - + def foo2 = { class B { val x = { @@ -38,5 +38,5 @@ object Main { } new D } - + } diff --git a/test/files/pos/t4457_1.scala b/test/files/pos/t4457_1.scala index 32edd6cfdc..4442f28e4a 100644 --- a/test/files/pos/t4457_1.scala +++ b/test/files/pos/t4457_1.scala @@ -15,7 +15,7 @@ object ImplicitConvAmbiguity2 { def aFunc[A](a: NN[A]) = new BB[A] def bFunc[T](e1: N[T]) = {} - + def typeMe1 { val x = aFunc(4F) bFunc(x) diff --git a/test/files/pos/tcpoly_boundedmonad.scala b/test/files/pos/tcpoly_boundedmonad.scala index ef02507b66..24a911769b 100644 --- a/test/files/pos/tcpoly_boundedmonad.scala +++ b/test/files/pos/tcpoly_boundedmonad.scala @@ -1,19 +1,19 @@ trait Monad[T <: Bound[T], MyType[x <: Bound[x]], Bound[_]] { - def map[S <: Bound[S]](f: T => S): MyType[S] + def map[S <: Bound[S]](f: T => S): MyType[S] - def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], + def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], Result[x <: RBound[x]] <: Monad[x, RContainer, RBound]] - (f: T => Result[S]): Result[S] + (f: T => Result[S]): Result[S] def filter(p: T => Boolean): MyType[T] } class Set[T <: Ordered[T]] extends Monad[T, Set, Ordered] { - def map[S <: Ordered[S]](f: T => S): Set[S] = error("TODO") - - def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], + def map[S <: Ordered[S]](f: T => S): Set[S] = error("TODO") + + def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], Result[x <: RBound[x]] <: Monad[x, RContainer, RBound]] - (f: T => Result[S]): Result[S] = error("TODO") - - def filter(p: T => Boolean): Set[T] = error("TODO") + (f: T => Result[S]): Result[S] = error("TODO") + + def filter(p: T => Boolean): Set[T] = error("TODO") } diff --git a/test/files/pos/tcpoly_bounds1.scala b/test/files/pos/tcpoly_bounds1.scala index 5874cc664d..142c0b7b7f 100644 --- a/test/files/pos/tcpoly_bounds1.scala +++ b/test/files/pos/tcpoly_bounds1.scala @@ -1,6 +1,6 @@ -class Foo[t[x]<: Pair[Int, x]] +class Foo[t[x]<: Pair[Int, x]] -// +// class MyPair[z](a: Int, b: z) extends Pair[Int, z](a,b) object foo extends Foo[MyPair] diff --git a/test/files/pos/tcpoly_checkkinds_mix.scala b/test/files/pos/tcpoly_checkkinds_mix.scala index 3734405f8b..2d265da6b9 100644 --- a/test/files/pos/tcpoly_checkkinds_mix.scala +++ b/test/files/pos/tcpoly_checkkinds_mix.scala @@ -2,9 +2,9 @@ trait Iterable[A <: Bound[A], Bound[_]] { type MyType[x <: Bound[x]] <: Iterable[x, Bound] def map[B <: Bound[B]](f: A => B): MyType[B] def flatMap[B <: Bound[B]](f: A => MyType[B]): MyType[B] - def filter(p: A => Boolean): MyType[A] + def filter(p: A => Boolean): MyType[A] } -trait OrderedSet[T <: Ordered[T]] extends Iterable[T, Ordered] { +trait OrderedSet[T <: Ordered[T]] extends Iterable[T, Ordered] { type MyType[x <: Ordered[x]] = OrderedSet[x] -} +} diff --git a/test/files/pos/tcpoly_gm.scala b/test/files/pos/tcpoly_gm.scala index 95361e0dac..ecaeef9679 100644 --- a/test/files/pos/tcpoly_gm.scala +++ b/test/files/pos/tcpoly_gm.scala @@ -1,4 +1,4 @@ -trait Rep[a] { +trait Rep[a] { def rep[m[x]]: m[a] // typedTypeApply must use asSeenFrom to adapt the return type // since rep is called on x: Rep[t] // a must become t @@ -9,7 +9,7 @@ case class ShowBin[b](app: b => String) object foo { def showBin[t](x: Rep[t], y: t): String = { val r: ShowBin[t] = x.rep[ShowBin] - r.app(y) + r.app(y) } } - + diff --git a/test/files/pos/tcpoly_higherorder_bound_method.scala b/test/files/pos/tcpoly_higherorder_bound_method.scala index 3905b3b96d..090bb8fcf3 100644 --- a/test/files/pos/tcpoly_higherorder_bound_method.scala +++ b/test/files/pos/tcpoly_higherorder_bound_method.scala @@ -1,3 +1,3 @@ trait SkolemisationOfHigherOrderBoundInMethod { def method[A, N[X <: A], M[X <: N[A]]]: Unit -} +} diff --git a/test/files/pos/tcpoly_infer_explicit_tuple_wrapper.scala b/test/files/pos/tcpoly_infer_explicit_tuple_wrapper.scala index de31efd565..97594d506d 100644 --- a/test/files/pos/tcpoly_infer_explicit_tuple_wrapper.scala +++ b/test/files/pos/tcpoly_infer_explicit_tuple_wrapper.scala @@ -7,9 +7,9 @@ class IterableOps[CC[+B] <: Iterable[B] with GenericTraversableTemplate[B, CC], object Test { - implicit def tupleOfIterableWrapper[CC[+B] <: Iterable[B] with GenericTraversableTemplate[B, CC], A1, A2](tuple: (CC[A1], Iterable[A2])) + implicit def tupleOfIterableWrapper[CC[+B] <: Iterable[B] with GenericTraversableTemplate[B, CC], A1, A2](tuple: (CC[A1], Iterable[A2])) = new IterableOps[CC, A1, A2](tuple) - + val t = (List(1, 2, 3), List(6, 5, 4)) tupleOfIterableWrapper(t) unzip diff --git a/test/files/pos/tcpoly_late_method_params.scala b/test/files/pos/tcpoly_late_method_params.scala index e2f0bcffb3..c9298918a0 100644 --- a/test/files/pos/tcpoly_late_method_params.scala +++ b/test/files/pos/tcpoly_late_method_params.scala @@ -1,5 +1,5 @@ trait Foo { - def flatMap[RT <: RBound[RT], RBound[_], Result[x <: RBound[x]]]: Result[RT] + def flatMap[RT <: RBound[RT], RBound[_], Result[x <: RBound[x]]]: Result[RT] // bounds for RT& = >: scala.this.Nothing <: RBound&[RT&] // bounds for x = >: scala.this.Nothing <: RBound&[x] } diff --git a/test/files/pos/tcpoly_method.scala b/test/files/pos/tcpoly_method.scala index 294b53b915..80dc0482fd 100644 --- a/test/files/pos/tcpoly_method.scala +++ b/test/files/pos/tcpoly_method.scala @@ -1,6 +1,6 @@ trait Iterable[m[+x], +t] { def flatMap[resColl[+x] <: Iterable[resColl, x], s](f: t => resColl[s]): resColl[s] - + def foo[a[x]] = "a" val x = foo[List] } diff --git a/test/files/pos/tcpoly_overloaded.scala b/test/files/pos/tcpoly_overloaded.scala index f67e4a9fef..4240074d85 100644 --- a/test/files/pos/tcpoly_overloaded.scala +++ b/test/files/pos/tcpoly_overloaded.scala @@ -1,10 +1,10 @@ trait Monad[T <: Bound[T], MyType[x <: Bound[x]], Bound[_]] { - def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], + def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], Result[x <: RBound[x]] <: Monad[x, RContainer, RBound]] - (f: T => Result[S]): Result[S] - def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], + (f: T => Result[S]): Result[S] + def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], Result[x <: RBound[x]] <: Monad[x, RContainer, RBound]] - (f: T => Result[S], foo: String): Result[S] + (f: T => Result[S], foo: String): Result[S] def flatMap[S <: Bound[S]] (f: T => MyType[S], foo: Int): MyType[S] } @@ -12,14 +12,14 @@ trait Monad[T <: Bound[T], MyType[x <: Bound[x]], Bound[_]] { trait Test { def moo: MList[Int] class MList[T](el: T) extends Monad[T, List, Any] { - def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], + def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], Result[x <: RBound[x]] <: Monad[x, RContainer, RBound]] (f: T => Result[S]): Result[S] = error("foo") - def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], + def flatMap[S <: RBound[S], RContainer[x <: RBound[x]], RBound[_], Result[x <: RBound[x]] <: Monad[x, RContainer, RBound]] (f: T => Result[S], foo: String): Result[S] = error("foo") def flatMap[S] - (f: T => List[S], foo: Int): List[S] = error("foo") + (f: T => List[S], foo: Int): List[S] = error("foo") } val l: MList[String] = moo.flatMap[String, List, Any, MList]((x: Int) => new MList("String")) } diff --git a/test/files/pos/tcpoly_poly.scala b/test/files/pos/tcpoly_poly.scala index 1ba04e29df..50ffc7837f 100644 --- a/test/files/pos/tcpoly_poly.scala +++ b/test/files/pos/tcpoly_poly.scala @@ -1,3 +1,3 @@ -class Monad[m[x]] +class Monad[m[x]] object ml extends Monad[List] diff --git a/test/files/pos/tcpoly_return_overriding.scala b/test/files/pos/tcpoly_return_overriding.scala index 57ec8da76c..0814e73fa4 100644 --- a/test/files/pos/tcpoly_return_overriding.scala +++ b/test/files/pos/tcpoly_return_overriding.scala @@ -2,7 +2,7 @@ trait Generic[g[x]] { def unit: g[Unit] } -trait Rep[t] { +trait Rep[t] { def rep[m[x]](implicit gen: Generic[m]): m[t] } diff --git a/test/files/pos/tcpoly_seq.scala b/test/files/pos/tcpoly_seq.scala index 48b3e1ce52..b5f46f6b6b 100644 --- a/test/files/pos/tcpoly_seq.scala +++ b/test/files/pos/tcpoly_seq.scala @@ -6,40 +6,40 @@ trait HOSeq { // values implementing this interface, in order to provide more performant ways of building that structure trait Accumulator[+coll[x], elT] { def += (el: elT): Unit - def result: coll[elT] + def result: coll[elT] } - - + + // Iterable abstracts over the type of its structure as well as its elements (see PolyP's Bifunctor) - // m[x] is intentionally unbounded: fold can then be defined nicely - // variance: if we write m[+x] instead of +m[+x], x is an invariant position because its enclosing type + // m[x] is intentionally unbounded: fold can then be defined nicely + // variance: if we write m[+x] instead of +m[+x], x is an invariant position because its enclosing type // is an invariant position -- should probably rule that out? trait Iterable[+m[+x], +t] { //def unit[a](orig: a): m[a] def iterator: Iterator[t] - + // construct an empty accumulator that will produce the same structure as this iterable, with elements of type t def accumulator[t]: Accumulator[m, t] - + def filter(p: t => Boolean): m[t] = { val buf = accumulator[t] val elems = iterator while (elems.hasNext) { val x = elems.next; if (p(x)) buf += x } buf.result } - + def map[s](f: t => s): m[s] = { val buf = accumulator[s] val elems = iterator while (elems.hasNext) buf += f(elems.next) buf.result } - + // flatMap is a more specialized map, it only works if the mapped function produces Iterable values, // which are then added to the result one by one // the compiler should be able to find the right accumulator (implicit buf) to build the result // to get concat, resColl = SingletonIterable, f = unit for SingletonIterable - def flatMap[resColl[+x] <: Iterable[resColl, x], s](f: t => resColl[s])(implicit buf: Accumulator[resColl, s]): resColl[s] = { + def flatMap[resColl[+x] <: Iterable[resColl, x], s](f: t => resColl[s])(implicit buf: Accumulator[resColl, s]): resColl[s] = { // TODO: would a viewbound for resColl[x] be better? // -- 2nd-order type params are not yet in scope in view bound val elems = iterator @@ -48,9 +48,9 @@ trait HOSeq { while (elemss.hasNext) buf += elemss.next } buf.result - } + } } - + final class ListBuffer[A] { private var start: List[A] = Nil private var last: ::[A] = _ @@ -78,7 +78,7 @@ trait HOSeq { exported = !start.isEmpty start } - + /** Clears the buffer contents. */ def clear { @@ -97,13 +97,13 @@ trait HOSeq { } } } - + implicit def listAccumulator[elT]: Accumulator[List, elT] = new Accumulator[List, elT] { private[this] val buff = new ListBuffer[elT] def += (el: elT): Unit = buff += el def result: List[elT] = buff.toList } - + trait List[+t] extends Iterable[List, t] { def head: t def tail: List[t] @@ -121,14 +121,14 @@ trait HOSeq { // construct an empty accumulator that will produce the same structure as this iterable, with elements of type t def accumulator[t]: Accumulator[List, t] = listAccumulator[t] } - + // TODO: the var tl approach does not seem to work because subtyping isn't fully working yet final case class ::[+b](hd: b, private val tl: List[b]) extends List[b] { def head = hd def tail = if(tl==null) this else tl // hack override def isEmpty: Boolean = false } - + case object Nil extends List[Nothing] { def isEmpty = true def head: Nothing = @@ -157,18 +157,18 @@ trait HOSeq { def filter(f: T=>Boolean): FilterResult def subseq(from: Int, to: Int): Subseq def flatMap[S <: Seq[K], K](f: T => S): S#Concat // legal? - def concat(others: Seq[T]): Concat + def concat(others: Seq[T]): Concat */ - + /*trait Iterator[t] { // @post hasAdvanced implies hasNext // model def hasAdvanced: Boolean - + def hasNext: Boolean // pure - + // @pre hasAdvanced def current: t // pure - + // @pre hasNext // @post hasAdvanced def advance: Unit diff --git a/test/files/pos/tcpoly_seq_typealias.scala b/test/files/pos/tcpoly_seq_typealias.scala index fb48126ce6..0651ad9760 100644 --- a/test/files/pos/tcpoly_seq_typealias.scala +++ b/test/files/pos/tcpoly_seq_typealias.scala @@ -6,42 +6,42 @@ trait HOSeq { // values implementing this interface, in order to provide more performant ways of building that structure trait Accumulator[+coll[x], elT] { def += (el: elT): Unit - def result: coll[elT] + def result: coll[elT] } - - + + // Iterable abstracts over the type of its structure as well as its elements (see PolyP's Bifunctor) - // m[x] is intentionally unbounded: fold can then be defined nicely - // variance: if we write m[+x] instead of +m[+x], x is an invariant position because its enclosing type + // m[x] is intentionally unbounded: fold can then be defined nicely + // variance: if we write m[+x] instead of +m[+x], x is an invariant position because its enclosing type // is an invariant position -- should probably rule that out? trait Iterable[+t] { - type m[+x] - + type m[+x] + //def unit[a](orig: a): m[a] def iterator: Iterator[t] - + // construct an empty accumulator that will produce the same structure as this iterable, with elements of type t def accumulator[t]: Accumulator[m, t] - + def filter(p: t => Boolean): m[t] = { val buf = accumulator[t] val elems = iterator while (elems.hasNext) { val x = elems.next; if (p(x)) buf += x } buf.result } - + def map[s](f: t => s): m[s] = { val buf = accumulator[s] val elems = iterator while (elems.hasNext) buf += f(elems.next) buf.result } - + // flatMap is a more specialized map, it only works if the mapped function produces Iterable values, // which are then added to the result one by one // the compiler should be able to find the right accumulator (implicit buf) to build the result // to get concat, resColl = SingletonIterable, f = unit for SingletonIterable - def flatMap[resColl[+x] <: Iterable[x], s](f: t => resColl[s])(implicit buf: Accumulator[resColl, s]): resColl[s] = { + def flatMap[resColl[+x] <: Iterable[x], s](f: t => resColl[s])(implicit buf: Accumulator[resColl, s]): resColl[s] = { // TODO: would a viewbound for resColl[x] be better? // -- 2nd-order type params are not yet in scope in view bound val elems = iterator @@ -50,9 +50,9 @@ trait HOSeq { while (elemss.hasNext) buf += elemss.next } buf.result - } + } } - + final class ListBuffer[A] { private var start: List[A] = Nil private var last: ::[A] = _ @@ -80,7 +80,7 @@ trait HOSeq { exported = !start.isEmpty start } - + /** Clears the buffer contents. */ def clear { @@ -99,16 +99,16 @@ trait HOSeq { } } } - + implicit def listAccumulator[elT]: Accumulator[List, elT] = new Accumulator[List, elT] { private[this] val buff = new ListBuffer[elT] def += (el: elT): Unit = buff += el def result: List[elT] = buff.toList } - + trait List[+t] extends Iterable[t] { type m[+x] = List[x] - + def head: t def tail: List[t] def isEmpty: Boolean @@ -125,14 +125,14 @@ trait HOSeq { // construct an empty accumulator that will produce the same structure as this iterable, with elements of type t def accumulator[t]: Accumulator[List, t] = listAccumulator[t] } - + // TODO: the var tl approach does not seem to work because subtyping isn't fully working yet final case class ::[+b](hd: b, private val tl: List[b]) extends List[b] { def head = hd def tail = if(tl==null) this else tl // hack override def isEmpty: Boolean = false } - + case object Nil extends List[Nothing] { def isEmpty = true def head: Nothing = diff --git a/test/files/pos/ted.scala b/test/files/pos/ted.scala index 314f109328..d8ae64f29b 100644 --- a/test/files/pos/ted.scala +++ b/test/files/pos/ted.scala @@ -9,7 +9,7 @@ object App case (b, e) => b * exponentiate(b, e - 1) } - + def main(args : Array[String]) = System.out.println(exponentiate(2, 2)) diff --git a/test/files/pos/test5.scala b/test/files/pos/test5.scala index 4dbafc9ac3..b04de5d613 100644 --- a/test/files/pos/test5.scala +++ b/test/files/pos/test5.scala @@ -53,7 +53,7 @@ object test { // Check type j.P j.chk_ip(val_mp); - j.chk_ip(val_np); + j.chk_ip(val_np); // Check type i.X i.chk_ix(i.val_ix); @@ -63,6 +63,6 @@ object test { // Check j.X j.chk_ix(j.val_ix); j.chk_ix(j.val_jx); - j.chk_ix(val_njx); + j.chk_ix(val_njx); } } diff --git a/test/files/pos/test5refine.scala b/test/files/pos/test5refine.scala index 5459b3b975..290449c3ed 100644 --- a/test/files/pos/test5refine.scala +++ b/test/files/pos/test5refine.scala @@ -60,7 +60,7 @@ object test { // Check type j.P j.chk_ip(val_mp); - j.chk_ip(val_np); + j.chk_ip(val_np); // Check type i.X i.chk_ix(i.val_ix); @@ -70,6 +70,6 @@ object test { // Check j.X j.chk_ix(j.val_ix); j.chk_ix(j.val_jx); - j.chk_ix(val_njx); + j.chk_ix(val_njx); } } diff --git a/test/files/pos/testCoercionThis.scala b/test/files/pos/testCoercionThis.scala index 5631b33306..8bbfdcd684 100644 --- a/test/files/pos/testCoercionThis.scala +++ b/test/files/pos/testCoercionThis.scala @@ -11,9 +11,9 @@ object Test { // PP: is that something we really want to work? Seems like sketchville. // // These work, so I moved this out of pending. - def testCoercionThis1 = this.baz + def testCoercionThis1 = this.baz def testCoercionThis2 = (this: Foo).baz } - - class Bar { def baz = System.out.println("baz") } + + class Bar { def baz = System.out.println("baz") } } diff --git a/test/files/pos/thistypes.scala b/test/files/pos/thistypes.scala index 7319cc1ecb..26339e07c4 100644 --- a/test/files/pos/thistypes.scala +++ b/test/files/pos/thistypes.scala @@ -5,4 +5,4 @@ trait B { trait C extends B { def foo: C.this.I; -} +} diff --git a/test/files/pos/ticket0137.scala b/test/files/pos/ticket0137.scala index 94ef8e49fc..72f955fe5e 100644 --- a/test/files/pos/ticket0137.scala +++ b/test/files/pos/ticket0137.scala @@ -1,7 +1,7 @@ -trait AbsM { - abstract class MonadCompanion[M[_]] +trait AbsM { + abstract class MonadCompanion[M[_]] abstract class AbsMonadCompanion extends MonadCompanion[AM] { - def newTag: Int + def newTag: Int } type AM[_] // to trigger the bug, this must be an abstract type member that comes after the reference to it diff --git a/test/files/pos/traits.scala b/test/files/pos/traits.scala index 8dcd9c0b5f..bd64d7215a 100644 --- a/test/files/pos/traits.scala +++ b/test/files/pos/traits.scala @@ -20,8 +20,8 @@ object Test { trait BorderedColoredShape extends Shape with Bordered with Colored { override def equals(other: Any) = other match { case that: BorderedColoredShape => ( - super.equals(that) && - super[Bordered].equals(that) && + super.equals(that) && + super[Bordered].equals(that) && super[Colored].equals(that)) case _ => false } diff --git a/test/files/pos/typealias_dubious.scala b/test/files/pos/typealias_dubious.scala index de6bb67fe3..587453a037 100644 --- a/test/files/pos/typealias_dubious.scala +++ b/test/files/pos/typealias_dubious.scala @@ -1,8 +1,8 @@ class MailBox { - //class Message + //class Message type Message = AnyRef -} - +} + abstract class Actor { private val in = new MailBox @@ -10,6 +10,6 @@ abstract class Actor { def unstable: Actor = error("foo") - def dubiousSend(msg: MailBox#Message) = + def dubiousSend(msg: MailBox#Message) = unstable.send(msg) // in.Message becomes unstable.Message, but that's ok since Message is a concrete type member -} +} diff --git a/test/files/pos/typealiases.scala b/test/files/pos/typealiases.scala index d03b521f77..5974921ed3 100644 --- a/test/files/pos/typealiases.scala +++ b/test/files/pos/typealiases.scala @@ -3,18 +3,18 @@ package foo trait Test[T] { type Check[T] = Array[T] => Unit; type MyPair[S] = (T, S) - + val pair1: (T, Int) val pair: MyPair[Int] = pair1 - + def check(xs: Array[T], c: Check[T]) = c(xs) - def check2[S](xs: Array[S], c: Check[S]) = c(xs) -} + def check2[S](xs: Array[S], c: Check[S]) = c(xs) +} -object main extends Test[Int] { - val pair1 = (1,1) +object main extends Test[Int] { + val pair1 = (1,1) implicit def topair(x: Int): Pair[Int, Int] = (x,x) - val pair2: MyPair[Int] = 1 + val pair2: MyPair[Int] = 1 val x: Short = 1 } diff --git a/test/files/pos/unapplyNeedsMemberType.scala b/test/files/pos/unapplyNeedsMemberType.scala index b423257e04..2581512a7b 100644 --- a/test/files/pos/unapplyNeedsMemberType.scala +++ b/test/files/pos/unapplyNeedsMemberType.scala @@ -8,7 +8,7 @@ trait Gunk[a] { def unapply(s: Seq) = unapply_Cons(s) } def unapply_Cons(s: Any): Option[Tuple2[a, Seq]] -} +} class Join[a] extends Gunk[a] { type Seq = JoinSeq diff --git a/test/files/pos/unapplySeq.scala b/test/files/pos/unapplySeq.scala index 6d13cc8b52..4d5409c6f7 100644 --- a/test/files/pos/unapplySeq.scala +++ b/test/files/pos/unapplySeq.scala @@ -4,7 +4,7 @@ object FooSeq { val y = x.asInstanceOf[Bar] Some(y.size, y.name) } else None - } + } def main(args:Array[String]) = { val b = new Bar diff --git a/test/files/pos/unapplyVal.scala b/test/files/pos/unapplyVal.scala index 368b9b9375..0d6394a90f 100644 --- a/test/files/pos/unapplyVal.scala +++ b/test/files/pos/unapplyVal.scala @@ -10,7 +10,7 @@ class Buffer { def joinPat(x: Any): Unit = { x match { - case Put => + case Put => case Put(y) => println("returning "+y) } @@ -29,7 +29,7 @@ object unapplyJoins extends App { // bug #1257 object Get extends Sync val jp: PartialFunction[Any, Any] = { - case Get() => + case Get() => } } diff --git a/test/files/positions/Anon.scala b/test/files/positions/Anon.scala index 940fff035a..65eb7ae477 100644 --- a/test/files/positions/Anon.scala +++ b/test/files/positions/Anon.scala @@ -2,7 +2,7 @@ object Anon { trait Foo { val bar : Int } - + def foo = new Foo { override val bar = 23 } diff --git a/test/files/positions/Enclosing1.scala b/test/files/positions/Enclosing1.scala index e170187d60..7c8fbaf4a0 100644 --- a/test/files/positions/Enclosing1.scala +++ b/test/files/positions/Enclosing1.scala @@ -1,5 +1,5 @@ object Enclosing1 { do { - + } while (true) } diff --git a/test/files/positions/ExcludedPrefix1.scala b/test/files/positions/ExcludedPrefix1.scala index f3562c37f0..72d9756b2a 100644 --- a/test/files/positions/ExcludedPrefix1.scala +++ b/test/files/positions/ExcludedPrefix1.scala @@ -5,16 +5,16 @@ object ExcludedPrefix1 { case object BLAH - + val a = 1 - + var b = 2 - + def c = 23 - + private def d = 23 @@ -22,19 +22,19 @@ object ExcludedPrefix1 { lazy val e = 23 - + private type f = Int - + val g, h = 23 - + val (i, j) = (0, 0) - + val Pair( k, l) = (0, 0) diff --git a/test/files/positions/Overlap3.scala b/test/files/positions/Overlap3.scala index 4c5f8af9d1..657c12d4fd 100644 --- a/test/files/positions/Overlap3.scala +++ b/test/files/positions/Overlap3.scala @@ -1,3 +1,3 @@ object Overlap3 { - val (a, b) = (0, 0) + val (a, b) = (0, 0) } diff --git a/test/files/positions/Scaladoc2.scala b/test/files/positions/Scaladoc2.scala index e52263d86c..78bc4acb28 100644 --- a/test/files/positions/Scaladoc2.scala +++ b/test/files/positions/Scaladoc2.scala @@ -4,13 +4,13 @@ object Scaladoc2 { * Foo */ def g {} - + /* * Blah blah */ def h{} h } - + def h {} } diff --git a/test/files/positions/Scaladoc3.scala b/test/files/positions/Scaladoc3.scala index c331b7e396..bb9d66fdb4 100644 --- a/test/files/positions/Scaladoc3.scala +++ b/test/files/positions/Scaladoc3.scala @@ -3,6 +3,6 @@ object Scaladoc3 { * Foo */ import scala.collection.mutable.ArrayBuffer - + def f {} } diff --git a/test/files/positions/Scaladoc4.scala b/test/files/positions/Scaladoc4.scala index 133cde1c85..f613dda7f5 100644 --- a/test/files/positions/Scaladoc4.scala +++ b/test/files/positions/Scaladoc4.scala @@ -3,6 +3,6 @@ object Scaladoc4 { * Foo */ 2+2 - + def f {} } diff --git a/test/files/positions/Scaladoc6.scala b/test/files/positions/Scaladoc6.scala index 8beda625ae..5c230edeb2 100644 --- a/test/files/positions/Scaladoc6.scala +++ b/test/files/positions/Scaladoc6.scala @@ -5,6 +5,6 @@ object Scaladoc6 { */ val i = 23 } - + def f {} } diff --git a/test/files/res/bug597/Test.scala b/test/files/res/bug597/Test.scala index 2f63f46c3d..45b90bb17d 100644 --- a/test/files/res/bug597/Test.scala +++ b/test/files/res/bug597/Test.scala @@ -2,7 +2,7 @@ package test; abstract class Base { type A <: Ax; - + abstract class Ax { def a = null; def string = "A"; diff --git a/test/files/res/bug722/Parser.scala b/test/files/res/bug722/Parser.scala index 7f84cb2b63..c4b303764e 100644 --- a/test/files/res/bug722/Parser.scala +++ b/test/files/res/bug722/Parser.scala @@ -2,7 +2,7 @@ package bug722; trait Parser { trait Link { - def foo() = {} + def foo() = {} } } diff --git a/test/files/res/bug735/ScalaExpressions.scala b/test/files/res/bug735/ScalaExpressions.scala index aacc412b68..eb00f49cb2 100644 --- a/test/files/res/bug735/ScalaExpressions.scala +++ b/test/files/res/bug735/ScalaExpressions.scala @@ -1,6 +1,6 @@ package bug735; trait ScalaExpressions { - trait ExpressionFactory { + trait ExpressionFactory { def foo = 10; def bar : Int; } diff --git a/test/files/res/bug743/BracesXXX.scala b/test/files/res/bug743/BracesXXX.scala index 8a2416caa8..545618daad 100644 --- a/test/files/res/bug743/BracesXXX.scala +++ b/test/files/res/bug743/BracesXXX.scala @@ -1,6 +1,6 @@ package bug743; trait BracesXXX extends ParserXXX { - trait Matchable extends IsLinked { + trait Matchable extends IsLinked { def foo : NodeImpl = null; } } diff --git a/test/files/res/bug743/ParserXXX.scala b/test/files/res/bug743/ParserXXX.scala index 6ecf13c1e1..449dd71a50 100644 --- a/test/files/res/bug743/ParserXXX.scala +++ b/test/files/res/bug743/ParserXXX.scala @@ -1,9 +1,9 @@ package bug743; trait ParserXXX { - val foo = null; - trait NodeImpl { + val foo = null; + trait NodeImpl { trait Link extends ParserXXX.this.Link { - val from = null; + val from = null; } } trait Link { diff --git a/test/files/res/bug785/ScalaNewTyper.scala b/test/files/res/bug785/ScalaNewTyper.scala index d55d60a8d0..2d1460bff5 100644 --- a/test/files/res/bug785/ScalaNewTyper.scala +++ b/test/files/res/bug785/ScalaNewTyper.scala @@ -1,7 +1,7 @@ package bug785; trait ScalaNewTyper { private var typed : String = null; - trait HasSymbol { + trait HasSymbol { protected def foo() : Unit = {} } trait HasArgsTypeParametersImpl extends HasSymbol { diff --git a/test/files/res/bug831/NewScalaParserXXX.scala b/test/files/res/bug831/NewScalaParserXXX.scala index 88c81637f0..48f78a7b4b 100644 --- a/test/files/res/bug831/NewScalaParserXXX.scala +++ b/test/files/res/bug831/NewScalaParserXXX.scala @@ -10,33 +10,33 @@ trait ScalaNodeScannerXXX { //for (val ns <-n; val i <- 0.until(ns)) yield f; -trait NewScalaScannerXXX extends ScalaNodeScannerXXX { +trait NewScalaScannerXXX extends ScalaNodeScannerXXX { type Unfixed <: Node with UnfixedImpl; trait UnfixedImpl extends super.UnfixedImpl with NodeImpl; type Statement <: Unfixed with StatementImpl; trait StatementImpl extends UnfixedImpl { def self : Statement; } type NewLine <: Statement with NewLineImpl; - trait NewLineImpl extends StatementImpl { - def self : NewLine; + trait NewLineImpl extends StatementImpl { + def self : NewLine; def isActive : Boolean = true; } object ArrowMode extends Enumeration { val Def, Case, Expr = Value } } -trait ScalaPrecedenceXXX extends NewScalaScannerXXX { +trait ScalaPrecedenceXXX extends NewScalaScannerXXX { type NewLine <: Statement with NewLineImpl; - trait NewLineImpl extends super.NewLineImpl with StatementImpl { - def self : NewLine; + trait NewLineImpl extends super.NewLineImpl with StatementImpl { + def self : NewLine; override def isActive = super[NewLineImpl].isActive; } } trait NewScalaParserXXX extends NewScalaScannerXXX with ScalaPrecedenceXXX { type NewLine <: Statement with NewLineImpl; trait MyNewLine extends super[NewScalaScannerXXX].NewLineImpl; - trait NewLineImpl extends MyNewLine with + trait NewLineImpl extends MyNewLine with super[ScalaPrecedenceXXX].NewLineImpl with - StatementImpl { - def self : NewLine; + StatementImpl { + def self : NewLine; override def isActive = super[MyNewLine].isActive; } } diff --git a/test/files/run/Course-2002-02.scala b/test/files/run/Course-2002-02.scala index b8650108ed..56d7298aaf 100644 --- a/test/files/run/Course-2002-02.scala +++ b/test/files/run/Course-2002-02.scala @@ -100,7 +100,7 @@ object M4 { def sumInts = sum(x => x) def sumCubes = sum(x => x * x * x) - def sumReciprocals = sum(1.0/_) + def sumReciprocals = sum(1.0/_) def sumPi = { n: Int => 4 + sum(x => 4.0/(4*x+1) - 4.0/(4*x-1))(1, n) } Console.println(sumInts(1,4)) @@ -194,7 +194,7 @@ object M8 { //############################################################################ object M9 { - def accumulate[t](combiner: (t, t) => t, nullValue: t, f: Int => t, + def accumulate[t](combiner: (t, t) => t, nullValue: t, f: Int => t, next: Int => Int)(a: Int, b: Int): t = if (a > b) nullValue else combiner(f(a), accumulate(combiner, nullValue, f, next)(next(a), b)) @@ -328,9 +328,9 @@ object MD { iter(a, zero) } - def plus (x:Double,y:Double) = x+y; + def plus (x:Double,y:Double) = x+y; val sum: (Int => Double) => (Int, Int) => Double = reduce(plus , 0); - def times(x:Double,y:Double) = x*y; + def times(x:Double,y:Double) = x*y; val product: (Int => Double) => (Int, Int) => Double = reduce(times, 1); def factorial(n: Int) = product(x => x)(1 , n) diff --git a/test/files/run/Course-2002-05.scala b/test/files/run/Course-2002-05.scala index e6764b92c8..9457fae147 100644 --- a/test/files/run/Course-2002-05.scala +++ b/test/files/run/Course-2002-05.scala @@ -129,7 +129,7 @@ object M3 { else { def isSafe(column: Int, placement: Placement): Boolean = placement forall { - pos => (pos._2 != column && + pos => (pos._2 != column && abs(pos._2 - column) != row - pos._1) } diff --git a/test/files/run/Course-2002-08.scala b/test/files/run/Course-2002-08.scala index 2e4b5111a9..85b0bad527 100644 --- a/test/files/run/Course-2002-08.scala +++ b/test/files/run/Course-2002-08.scala @@ -520,7 +520,7 @@ abstract class CircuitSimulator() extends BasicCircuitSimulator() { val w1 = new Wire(); val w2 = new Wire(); val w3 = new Wire(); - + andGate(in, ctrl(1), w3); andGate(in, ctrl(1), w2); andGate(in, ctrlN(1), w1); diff --git a/test/files/run/MutableListTest.scala b/test/files/run/MutableListTest.scala index 322a368b16..70431570e9 100644 --- a/test/files/run/MutableListTest.scala +++ b/test/files/run/MutableListTest.scala @@ -1,126 +1,126 @@ - - - -import scala.collection.mutable.MutableList - - - -class ExtList[T] extends MutableList[T] { - def printState { - println("Length: " + len) - println("Last elem: " + last0.elem) - println("First elem: " + first0.elem) - println("After first elem: " + first0.next.elem) - println("After first: " + first0.next) - println("Last: " + last0) - } -} - -object Test { - - def main(args: Array[String]) { - testEmpty - testAddElement - testAddFewElements - testAddMoreElements - testTraversables - } - - def testEmpty { - val mlist = new MutableList[Int] - assert(mlist.isEmpty) - assert(mlist.get(0) == None) - } - - def testAddElement { - val mlist = new MutableList[Int] - mlist += 17 - assert(mlist.nonEmpty) - assert(mlist.length == 1) - assert(mlist.head == 17) - assert(mlist.last == 17) - assert(mlist(0) == 17) - assert(mlist.tail.isEmpty) - assert(mlist.tail.length == 0) - mlist(0) = 101 - assert(mlist(0) == 101) - assert(mlist.toList == List(101)) - assert(mlist.tail.get(0) == None) - assert((mlist.tail += 19).head == 19) - assert(mlist.tail.length == 0) - } - - def testAddFewElements { - val mlist = new MutableList[Int] - for (i <- 0 until 2) mlist += i -// mlist.printState - for (i <- 0 until 2) assert(mlist(i) == i) - assert(mlist.length == 2) - assert(mlist.nonEmpty) - assert(mlist.tail.length == 1) - assert(mlist.tail.tail.length == 0) - assert(mlist.tail.tail.isEmpty) - } - - def testAddMoreElements { - val mlist = new MutableList[Int] - for (i <- 0 until 10) mlist += i * i - assert(mlist.nonEmpty) - assert(mlist.length == 10) - for (i <- 0 until 10) assert(mlist(i) == i * i) - assert(mlist(5) == 5 * 5) - assert(mlist(9) == 9 * 9) - var sometail = mlist - for (i <- 0 until 10) { - assert(sometail.head == i * i) - sometail = sometail.tail - } - mlist(5) = -25 - assert(mlist(5) == -25) - mlist(0) = -1 - assert(mlist(0) == -1) - mlist(9) = -81 - assert(mlist(9) == -81) - assert(mlist(5) == -25) - assert(mlist(0) == -1) - assert(mlist.last == -81) - mlist.clear - assert(mlist.isEmpty) - mlist += 1001 - assert(mlist.head == 1001) - mlist += 9999 - assert(mlist.tail.head == 9999) - assert(mlist.last == 9999) - } - - def testTraversables { - val mlist = new MutableList[Int] - for (i <- 0 until 10) mlist += i * i - var lst = mlist.drop(5) - for (i <- 0 until 5) assert(lst(i) == (i + 5) * (i + 5)) - lst = lst.take(3) - for (i <- 0 until 3) assert(lst(i) == (i + 5) * (i + 5)) - lst += 129 - assert(lst(3) == 129) - assert(lst.last == 129) - assert(lst.length == 4) - lst += 7 - assert(lst.init.last == 129) - assert(lst.length == 5) - lst.clear - assert(lst.length == 0) - for (i <- 0 until 5) lst += i - assert(lst.reduceLeft(_ + _) == 10) - } - -} - - - - - - - - - - +
+
+
+import scala.collection.mutable.MutableList
+
+
+
+class ExtList[T] extends MutableList[T] {
+ def printState {
+ println("Length: " + len)
+ println("Last elem: " + last0.elem)
+ println("First elem: " + first0.elem)
+ println("After first elem: " + first0.next.elem)
+ println("After first: " + first0.next)
+ println("Last: " + last0)
+ }
+}
+
+object Test {
+
+ def main(args: Array[String]) {
+ testEmpty
+ testAddElement
+ testAddFewElements
+ testAddMoreElements
+ testTraversables
+ }
+
+ def testEmpty {
+ val mlist = new MutableList[Int]
+ assert(mlist.isEmpty)
+ assert(mlist.get(0) == None)
+ }
+
+ def testAddElement {
+ val mlist = new MutableList[Int]
+ mlist += 17
+ assert(mlist.nonEmpty)
+ assert(mlist.length == 1)
+ assert(mlist.head == 17)
+ assert(mlist.last == 17)
+ assert(mlist(0) == 17)
+ assert(mlist.tail.isEmpty)
+ assert(mlist.tail.length == 0)
+ mlist(0) = 101
+ assert(mlist(0) == 101)
+ assert(mlist.toList == List(101))
+ assert(mlist.tail.get(0) == None)
+ assert((mlist.tail += 19).head == 19)
+ assert(mlist.tail.length == 0)
+ }
+
+ def testAddFewElements {
+ val mlist = new MutableList[Int]
+ for (i <- 0 until 2) mlist += i
+// mlist.printState
+ for (i <- 0 until 2) assert(mlist(i) == i)
+ assert(mlist.length == 2)
+ assert(mlist.nonEmpty)
+ assert(mlist.tail.length == 1)
+ assert(mlist.tail.tail.length == 0)
+ assert(mlist.tail.tail.isEmpty)
+ }
+
+ def testAddMoreElements {
+ val mlist = new MutableList[Int]
+ for (i <- 0 until 10) mlist += i * i
+ assert(mlist.nonEmpty)
+ assert(mlist.length == 10)
+ for (i <- 0 until 10) assert(mlist(i) == i * i)
+ assert(mlist(5) == 5 * 5)
+ assert(mlist(9) == 9 * 9)
+ var sometail = mlist
+ for (i <- 0 until 10) {
+ assert(sometail.head == i * i)
+ sometail = sometail.tail
+ }
+ mlist(5) = -25
+ assert(mlist(5) == -25)
+ mlist(0) = -1
+ assert(mlist(0) == -1)
+ mlist(9) = -81
+ assert(mlist(9) == -81)
+ assert(mlist(5) == -25)
+ assert(mlist(0) == -1)
+ assert(mlist.last == -81)
+ mlist.clear
+ assert(mlist.isEmpty)
+ mlist += 1001
+ assert(mlist.head == 1001)
+ mlist += 9999
+ assert(mlist.tail.head == 9999)
+ assert(mlist.last == 9999)
+ }
+
+ def testTraversables {
+ val mlist = new MutableList[Int]
+ for (i <- 0 until 10) mlist += i * i
+ var lst = mlist.drop(5)
+ for (i <- 0 until 5) assert(lst(i) == (i + 5) * (i + 5))
+ lst = lst.take(3)
+ for (i <- 0 until 3) assert(lst(i) == (i + 5) * (i + 5))
+ lst += 129
+ assert(lst(3) == 129)
+ assert(lst.last == 129)
+ assert(lst.length == 4)
+ lst += 7
+ assert(lst.init.last == 129)
+ assert(lst.length == 5)
+ lst.clear
+ assert(lst.length == 0)
+ for (i <- 0 until 5) lst += i
+ assert(lst.reduceLeft(_ + _) == 10)
+ }
+
+}
+
+
+
+
+
+
+
+
+
+
diff --git a/test/files/run/OrderingTest.scala b/test/files/run/OrderingTest.scala index 8af18aaba5..53448fbbce 100644 --- a/test/files/run/OrderingTest.scala +++ b/test/files/run/OrderingTest.scala @@ -6,7 +6,7 @@ object Test extends App { assert((cmp == 0) == (cmp2 == 0)) assert((cmp > 0) == (cmp2 < 0)) assert((cmp < 0) == (cmp2 > 0)) - } + } def testAll[T](t1 : T, t2 : T)(implicit ord : Ordering[T]) = { assert(ord.compare(t1, t2) < 0) @@ -16,8 +16,8 @@ object Test extends App { } assert(Ordering[String].compare("australopithecus", "brontausaurus") < 0) - // assert(Ordering[Unit].compare((), ()) == 0) - + // assert(Ordering[Unit].compare((), ()) == 0) + testAll("bar", "foo"); testAll[Byte](0, 1); testAll(false, true) @@ -28,7 +28,7 @@ object Test extends App { testAll[Iterable[Int]](List(1, 2), List(2)); testAll((1, "bar"), (1, "foo")) testAll((1, "foo"), (2, "bar")) - + // sortBy val words = "The quick brown fox jumped over the lazy dog".split(' ') val result = words.sortBy(x => (x.length, x.head)) diff --git a/test/files/run/QueueTest.scala b/test/files/run/QueueTest.scala index 859ce2071a..2f8ecaed4b 100644 --- a/test/files/run/QueueTest.scala +++ b/test/files/run/QueueTest.scala @@ -1,297 +1,297 @@ - - -import scala.collection.mutable.Queue - - - - -class ExtQueue[T] extends Queue[T] { - def printState { - println("-------------------") - println("Length: " + len) - println("First: " + first0) - println("First elem: " + first0.elem) - println("After first: " + first0.next) - } -} - -object Test { - - def main(args: Array[String]) { - testEmpty - testEnqueue - testTwoEnqueues - testFewEnqueues - testMoreEnqueues - } - - def testEmpty { - val queue = new Queue[Int] - - assert(queue.isEmpty) - assert(queue.size == 0) - assert(queue.length == 0) - assert(queue.dequeueFirst(_ > 500) == None) - assert(queue.dequeueAll(_ > 500).isEmpty) - - queue.clear - assert(queue.isEmpty) - assert(queue.size == 0) - assert(queue.length == 0) - assert(queue.dequeueFirst(_ > 500) == None) - assert(queue.dequeueAll(_ > 500).isEmpty) - } - - def testEnqueue { - val queue = new Queue[Int] - - queue.enqueue(10) - assert(queue.nonEmpty) - assert(queue.size == 1) - assert(queue.length == 1) - assert(queue.head == 10) - assert(queue(0) == 10) - assert(queue.init.isEmpty) - assert(queue.tail.isEmpty) - - queue.clear - assert(queue.isEmpty) - assert(queue.length == 0) - - queue.enqueue(11) - assert(queue.nonEmpty) - assert(queue.length == 1) - assert(queue.head == 11) - assert(queue.front == 11) - - val deq = queue.dequeue - assert(deq == 11) - assert(queue.isEmpty) - assert(queue.length == 0) - - queue.enqueue(12) - val pdopt = queue.dequeueFirst(_ > 999) - assert(pdopt == None) - assert(queue.nonEmpty && queue.length == 1) - - val somepd = queue.dequeueFirst(_ >= 1) - assert(somepd == Some(12)) - assert(queue.isEmpty && queue.length == 0) - } - - def testTwoEnqueues { - val queue = new ExtQueue[Int] - queue.enqueue(30) - queue.enqueue(40) - - assert(queue.length == 2) - assert(queue.size == 2) - assert(queue.nonEmpty) - assert(queue.front == 30) -// queue.printState - - val all = queue.dequeueAll(_ > 20) - assert(all.size == 2) - assert(all.contains(30)) - assert(all.contains(40)) - assert(queue.size == 0) - assert(queue.isEmpty) - } - - def testFewEnqueues { - val queue = new ExtQueue[Int] - queue.enqueue(10) - queue.enqueue(20) - - assert(queue.length == 2) - assert(queue.nonEmpty) - assert(queue.head == 10) - assert(queue.last == 20) - assert(queue.front == 10) -// queue.printState - - val ten = queue.dequeue - assert(ten == 10) - assert(queue.length == 1) -// queue.printState - - queue.enqueue(30) -// queue.printState - val gt25 = queue.dequeueFirst(_ > 25) - assert(gt25 == Some(30)) - assert(queue.nonEmpty) - assert(queue.length == 1) - assert(queue.head == 20) - assert(queue.front == 20) -// queue.printState - - queue.enqueue(30) -// queue.printState - val lt25 = queue.dequeueFirst(_ < 25) - assert(lt25 == Some(20)) - assert(queue.nonEmpty) - assert(queue.length == 1) -// queue.printState - - queue.enqueue(40) -// queue.printState - val all = queue.dequeueAll(_ > 20) -// queue.printState - assert(all.size == 2) - assert(all.contains(30)) - assert(all.contains(40)) - assert(queue.isEmpty) - assert(queue.length == 0) - - queue.enqueue(50) - queue.enqueue(60) -// queue.printState - val allgt55 = queue.dequeueAll(_ > 55) -// println(allgt55) -// queue.printState - assert(allgt55.size == 1) - assert(allgt55.contains(60)) - assert(queue.length == 1) - - queue.enqueue(70) - queue.enqueue(80) -// queue.printState - val alllt75 = queue.dequeueAll(_ < 75) -// queue.printState - assert(alllt75.size == 2) - assert(alllt75.contains(70)) - assert(alllt75.contains(50)) - assert(queue.length == 1) - assert(queue.head == 80) - assert(queue.last == 80) - assert(queue.front == 80) - } - - def testMoreEnqueues { - val queue = new ExtQueue[Int] - for (i <- 0 until 10) queue.enqueue(i * 2) - - for (i <- 0 until 10) { - val top = queue.dequeue - assert(top == i * 2) - assert(queue.length == 10 - i - 1) - } - assert(queue.isEmpty) - assert(queue.length == 0) - - for (i <- 0 until 10) queue.enqueue(i * i) - assert(queue.length == 10) - assert(queue.nonEmpty) - - //queue.printState - val gt5 = queue.dequeueAll(_ > 4) - //queue.printState - //println(gt5) - assert(gt5.size == 7) - assert(queue.length == 3) - assert(queue.nonEmpty) - - queue.clear - assert(queue.length == 0) - assert(queue.isEmpty) - - for (i <- 0 until 10) queue.enqueue(i) - assert(queue.length == 10) - - val even = queue.dequeueAll(_ % 2 == 0) - assert(even.size == 5) - assert(even.sameElements(List(0, 2, 4, 6, 8))) - assert(queue.length == 5) - assert(queue.head == 1) - assert(queue.last == 9) - - val odd = queue.dequeueAll(_ %2 == 1) - assert(odd.size == 5) - assert(queue.length == 0) - assert(queue.isEmpty) - assert(odd.sameElements(List(1, 3, 5, 7, 9))) - - for (i <- 0 until 10) queue.enqueue(i * i) - assert(queue.last == 81) - assert(queue.head == 0) - assert(queue.length == 10) - - val foddgt25 = queue.dequeueFirst(num => num > 25 && num % 2 == 1) - assert(foddgt25 == Some(49)) - assert(queue.length == 9) - assert(queue.nonEmpty) - - //queue.printState - val lt30 = queue.dequeueAll(_ < 30) - //println(lt30) - //queue.printState - assert(lt30.size == 6) - assert(queue.length == 3) - - val fgt60 = queue.dequeueFirst(_ > 60) - assert(fgt60 == Some(64)) - assert(queue.length == 2) - assert(queue.head == 36) - assert(queue.last == 81) - - val sgt60 = queue.dequeueFirst(_ > 60) - assert(sgt60 == Some(81)) - assert(queue.length == 1) - assert(queue.head == 36) - assert(queue.last == 36) - - val nogt60 = queue.dequeueFirst(_ > 60) - assert(nogt60 == None) - assert(queue.length == 1) - assert(queue.nonEmpty) - assert(queue.head == 36) - - val gt0 = queue.dequeueFirst(_ > 0) - assert(gt0 == Some(36)) - assert(queue.length == 0) - assert(queue.isEmpty) - - for (i <- 0 until 4) queue.enqueue(i) - val interv = queue.dequeueAll(n => n > 0 && n < 3) - assert(interv.sameElements(List(1, 2))) - assert(queue.length == 2) - assert(queue.head == 0) - assert(queue.last == 3) - - queue.dequeue - assert(queue.head == 3) - - queue.enqueue(9) - val three = queue.dequeueFirst(_ < 5) - assert(three == Some(3)) - assert(queue.length == 1) - assert(queue.head == 9) - - queue.clear - for (i <- -100 until 100) queue.enqueue(i * i + i % 7 + 5) - assert(queue.length == 200) - - val manyodds = queue.dequeueAll(_ % 2 == 1) - assert((manyodds.size + queue.length) == 200) - - queue.dequeueAll(_ > -10000) - assert(queue.isEmpty) - - for (i <- 0 until 100) queue.enqueue(i) - val multof3 = queue.dequeueAll(_ % 3 == 0) - assert(multof3.size == 34) - assert(queue.size == 66) - - val n98 = queue.dequeueFirst(_ == 98) - assert(n98 == Some(98)) - assert(queue.size == 65) - assert(queue.last == 97) - assert(queue.head == 1) - // well... seems to work - } - -} - - - - +
+
+import scala.collection.mutable.Queue
+
+
+
+
+class ExtQueue[T] extends Queue[T] {
+ def printState {
+ println("-------------------")
+ println("Length: " + len)
+ println("First: " + first0)
+ println("First elem: " + first0.elem)
+ println("After first: " + first0.next)
+ }
+}
+
+object Test {
+
+ def main(args: Array[String]) {
+ testEmpty
+ testEnqueue
+ testTwoEnqueues
+ testFewEnqueues
+ testMoreEnqueues
+ }
+
+ def testEmpty {
+ val queue = new Queue[Int]
+
+ assert(queue.isEmpty)
+ assert(queue.size == 0)
+ assert(queue.length == 0)
+ assert(queue.dequeueFirst(_ > 500) == None)
+ assert(queue.dequeueAll(_ > 500).isEmpty)
+
+ queue.clear
+ assert(queue.isEmpty)
+ assert(queue.size == 0)
+ assert(queue.length == 0)
+ assert(queue.dequeueFirst(_ > 500) == None)
+ assert(queue.dequeueAll(_ > 500).isEmpty)
+ }
+
+ def testEnqueue {
+ val queue = new Queue[Int]
+
+ queue.enqueue(10)
+ assert(queue.nonEmpty)
+ assert(queue.size == 1)
+ assert(queue.length == 1)
+ assert(queue.head == 10)
+ assert(queue(0) == 10)
+ assert(queue.init.isEmpty)
+ assert(queue.tail.isEmpty)
+
+ queue.clear
+ assert(queue.isEmpty)
+ assert(queue.length == 0)
+
+ queue.enqueue(11)
+ assert(queue.nonEmpty)
+ assert(queue.length == 1)
+ assert(queue.head == 11)
+ assert(queue.front == 11)
+
+ val deq = queue.dequeue
+ assert(deq == 11)
+ assert(queue.isEmpty)
+ assert(queue.length == 0)
+
+ queue.enqueue(12)
+ val pdopt = queue.dequeueFirst(_ > 999)
+ assert(pdopt == None)
+ assert(queue.nonEmpty && queue.length == 1)
+
+ val somepd = queue.dequeueFirst(_ >= 1)
+ assert(somepd == Some(12))
+ assert(queue.isEmpty && queue.length == 0)
+ }
+
+ def testTwoEnqueues {
+ val queue = new ExtQueue[Int]
+ queue.enqueue(30)
+ queue.enqueue(40)
+
+ assert(queue.length == 2)
+ assert(queue.size == 2)
+ assert(queue.nonEmpty)
+ assert(queue.front == 30)
+// queue.printState
+
+ val all = queue.dequeueAll(_ > 20)
+ assert(all.size == 2)
+ assert(all.contains(30))
+ assert(all.contains(40))
+ assert(queue.size == 0)
+ assert(queue.isEmpty)
+ }
+
+ def testFewEnqueues {
+ val queue = new ExtQueue[Int]
+ queue.enqueue(10)
+ queue.enqueue(20)
+
+ assert(queue.length == 2)
+ assert(queue.nonEmpty)
+ assert(queue.head == 10)
+ assert(queue.last == 20)
+ assert(queue.front == 10)
+// queue.printState
+
+ val ten = queue.dequeue
+ assert(ten == 10)
+ assert(queue.length == 1)
+// queue.printState
+
+ queue.enqueue(30)
+// queue.printState
+ val gt25 = queue.dequeueFirst(_ > 25)
+ assert(gt25 == Some(30))
+ assert(queue.nonEmpty)
+ assert(queue.length == 1)
+ assert(queue.head == 20)
+ assert(queue.front == 20)
+// queue.printState
+
+ queue.enqueue(30)
+// queue.printState
+ val lt25 = queue.dequeueFirst(_ < 25)
+ assert(lt25 == Some(20))
+ assert(queue.nonEmpty)
+ assert(queue.length == 1)
+// queue.printState
+
+ queue.enqueue(40)
+// queue.printState
+ val all = queue.dequeueAll(_ > 20)
+// queue.printState
+ assert(all.size == 2)
+ assert(all.contains(30))
+ assert(all.contains(40))
+ assert(queue.isEmpty)
+ assert(queue.length == 0)
+
+ queue.enqueue(50)
+ queue.enqueue(60)
+// queue.printState
+ val allgt55 = queue.dequeueAll(_ > 55)
+// println(allgt55)
+// queue.printState
+ assert(allgt55.size == 1)
+ assert(allgt55.contains(60))
+ assert(queue.length == 1)
+
+ queue.enqueue(70)
+ queue.enqueue(80)
+// queue.printState
+ val alllt75 = queue.dequeueAll(_ < 75)
+// queue.printState
+ assert(alllt75.size == 2)
+ assert(alllt75.contains(70))
+ assert(alllt75.contains(50))
+ assert(queue.length == 1)
+ assert(queue.head == 80)
+ assert(queue.last == 80)
+ assert(queue.front == 80)
+ }
+
+ def testMoreEnqueues {
+ val queue = new ExtQueue[Int]
+ for (i <- 0 until 10) queue.enqueue(i * 2)
+
+ for (i <- 0 until 10) {
+ val top = queue.dequeue
+ assert(top == i * 2)
+ assert(queue.length == 10 - i - 1)
+ }
+ assert(queue.isEmpty)
+ assert(queue.length == 0)
+
+ for (i <- 0 until 10) queue.enqueue(i * i)
+ assert(queue.length == 10)
+ assert(queue.nonEmpty)
+
+ //queue.printState
+ val gt5 = queue.dequeueAll(_ > 4)
+ //queue.printState
+ //println(gt5)
+ assert(gt5.size == 7)
+ assert(queue.length == 3)
+ assert(queue.nonEmpty)
+
+ queue.clear
+ assert(queue.length == 0)
+ assert(queue.isEmpty)
+
+ for (i <- 0 until 10) queue.enqueue(i)
+ assert(queue.length == 10)
+
+ val even = queue.dequeueAll(_ % 2 == 0)
+ assert(even.size == 5)
+ assert(even.sameElements(List(0, 2, 4, 6, 8)))
+ assert(queue.length == 5)
+ assert(queue.head == 1)
+ assert(queue.last == 9)
+
+ val odd = queue.dequeueAll(_ %2 == 1)
+ assert(odd.size == 5)
+ assert(queue.length == 0)
+ assert(queue.isEmpty)
+ assert(odd.sameElements(List(1, 3, 5, 7, 9)))
+
+ for (i <- 0 until 10) queue.enqueue(i * i)
+ assert(queue.last == 81)
+ assert(queue.head == 0)
+ assert(queue.length == 10)
+
+ val foddgt25 = queue.dequeueFirst(num => num > 25 && num % 2 == 1)
+ assert(foddgt25 == Some(49))
+ assert(queue.length == 9)
+ assert(queue.nonEmpty)
+
+ //queue.printState
+ val lt30 = queue.dequeueAll(_ < 30)
+ //println(lt30)
+ //queue.printState
+ assert(lt30.size == 6)
+ assert(queue.length == 3)
+
+ val fgt60 = queue.dequeueFirst(_ > 60)
+ assert(fgt60 == Some(64))
+ assert(queue.length == 2)
+ assert(queue.head == 36)
+ assert(queue.last == 81)
+
+ val sgt60 = queue.dequeueFirst(_ > 60)
+ assert(sgt60 == Some(81))
+ assert(queue.length == 1)
+ assert(queue.head == 36)
+ assert(queue.last == 36)
+
+ val nogt60 = queue.dequeueFirst(_ > 60)
+ assert(nogt60 == None)
+ assert(queue.length == 1)
+ assert(queue.nonEmpty)
+ assert(queue.head == 36)
+
+ val gt0 = queue.dequeueFirst(_ > 0)
+ assert(gt0 == Some(36))
+ assert(queue.length == 0)
+ assert(queue.isEmpty)
+
+ for (i <- 0 until 4) queue.enqueue(i)
+ val interv = queue.dequeueAll(n => n > 0 && n < 3)
+ assert(interv.sameElements(List(1, 2)))
+ assert(queue.length == 2)
+ assert(queue.head == 0)
+ assert(queue.last == 3)
+
+ queue.dequeue
+ assert(queue.head == 3)
+
+ queue.enqueue(9)
+ val three = queue.dequeueFirst(_ < 5)
+ assert(three == Some(3))
+ assert(queue.length == 1)
+ assert(queue.head == 9)
+
+ queue.clear
+ for (i <- -100 until 100) queue.enqueue(i * i + i % 7 + 5)
+ assert(queue.length == 200)
+
+ val manyodds = queue.dequeueAll(_ % 2 == 1)
+ assert((manyodds.size + queue.length) == 200)
+
+ queue.dequeueAll(_ > -10000)
+ assert(queue.isEmpty)
+
+ for (i <- 0 until 100) queue.enqueue(i)
+ val multof3 = queue.dequeueAll(_ % 3 == 0)
+ assert(multof3.size == 34)
+ assert(queue.size == 66)
+
+ val n98 = queue.dequeueFirst(_ == 98)
+ assert(n98 == Some(98))
+ assert(queue.size == 65)
+ assert(queue.last == 97)
+ assert(queue.head == 1)
+ // well... seems to work
+ }
+
+}
+
+
+
+
diff --git a/test/files/run/ReplacementMatching.scala b/test/files/run/ReplacementMatching.scala index 05040d98a3..faa46419dc 100644 --- a/test/files/run/ReplacementMatching.scala +++ b/test/files/run/ReplacementMatching.scala @@ -7,12 +7,12 @@ import util.matching._ object Test { - + def main(args: Array[String]) { replacementMatching groupsMatching } - + def replacementMatching { val regex = """\$\{(.+?)\}""".r val replaced = regex.replaceAllIn("Replacing: ${main}. And another method: ${foo}.", @@ -21,7 +21,7 @@ object Test { identifier }) assert(replaced == "Replacing: main. And another method: foo.") - + val regex3 = """\$\{(.+?)\}""".r val replaced3 = regex3.replaceSomeIn("Replacing: ${main}. And another: ${foo}.", (m: util.matching.Regex.Match) => { val id = m.group(1) @@ -29,7 +29,7 @@ object Test { }) assert(replaced3 == "Replacing: main. And another: ${foo}.") } - + def groupsMatching { val Date = """(\d+)/(\d+)/(\d+)""".r for (Regex.Groups(a, b, c) <- Date findFirstMatchIn "1/1/2001 marks the start of the millenium. 31/12/2000 doesn't.") { @@ -43,5 +43,5 @@ object Test { assert(c == "2001" || c == "2000") } } - + } diff --git a/test/files/run/ReverseSeqView.scala b/test/files/run/ReverseSeqView.scala index 2004791bff..517f1cc24c 100644 --- a/test/files/run/ReverseSeqView.scala +++ b/test/files/run/ReverseSeqView.scala @@ -5,14 +5,14 @@ object Test extends App { - + val lstv = List(1, 2, 3).view val lstvr = lstv.reverse assert(lstvr.iterator.toList == List(3, 2, 1)) assert(lstvr.reverse == List(1, 2, 3)) assert(lstvr.reverseIterator.toList == List(1, 2, 3)) assert(lstvr.reverseMap(_ + 1) == List(2, 3, 4)) - + } diff --git a/test/files/run/SymbolsTest.scala b/test/files/run/SymbolsTest.scala index 53caa5e62f..cdd68ab13e 100644 --- a/test/files/run/SymbolsTest.scala +++ b/test/files/run/SymbolsTest.scala @@ -1,283 +1,283 @@ - - - - -class Slazz { - val s1 = 'myFirstSymbol - val s2 = 'mySecondSymbol - def s3 = 'myThirdSymbol - var s4: Symbol = null - - s4 = 'myFourthSymbol -} - -class Base { - val basesymbol = 'symbase -} - -class Sub extends Base { - val subsymbol = 'symsub -} - -trait Signs { - val ind = 'indication - val trace = 'trace -} - -trait Lazy1 { - lazy val v1 = "lazy v1" - lazy val s1 = 'lazySymbol1 -} - -trait Lazy2 { - lazy val v2 = "lazy v2" - lazy val s2 = 'lazySymbol2 -} - -trait Lazy3 { - lazy val v3 = "lazy v3" - lazy val s3 = 'lazySymbol3 -} - -object SingletonOfLazyness { - lazy val lazysym = 'lazySymbol - lazy val another = 'another - lazy val lastone = 'lastone -} - -/* - * Tests symbols to see if they work correct. - */ -object Test { - class Inner { - val simba = 'smba - var mfs: Symbol = null - mfs = Symbol("mfsa") - } - - object InnerObject { - val o1 = 'aaa - val o2 = 'ddd - } - - def aSymbol = 'myFirstSymbol - val anotherSymbol = 'mySecondSymbol - - def main(args: Array[String]) { - testLiterals - testForLoop - testInnerClasses - testInnerObjects - testWithHashMaps - testLists - testAnonymous - testNestedObject - testInheritance - testTraits - testLazyTraits - testLazyObjects - } - - def testLiterals { - val scl = new Slazz - assert(scl.s1 == aSymbol) - assert(scl.s2 == anotherSymbol) - assert(scl.s3 == 'myThirdSymbol) - assert(scl.s4 == Symbol.apply("myFourthSymbol")) - assert(scl.s1 == Symbol("myFirstSymbol")) - } - - def testForLoop { - for (i <- 0 until 100) List("Val" + i) - } - - def testInnerClasses { - val innerPower = new Inner - assert(innerPower.simba == 'smba) - assert(innerPower.mfs == 'mfsa) - } - - def testInnerObjects { - assert(InnerObject.o1 == 'aaa) - assert(InnerObject.o2 == 'ddd) - } - - def testWithHashMaps { - val map = new collection.mutable.HashMap[Symbol, Symbol] - map.put(InnerObject.o1, 'smba) - map.put(InnerObject.o2, 'mfsa) - map.put(Symbol("WeirdKey" + 1), Symbol("Weird" + "Val" + 1)) - assert(map('aaa) == 'smba) - assert(map('ddd) == 'mfsa) - assert(map('WeirdKey1) == Symbol("WeirdVal1")) - - map.clear - for (i <- 0 until 100) map.put(Symbol("symKey" + i), Symbol("symVal" + i)) - assert(map(Symbol("symKey15")) == Symbol("symVal15")) - assert(map('symKey22) == 'symVal22) - assert(map('symKey73) == 'symVal73) - assert(map('symKey56) == 'symVal56) - assert(map('symKey91) == 'symVal91) - } - - def testLists { - var lst: List[Symbol] = Nil - for (i <- 0 until 100) lst ::= Symbol("lsym" + (99 - i)) - assert(lst(0) == 'lsym0) - assert(lst(10) == 'lsym10) - assert(lst(30) == 'lsym30) - assert(lst(40) == 'lsym40) - assert(lst(65) == 'lsym65) - assert(lst(90) == 'lsym90) - } - - def testAnonymous { // TODO complaints classdef can't be found for some reason, runs fine in my case - // val anon = () => { - // val simba = 'smba - // simba - // } - // val an2 = () => { - // object nested { - // val m = 'mfsa - // } - // nested.m - // } - // val an3 = () => { - // object nested { - // val f = () => { - // 'layered - // } - // def gets = f() - // } - // nested.gets - // } - // val inner = new Inner - // assert(anon() == inner.simba) - // assert(anon().toString == "'smba") - // assert(an2() == 'mfsa) - // assert(an3() == Symbol("layered" + "")) - } - - def testNestedObject { - object nested { - def sign = 'sign - def insignia = 'insignia - } - assert(nested.sign == 'sign) - assert(nested.insignia == 'insignia) - assert(('insignia).toString == "'insignia") - } - - def testInheritance { - val base = new Base - val sub = new Sub - assert(base.basesymbol == 'symbase) - assert(sub.subsymbol == 'symsub) - assert(sub.basesymbol == 'symbase) - - val anon = new Sub { - def subsubsymbol = 'symsubsub - } - assert(anon.subsubsymbol == 'symsubsub) - assert(anon.subsymbol == 'symsub) - assert(anon.basesymbol == 'symbase) - - object nested extends Sub { - def objsymbol = 'symobj - } - assert(nested.objsymbol == 'symobj) - assert(nested.subsymbol == 'symsub) - assert(nested.basesymbol == 'symbase) - assert(('symbase).toString == "'symbase") - } - - def testTraits { - val fromTrait = new AnyRef with Signs { - def traitsymbol = 'traitSymbol - } - - assert(fromTrait.traitsymbol == 'traitSymbol) - assert(fromTrait.ind == 'indication) - assert(fromTrait.trace == 'trace) - assert(('trace).toString == "'trace") - - trait Compl { - val s1 = 's1 - def s2 = 's2 - object inner { - val s3 = 's3 - val s4 = 's4 - } - } - - val compl = new Sub with Signs with Compl - assert(compl.s1 == 's1) - assert(compl.s2 == 's2) - assert(compl.inner.s3 == 's3) - assert(compl.inner.s4 == 's4) - assert(compl.ind == 'indication) - assert(compl.trace == 'trace) - assert(compl.subsymbol == 'symsub) - assert(compl.basesymbol == 'symbase) - - object Local extends Signs with Compl { - val s5 = 's5 - def s6 = 's6 - object inner2 { - val s7 = 's7 - def s8 = 's8 - } - } - assert(Local.s5 == 's5) - assert(Local.s6 == 's6) - assert(Local.inner2.s7 == 's7) - assert(Local.inner2.s8 == 's8) - assert(Local.inner.s3 == 's3) - assert(Local.inner.s4 == 's4) - assert(Local.s1 == 's1) - assert(Local.s2 == 's2) - assert(Local.trace == 'trace) - assert(Local.ind == 'indication) - assert(('s8).toString == "'s8") - } - - def testLazyTraits { - val l1 = new AnyRef with Lazy1 - val l2 = new AnyRef with Lazy2 - val l3 = new AnyRef with Lazy3 - - l1.v1 - l2.v2 - l3.v3 - assert((l1.s1).toString == "'lazySymbol1") - assert(l2.s2 == Symbol("lazySymbol" + 2)) - assert(l3.s3 == 'lazySymbol3) - } - - def testLazyObjects { - assert(SingletonOfLazyness.lazysym == 'lazySymbol) - assert(SingletonOfLazyness.another == Symbol("ano" + "ther")) - assert((SingletonOfLazyness.lastone).toString == "'lastone") - - object nested { - lazy val sym1 = 'snested1 - lazy val sym2 = 'snested2 - } - - assert(nested.sym1 == 'snested1) - assert(nested.sym2 == Symbol("snested" + "2")) - } - -} - - - - - - - - - - - - +
+
+
+
+class Slazz {
+ val s1 = 'myFirstSymbol
+ val s2 = 'mySecondSymbol
+ def s3 = 'myThirdSymbol
+ var s4: Symbol = null
+
+ s4 = 'myFourthSymbol
+}
+
+class Base {
+ val basesymbol = 'symbase
+}
+
+class Sub extends Base {
+ val subsymbol = 'symsub
+}
+
+trait Signs {
+ val ind = 'indication
+ val trace = 'trace
+}
+
+trait Lazy1 {
+ lazy val v1 = "lazy v1"
+ lazy val s1 = 'lazySymbol1
+}
+
+trait Lazy2 {
+ lazy val v2 = "lazy v2"
+ lazy val s2 = 'lazySymbol2
+}
+
+trait Lazy3 {
+ lazy val v3 = "lazy v3"
+ lazy val s3 = 'lazySymbol3
+}
+
+object SingletonOfLazyness {
+ lazy val lazysym = 'lazySymbol
+ lazy val another = 'another
+ lazy val lastone = 'lastone
+}
+
+/*
+ * Tests symbols to see if they work correct.
+ */
+object Test {
+ class Inner {
+ val simba = 'smba
+ var mfs: Symbol = null
+ mfs = Symbol("mfsa")
+ }
+
+ object InnerObject {
+ val o1 = 'aaa
+ val o2 = 'ddd
+ }
+
+ def aSymbol = 'myFirstSymbol
+ val anotherSymbol = 'mySecondSymbol
+
+ def main(args: Array[String]) {
+ testLiterals
+ testForLoop
+ testInnerClasses
+ testInnerObjects
+ testWithHashMaps
+ testLists
+ testAnonymous
+ testNestedObject
+ testInheritance
+ testTraits
+ testLazyTraits
+ testLazyObjects
+ }
+
+ def testLiterals {
+ val scl = new Slazz
+ assert(scl.s1 == aSymbol)
+ assert(scl.s2 == anotherSymbol)
+ assert(scl.s3 == 'myThirdSymbol)
+ assert(scl.s4 == Symbol.apply("myFourthSymbol"))
+ assert(scl.s1 == Symbol("myFirstSymbol"))
+ }
+
+ def testForLoop {
+ for (i <- 0 until 100) List("Val" + i)
+ }
+
+ def testInnerClasses {
+ val innerPower = new Inner
+ assert(innerPower.simba == 'smba)
+ assert(innerPower.mfs == 'mfsa)
+ }
+
+ def testInnerObjects {
+ assert(InnerObject.o1 == 'aaa)
+ assert(InnerObject.o2 == 'ddd)
+ }
+
+ def testWithHashMaps {
+ val map = new collection.mutable.HashMap[Symbol, Symbol]
+ map.put(InnerObject.o1, 'smba)
+ map.put(InnerObject.o2, 'mfsa)
+ map.put(Symbol("WeirdKey" + 1), Symbol("Weird" + "Val" + 1))
+ assert(map('aaa) == 'smba)
+ assert(map('ddd) == 'mfsa)
+ assert(map('WeirdKey1) == Symbol("WeirdVal1"))
+
+ map.clear
+ for (i <- 0 until 100) map.put(Symbol("symKey" + i), Symbol("symVal" + i))
+ assert(map(Symbol("symKey15")) == Symbol("symVal15"))
+ assert(map('symKey22) == 'symVal22)
+ assert(map('symKey73) == 'symVal73)
+ assert(map('symKey56) == 'symVal56)
+ assert(map('symKey91) == 'symVal91)
+ }
+
+ def testLists {
+ var lst: List[Symbol] = Nil
+ for (i <- 0 until 100) lst ::= Symbol("lsym" + (99 - i))
+ assert(lst(0) == 'lsym0)
+ assert(lst(10) == 'lsym10)
+ assert(lst(30) == 'lsym30)
+ assert(lst(40) == 'lsym40)
+ assert(lst(65) == 'lsym65)
+ assert(lst(90) == 'lsym90)
+ }
+
+ def testAnonymous { // TODO complaints classdef can't be found for some reason, runs fine in my case
+ // val anon = () => {
+ // val simba = 'smba
+ // simba
+ // }
+ // val an2 = () => {
+ // object nested {
+ // val m = 'mfsa
+ // }
+ // nested.m
+ // }
+ // val an3 = () => {
+ // object nested {
+ // val f = () => {
+ // 'layered
+ // }
+ // def gets = f()
+ // }
+ // nested.gets
+ // }
+ // val inner = new Inner
+ // assert(anon() == inner.simba)
+ // assert(anon().toString == "'smba")
+ // assert(an2() == 'mfsa)
+ // assert(an3() == Symbol("layered" + ""))
+ }
+
+ def testNestedObject {
+ object nested {
+ def sign = 'sign
+ def insignia = 'insignia
+ }
+ assert(nested.sign == 'sign)
+ assert(nested.insignia == 'insignia)
+ assert(('insignia).toString == "'insignia")
+ }
+
+ def testInheritance {
+ val base = new Base
+ val sub = new Sub
+ assert(base.basesymbol == 'symbase)
+ assert(sub.subsymbol == 'symsub)
+ assert(sub.basesymbol == 'symbase)
+
+ val anon = new Sub {
+ def subsubsymbol = 'symsubsub
+ }
+ assert(anon.subsubsymbol == 'symsubsub)
+ assert(anon.subsymbol == 'symsub)
+ assert(anon.basesymbol == 'symbase)
+
+ object nested extends Sub {
+ def objsymbol = 'symobj
+ }
+ assert(nested.objsymbol == 'symobj)
+ assert(nested.subsymbol == 'symsub)
+ assert(nested.basesymbol == 'symbase)
+ assert(('symbase).toString == "'symbase")
+ }
+
+ def testTraits {
+ val fromTrait = new AnyRef with Signs {
+ def traitsymbol = 'traitSymbol
+ }
+
+ assert(fromTrait.traitsymbol == 'traitSymbol)
+ assert(fromTrait.ind == 'indication)
+ assert(fromTrait.trace == 'trace)
+ assert(('trace).toString == "'trace")
+
+ trait Compl {
+ val s1 = 's1
+ def s2 = 's2
+ object inner {
+ val s3 = 's3
+ val s4 = 's4
+ }
+ }
+
+ val compl = new Sub with Signs with Compl
+ assert(compl.s1 == 's1)
+ assert(compl.s2 == 's2)
+ assert(compl.inner.s3 == 's3)
+ assert(compl.inner.s4 == 's4)
+ assert(compl.ind == 'indication)
+ assert(compl.trace == 'trace)
+ assert(compl.subsymbol == 'symsub)
+ assert(compl.basesymbol == 'symbase)
+
+ object Local extends Signs with Compl {
+ val s5 = 's5
+ def s6 = 's6
+ object inner2 {
+ val s7 = 's7
+ def s8 = 's8
+ }
+ }
+ assert(Local.s5 == 's5)
+ assert(Local.s6 == 's6)
+ assert(Local.inner2.s7 == 's7)
+ assert(Local.inner2.s8 == 's8)
+ assert(Local.inner.s3 == 's3)
+ assert(Local.inner.s4 == 's4)
+ assert(Local.s1 == 's1)
+ assert(Local.s2 == 's2)
+ assert(Local.trace == 'trace)
+ assert(Local.ind == 'indication)
+ assert(('s8).toString == "'s8")
+ }
+
+ def testLazyTraits {
+ val l1 = new AnyRef with Lazy1
+ val l2 = new AnyRef with Lazy2
+ val l3 = new AnyRef with Lazy3
+
+ l1.v1
+ l2.v2
+ l3.v3
+ assert((l1.s1).toString == "'lazySymbol1")
+ assert(l2.s2 == Symbol("lazySymbol" + 2))
+ assert(l3.s3 == 'lazySymbol3)
+ }
+
+ def testLazyObjects {
+ assert(SingletonOfLazyness.lazysym == 'lazySymbol)
+ assert(SingletonOfLazyness.another == Symbol("ano" + "ther"))
+ assert((SingletonOfLazyness.lastone).toString == "'lastone")
+
+ object nested {
+ lazy val sym1 = 'snested1
+ lazy val sym2 = 'snested2
+ }
+
+ assert(nested.sym1 == 'snested1)
+ assert(nested.sym2 == Symbol("snested" + "2"))
+ }
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/files/run/UnrolledBuffer.scala b/test/files/run/UnrolledBuffer.scala index 62a1f7d083..fe08e812ac 100644 --- a/test/files/run/UnrolledBuffer.scala +++ b/test/files/run/UnrolledBuffer.scala @@ -7,12 +7,12 @@ import collection.mutable.UnrolledBuffer object Test { - + def main(args: Array[String]) { val u1 = new UnrolledBuffer[Int] assert(u1.isEmpty) assert(u1.size == 0) - + u1 += 1 u1 += 2 u1 += 3 @@ -20,11 +20,11 @@ object Test { assert(u1.toList == List(1, 2, 3)) assert(u1.nonEmpty) assert(u1.size == 3) - + u1.clear assert(u1.isEmpty) assert(u1.size == 0) - + u1 += 1 u1 += 2 u1 += 3 @@ -33,56 +33,56 @@ object Test { assert(u1.size == 2) assert(u1 == UnrolledBuffer(1, 3)) assert(u1.toList == List(1, 3)) - + u1 concat UnrolledBuffer(5, 7, 9) assert(u1 == UnrolledBuffer(1, 3, 5, 7, 9)) - + val u2 = u1 map { x => (x - 1) / 2 } assert(u2 == UnrolledBuffer(0, 1, 2, 3, 4)) - + u1.clear u2.clear assert(u1.size == 0) assert(u2.size == 0) - + for (i <- 0 until 500) u1 += i for (i <- 500 until 1000) u2 += i assert(u1.size == 500) assert(u2.size == 500) assert(u1.iterator.toList == (0 until 500).toList) assert((for (elem <- u1) yield elem) sameElements (0 until 500)) - + u1 concat u2 assert(u1.size == 1000) assert(u2.size == 0) assertCorrect(u1) - + u1 concat UnrolledBuffer() assertCorrect(u1) - + val u3 = u1 map { x => x } var i = 0 for (elem <- u1) { assert(elem == u3(i)) i += 1 } - + u1.remove(999) assert(u1.size == 999) assertCorrect(u1) - + u1.remove(500) assert(u1.size == 998) assertCorrect(u1) - + u1.remove(5) assert(u1.size == 997) assertCorrect(u1) - + u1.remove(0) assert(u1.size == 996) assertCorrect(u1) - + u1.insert(0, 0) assert(u1.size == 997) assertCorrect(u1) @@ -90,15 +90,15 @@ object Test { u1.insert(5, 5) assert(u1.size == 998) assertCorrect(u1) - + u1.insert(500, 500) assert(u1.size == 999) assertCorrect(u1) - + u1.insert(999, 999) assert(u1.size == 1000) assertCorrect(u1) - + for (i <- -100 until 0) { i +=: u1 assertCorrect(u1) @@ -106,7 +106,7 @@ object Test { assert(u1.size == 1100) assertCorrect(u1) } - + def assertCorrect(u1: UnrolledBuffer[Int]) { val sz = u1.size val store = new Array[Int](sz) @@ -117,9 +117,9 @@ object Test { for (i <- 0 until sz) assert(u1(i) == (sz - i)) for (i <- 0 until sz) u1(i) = store(i) for (i <- 0 until sz) assert(store(i) == u1(i)) - + assert((u1 map { x => x }) == u1) assert(u1.iterator.toSeq.size == u1.size) } - + } diff --git a/test/files/run/absoverride.scala b/test/files/run/absoverride.scala index a3c03df0d7..8c6de09d2a 100644 --- a/test/files/run/absoverride.scala +++ b/test/files/run/absoverride.scala @@ -26,16 +26,16 @@ trait SyncIterator extends AbsIterator { } } trait LoggedIterator extends AbsIterator { - abstract override def next: T = { - val x = super.next; println("log: " + x); x + abstract override def next: T = { + val x = super.next; println("log: " + x); x } } -class Iter2(s: String) extends StringIterator(s) - with SyncIterator with LoggedIterator; +class Iter2(s: String) extends StringIterator(s) + with SyncIterator with LoggedIterator; object Test { def main(args: Array[String]) { class Iter extends StringIterator(args(0)) with RichIterator with SyncIterator with LoggedIterator val iter = new Iter - iter foreach Console.println + iter foreach Console.println } } diff --git a/test/files/run/arrayclone.scala b/test/files/run/arrayclone.scala index fbca38b42e..c9f7556b47 100644 --- a/test/files/run/arrayclone.scala +++ b/test/files/run/arrayclone.scala @@ -16,7 +16,7 @@ object BooleanArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = false; - assert(it(0) == true) + assert(it(0) == true) } object ByteArrayClone{ @@ -24,7 +24,7 @@ object ByteArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = 0; - assert(it(0) == 1) + assert(it(0) == 1) } object ShortArrayClone{ @@ -32,7 +32,7 @@ object ShortArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = 0; - assert(it(0) == 1) + assert(it(0) == 1) } object CharArrayClone{ @@ -40,7 +40,7 @@ object CharArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = 0; - assert(it(0) == 1) + assert(it(0) == 1) } object IntArrayClone{ @@ -48,7 +48,7 @@ object IntArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = 0; - assert(it(0) == 1) + assert(it(0) == 1) } object LongArrayClone{ @@ -56,7 +56,7 @@ object LongArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = 0; - assert(it(0) == 1) + assert(it(0) == 1) } object FloatArrayClone{ @@ -64,7 +64,7 @@ object FloatArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = 0; - assert(it(0) == 1) + assert(it(0) == 1) } object DoubleArrayClone{ @@ -72,7 +72,7 @@ object DoubleArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = 0; - assert(it(0) == 1) + assert(it(0) == 1) } object ObjectArrayClone{ @@ -80,7 +80,7 @@ object ObjectArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = "0"; - assert(it(0) == "1") + assert(it(0) == "1") } object PolymorphicArrayClone{ @@ -88,14 +88,14 @@ object PolymorphicArrayClone{ val cloned = it.clone(); assert(cloned.sameElements(it)); cloned(0) = zero; - assert(it(0) == one) - } + assert(it(0) == one) + } testIt(Array("one", "two"), "one", "two"); class Mangler[T: Manifest](ts : T*){ // this will always be a BoxedAnyArray even after we've unboxed its contents. - val it = ts.toArray[T]; + val it = ts.toArray[T]; } val mangled = new Mangler[Int](0, 1); diff --git a/test/files/run/arraycopy.scala b/test/files/run/arraycopy.scala index bb06200dc7..82c34c23e7 100644 --- a/test/files/run/arraycopy.scala +++ b/test/files/run/arraycopy.scala @@ -5,7 +5,7 @@ object Test { val a = new Array[Int](10) val b = new Array[Any](10) for (i <- 0 until 10) b(i) = i - + Array.copy(b, 3, a, 3, 7) assert(a.toSeq == List(0, 0, 0, 3, 4, 5, 6, 7, 8, 9)) } diff --git a/test/files/run/arrayview.scala b/test/files/run/arrayview.scala index 97e840f5e9..42ced5e9ac 100644 --- a/test/files/run/arrayview.scala +++ b/test/files/run/arrayview.scala @@ -1,6 +1,6 @@ object Test { def f = (1 to 100).toArray.view - + def main(args: Array[String]): Unit = { val xs = (f filter (_ < 50)).reverse.filter(_ % 2 == 0).map(_ / 2).flatMap(x => Array(1, x)) assert(xs.size == 48) diff --git a/test/files/run/bigDecimalCache.scala b/test/files/run/bigDecimalCache.scala index c0c709a50f..e8ebefee78 100644 --- a/test/files/run/bigDecimalCache.scala +++ b/test/files/run/bigDecimalCache.scala @@ -1,9 +1,9 @@ -object Test { +object Test { def main(args: Array[String]): Unit = { val bd5a = BigDecimal(5) val mc = java.math.MathContext.DECIMAL32 val bd5b = BigDecimal(5,mc) - + assert(bd5b.mc == mc) } } diff --git a/test/files/run/boolexprs.scala b/test/files/run/boolexprs.scala index b9b4faea9c..4f1c4b161a 100644 --- a/test/files/run/boolexprs.scala +++ b/test/files/run/boolexprs.scala @@ -10,7 +10,7 @@ class Counter { object Test1 { var flag = false; - def flip: Boolean = { val tmp = flag; flag = !flag; tmp } + def flip: Boolean = { val tmp = flag; flag = !flag; tmp } def run: Int = { val c = new Counter; c.incrThen(flip || flip); diff --git a/test/files/run/bug0325.scala b/test/files/run/bug0325.scala index 236f1b101f..92331ab05f 100644 --- a/test/files/run/bug0325.scala +++ b/test/files/run/bug0325.scala @@ -7,7 +7,7 @@ case class RS(self: String) { } def split(separator: Char): Array[String] = self.split(escape(separator)) - + def split(separators: Array[Char]): Array[String] = { val re = separators.foldLeft("[")(_+escape(_)) + "]" self.split(re) @@ -27,7 +27,7 @@ object Test { case e@_ => println(which + " failed with " + e.getClass) } } - + def main(args: Array[String]) { val badChars = "?*{+([\\^.$" @@ -46,8 +46,8 @@ object Test { for ((c,str) <- badCases) test(("a"+c+"b").split(str.toArray),"RichString split(\""+ str + "\")") println - + for ((c,str) <- badCases) - test(RS("a"+c+"b").split(str.toArray),"RS split(\""+ str + "\")") + test(RS("a"+c+"b").split(str.toArray),"RS split(\""+ str + "\")") } } diff --git a/test/files/run/bug1005.scala b/test/files/run/bug1005.scala index 5ccd89dd85..60129bcc51 100644 --- a/test/files/run/bug1005.scala +++ b/test/files/run/bug1005.scala @@ -10,7 +10,7 @@ object Test object FromPoly{ def main(args : Array[String]) = (new Bar[AnyRef](Array[AnyRef]("Halp!"))).bar } - + def main(args: Array[String]): Unit = { println(FromMono main null mkString) println(FromPoly main null mkString) diff --git a/test/files/run/bug1141.scala b/test/files/run/bug1141.scala index 9641343c7e..ee4f2e7fd2 100644 --- a/test/files/run/bug1141.scala +++ b/test/files/run/bug1141.scala @@ -2,6 +2,6 @@ object Test extends App { val foo = new { def apply(args : String*) = args foreach println } - + foo("var", "args") } diff --git a/test/files/run/bug1220.scala b/test/files/run/bug1220.scala index 75e0ea07e8..0ba188d02d 100644 --- a/test/files/run/bug1220.scala +++ b/test/files/run/bug1220.scala @@ -1,7 +1,7 @@ object Test extends App { class QSRichIterable[A](self: Iterable[A]) { - def filterMap[R](f: PartialFunction[A,R]) = + def filterMap[R](f: PartialFunction[A,R]) = self filter (f.isDefinedAt) map f } diff --git a/test/files/run/bug1300.scala b/test/files/run/bug1300.scala index aa3580e33c..ce2f80eb4e 100644 --- a/test/files/run/bug1300.scala +++ b/test/files/run/bug1300.scala @@ -4,10 +4,10 @@ object Test extends App // val a1 = x1.toArray[Any] val a2 = Array('a','b','c','d').toArray[Any] val a3 = Array("e","f","g","h").toArray[Any] - + Array.copy(a3, 0, a1, 0, 4) Array.copy(a2, 0, a3, 0, 4) Array.copy(a2, 0, a1, 0, 4) - + println(a1.mkString + a2.mkString + a3.mkString) } diff --git a/test/files/run/bug1309.scala b/test/files/run/bug1309.scala index d753f4d96c..6b5167eb56 100644 --- a/test/files/run/bug1309.scala +++ b/test/files/run/bug1309.scala @@ -1,6 +1,6 @@ object Test { def f(ras: => RandomAccessSeq[Byte]): RandomAccessSeq[Byte] = ras - + def main(args: Array[String]): Unit = { f(new Array[Byte](0)) } diff --git a/test/files/run/bug1333.scala b/test/files/run/bug1333.scala index 1696629cbb..514b4ffc8a 100644 --- a/test/files/run/bug1333.scala +++ b/test/files/run/bug1333.scala @@ -1,11 +1,11 @@ object Test { case class A(x: Int)(y: Int)(z: String) - + def f(x: Any) = x match { case A(x) => x case _ => -1 } - + def main(args: Array[String]): Unit = { println(f(A(10)(20)("abc"))) println(f(A(-10)(20)("abc"))) diff --git a/test/files/run/bug1427.scala b/test/files/run/bug1427.scala index ab0a42c7b7..21bd71ffef 100644 --- a/test/files/run/bug1427.scala +++ b/test/files/run/bug1427.scala @@ -9,7 +9,7 @@ object Test { def main(args: Array[String]): Unit = { val x = new Bob[List] val results = List(x, new Bob[Set], 55) map (x foo _) - + assert(results == List(true, true, false)) } } diff --git a/test/files/run/bug1766.scala b/test/files/run/bug1766.scala index 638384d4f9..2afd883755 100644 --- a/test/files/run/bug1766.scala +++ b/test/files/run/bug1766.scala @@ -1,16 +1,16 @@ object Test extends App { - + class C(s: String) { - + def this(i: Int) = this("bar") - + def f = { val v: { def n: Int } = new { val n = 3 } v.n } - + } - + new C("foo").f - + } diff --git a/test/files/run/bug2029.scala b/test/files/run/bug2029.scala index 32b04f0b47..1cbe97a350 100644 --- a/test/files/run/bug2029.scala +++ b/test/files/run/bug2029.scala @@ -3,10 +3,10 @@ object Test{ import scala.collection.immutable.TreeSet; val mainSet = TreeSet(1 to 5 :_*) - + var compareCalled = false; val smallerSet = TreeSet(2 to 4 :_*)(Ordering[Int].reverse) - + println(mainSet.mkString(",")) println(smallerSet.mkString(",")) println(smallerSet.subsetOf(mainSet)); diff --git a/test/files/run/bug2124.scala b/test/files/run/bug2124.scala index e72deb09bc..a4fd654d76 100644 --- a/test/files/run/bug2124.scala +++ b/test/files/run/bug2124.scala @@ -9,7 +9,7 @@ object Test { println(new RuleTransformer(new RewriteRule { - override def transform(n: Node): NodeSeq = { + override def transform(n: Node): NodeSeq = { val result = n match { case <t>{_*}</t> => <q/> diff --git a/test/files/run/bug2125.scala b/test/files/run/bug2125.scala index 8314e4f019..a10ed9827b 100644 --- a/test/files/run/bug2125.scala +++ b/test/files/run/bug2125.scala @@ -5,11 +5,11 @@ import scala.xml.transform._ object Test { val sampleXml = <xml:group><p><lost/><t><s><r></r></s></t></p></xml:group> - + def main(args: scala.Array[String]) { println(new RuleTransformer(new RewriteRule { - override def transform(n: Node): NodeSeq = { + override def transform(n: Node): NodeSeq = { val result = n match { diff --git a/test/files/run/bug2276.scala b/test/files/run/bug2276.scala index ed5714e9fa..f0404e5fab 100644 --- a/test/files/run/bug2276.scala +++ b/test/files/run/bug2276.scala @@ -2,7 +2,7 @@ import scala.xml._ import scala.xml.transform._ object Test extends App { - val inputXml : Node = + val inputXml : Node = <root> <subnode> <version>1</version> diff --git a/test/files/run/bug2308a.scala b/test/files/run/bug2308a.scala index fff158c772..abb568064a 100644 --- a/test/files/run/bug2308a.scala +++ b/test/files/run/bug2308a.scala @@ -1,7 +1,7 @@ object Test { trait T[M[_]] - + def f1 = classOf[T[X] forSome { type X[_] } ] - + def main(args: Array[String]): Unit = println(f1) } diff --git a/test/files/run/bug2354.scala b/test/files/run/bug2354.scala index f46db13a95..5419911ac3 100644 --- a/test/files/run/bug2354.scala +++ b/test/files/run/bug2354.scala @@ -8,7 +8,7 @@ object Test val parser1 = ConstructingParser.fromSource(Source.fromString(xml_good),false) val parser2 = ConstructingParser.fromSource(Source.fromString(xml_bad),false) - + def main(args: Array[String]): Unit = { parser1.document parser2.document diff --git a/test/files/run/bug2512.scala b/test/files/run/bug2512.scala index 8166839a9a..de20af5e72 100644 --- a/test/files/run/bug2512.scala +++ b/test/files/run/bug2512.scala @@ -3,11 +3,11 @@ import scala.tools.nsc.util.HashSet object Test { val runs = 10000 class Bop - + def main(args: Array[String]): Unit = { val set: HashSet[Bop] = HashSet("Bop", 16) (1 to runs).toList foreach (_ => set addEntry new Bop) - + assert(runs == set.size && set.size == set.iterator.length) } } diff --git a/test/files/run/bug2514.scala b/test/files/run/bug2514.scala index e23b441ecf..21c4afb472 100644 --- a/test/files/run/bug2514.scala +++ b/test/files/run/bug2514.scala @@ -1,7 +1,7 @@ object Test { implicit def x[A](a: A) = new { def xx = a } - + def main(args: Array[String]): Unit = { val r1 = 12 xx; val r2 = 12.xx @@ -9,7 +9,7 @@ object Test val r4 = 12.xx + 12.xx val r5 = 12.`xx` + 12.xx val r6 = 12.3.`xx` + 12.xx - + assert(r5 == 24) } }
\ No newline at end of file diff --git a/test/files/run/bug2552.scala b/test/files/run/bug2552.scala index 0c6b4f005b..17dcac596b 100644 --- a/test/files/run/bug2552.scala +++ b/test/files/run/bug2552.scala @@ -2,11 +2,11 @@ object Test extends App { def testTakeWhile = { val numbers = Iterator.range(0, 50) val zeroTo9 = numbers.takeWhile(x => { println("p(" + x + ")"); x < 10 } ) - + zeroTo9.foreach(println _) - + val zeroTo1 = Iterator.range(0, 20).takeWhile(x => { println("p(" + x + ")"); x < 2 } ) - + println(zeroTo1.hasNext) println(zeroTo1.hasNext) println(zeroTo1.next) @@ -15,16 +15,16 @@ object Test extends App { println(zeroTo1.hasNext) println(zeroTo1.hasNext) } - + def testFilter = { val predicate = (x: Int) => { println("p(" + x + ")"); x % 2 == 0 } - + val evens = Iterator.range(0, 10).filter(predicate) - + println(evens.hasNext) println(evens.hasNext) println(evens.next) - + evens.foreach(println _) } diff --git a/test/files/run/bug2636.scala b/test/files/run/bug2636.scala index 8c49a733fd..3271f79ffc 100644 --- a/test/files/run/bug2636.scala +++ b/test/files/run/bug2636.scala @@ -3,28 +3,28 @@ object Test type Foo = { def update(x: Int, value: String): Unit } type Foo2 = { def update(x: Int, value: String): Int } type Foo3 = { def update(x: Int, value: String): Array[Int] } - + def alen() = { type L1 = { def length: Int } def len(p: L1) = p.length val x: L1 = Array(1,2,3) len(x) } - + type A1 = { def apply(x: Int): String } def arrApply(a: A1, x: Int) = a(x) - + def main(args: Array[String]): Unit = { val arr = new Array[String](3) val p1: Foo = arr def a1 = p1(0) = "b" val p2: Foo2 = new { def update(x: Int, value: String) = { p1(1) = "o" ; 1 } } - def a2 = p2(0) = "c" - + def a2 = p2(0) = "c" + val p3: Foo3 = new { def update(x: Int, value: String) = { p1(2) = "b" ; Array(1) } } def a3 = p3(10) = "hi mom" - + a1 ; a2 ; a3 ; assert(arr.mkString == "bob") diff --git a/test/files/run/bug266.scala b/test/files/run/bug266.scala index 20a29dabbb..1fd6dab185 100644 --- a/test/files/run/bug266.scala +++ b/test/files/run/bug266.scala @@ -2,9 +2,9 @@ trait O { self: Test.type => - + Nil foreach identity - + def f = (1 to 10).toList map identity } diff --git a/test/files/run/bug2721.scala b/test/files/run/bug2721.scala index 8bd03bc838..93af884a60 100644 --- a/test/files/run/bug2721.scala +++ b/test/files/run/bug2721.scala @@ -2,9 +2,9 @@ object Test { val xml1 = <root xmlns:ns="nsUri" ns:at="rootVal"><sub ns:at="subVal"/></root> val xml2= scala.xml.XML.loadString("""<root xmlns:ns="nsUri" ns:at="rootVal"><sub ns:at="subVal"/></root>""") - + def backslashSearch(x: xml.Elem) = "root:-"+(x \ "@{nsUri}at") +"-sub:-"+(x \ "sub" \ "@{nsUri}at") +"-" - + def main(args: Array[String]): Unit = { println(backslashSearch(xml1)) println(backslashSearch(xml2)) diff --git a/test/files/run/bug2755.scala b/test/files/run/bug2755.scala index 8d10b56734..c279ecc24e 100644 --- a/test/files/run/bug2755.scala +++ b/test/files/run/bug2755.scala @@ -28,7 +28,7 @@ object Test { case x: Array[_] => 6 case _ => 7 } - + def main(args: Array[String]): Unit = { println(f1(Array(1, 2, 3))) @@ -38,7 +38,7 @@ object Test { println(f1(new Array[Any](10))) // should match as Array[AnyRef] println(f1(Array(1L))) println(f1(null)) - + println(f2(Array(1, 2, 3))) println(f2(Array(1.0, -2.0, 3.0, 1.0))) println(f2(Array(1.0f, 2.0f, 3.0f, -3.0f))) @@ -46,7 +46,7 @@ object Test { println(f2(new Array[Any](10))) // should match as Array[AnyRef] println(f2(Array(1L))) println(f2(null)) - + println(f3(Array(1, 2, 3))) println(f3(Array(1.0, -2.0, 3.0, 1.0))) println(f3(Array(1.0f, 2.0f, 3.0f, -3.0f))) diff --git a/test/files/run/bug2800.scala b/test/files/run/bug2800.scala index 84d1de0507..cc6fb30bbc 100644 --- a/test/files/run/bug2800.scala +++ b/test/files/run/bug2800.scala @@ -3,20 +3,20 @@ object Test { def f2 = (5: Any) match { case List(x @ _*) => x ; case _ => false } def f3 = (Nil: Any) match { case List(x @ _*) => x ; case _ => false } def f4 = (Array(1): Any) match { case List(x @ _*) => x ; case _ => false } - + def f5 = ("": Any) match { case Array(x @ _*) => x ; case _ => false } def f6 = (5: Any) match { case Array(x @ _*) => x ; case _ => false } def f7 = (Nil: Any) match { case Array(x @ _*) => x ; case _ => false } def f8 = (Array(1): Any) match { case Array(x @ _*) => x ; case _ => false } - + def f9 = ("": Any) match { case x @ List(_*) => x ; case _ => false } def f10 = ("": Any) match { case List(_*) => true ; case _ => false } def f11 = (Nil: Any) match { case List(_*) => true ; case _ => false } def f12 = ("": Any) match { case x @ Array(_*) => x ; case _ => false } def f13 = ("": Any) match { case Array(_*) => true ; case _ => false } def f14 = (Nil: Any) match { case Array(_*) => true ; case _ => false } - - + + def main(args: Array[String]): Unit = { println(f1) println(f2) diff --git a/test/files/run/bug2958.scala b/test/files/run/bug2958.scala index dcd24ecc36..b9563a1b77 100644 --- a/test/files/run/bug2958.scala +++ b/test/files/run/bug2958.scala @@ -2,14 +2,14 @@ object Test { def f(args: Array[String]) = args match { case Array("-p", prefix, from, to) => prefix + from + to - + case Array(from, to) => from + to case _ => "default" } - + def main(args: Array[String]) { assert(f(Array("1", "2")) == "12") } diff --git a/test/files/run/bug3050.scala b/test/files/run/bug3050.scala index d1f3f13bec..ca9d91e191 100644 --- a/test/files/run/bug3050.scala +++ b/test/files/run/bug3050.scala @@ -1,9 +1,9 @@ object Test { def main(args: Array[String]): Unit = { - val x = + val x = try { ("": Any) match { case List(_*) => true } } catch { case _ => false } - + assert(!x) } } diff --git a/test/files/run/bug3150.scala b/test/files/run/bug3150.scala index 034703b5f7..8acdb50354 100644 --- a/test/files/run/bug3150.scala +++ b/test/files/run/bug3150.scala @@ -1,7 +1,7 @@ object Test { case object Bob { override def equals(other: Any) = true } def f(x: Any) = x match { case Bob => Bob } - + def main(args: Array[String]): Unit = { assert(f(Bob) eq Bob) assert(f(0) eq Bob) diff --git a/test/files/run/bug3175.scala b/test/files/run/bug3175.scala index 78660d4085..aff2e67d0d 100644 --- a/test/files/run/bug3175.scala +++ b/test/files/run/bug3175.scala @@ -6,46 +6,46 @@ object Test { def f1(x:{ def apply(x: Int): Long }) = x(0) def f2(x:{ def apply(x: Int): Byte }) = x(0) def f3(x:{ def apply(x: Int): String }) = x(0).length - + def f4(x:{ def update(x: Int, y: Long): Unit }, y: Long) = x(0) = y def f5(x:{ def update(x: Int, y: Byte): Unit }, y: Byte) = x(0) = y def f6(x:{ def update(x: Int, y: String): Unit }, y: String) = x(0) = y - + def f7(x: { def length: Any }) = x.length - + def f8(x: { def apply(x: Int): Any }) = x(0) def f9(x: { def apply(x: Int): Int }) = x(0) def f10(x: { def apply(x: Int): Long }) = x(0) - + // update has some interesting special cases def f11(x:{ def update(x: Int, y: Long): Any }, y: Long) = x(0) = y - def f12(x:{ def update(x: Int, y: String): AnyVal }, y: String) = x(0) = y + def f12(x:{ def update(x: Int, y: String): AnyVal }, y: String) = x(0) = y def f13(x:{ def update(x: Int, y: String): AnyRef }, y: String) = x(0) = y - + // doesn't work yet, see #3197 // def fclone(x:{ def clone(): AnyRef }) = x.clone() - + def main(args: Array[String]): Unit = { val longs = Array(5L) val bytes = Array(5: Byte) val strs = Array("abcde", "fghjij") - + println(len(Array(1,2,3)) + len(Array(4.0,5.0f)) + len(Array("abc", 5)) + len("bop")) println(f1(longs) + f2(bytes) + f3(strs)) - + f4(longs, 1) f5(bytes, 1) f6(strs, "a") - + println(f1(longs) + f2(bytes) + f3(strs)) - + println(f7(Array(1,2,3))) println(f7("def")) - + println(f8(Array(5))) println(f9(Array(5))) println(f10(Array(5))) - + f11(longs, 100L) f12(strs, "jabooboo") println(longs(0)) diff --git a/test/files/run/bug3232.scala b/test/files/run/bug3232.scala index acb1a1e0e9..feff7e7089 100644 --- a/test/files/run/bug3232.scala +++ b/test/files/run/bug3232.scala @@ -4,14 +4,14 @@ object Test { val r2 = 1 to Int.MaxValue val r3 = Int.MinValue to -2 val r4 = Int.MinValue until -1 - + // some exceptional conditions val e1 = () => (0 to Int.MaxValue).length val e2 = () => (5 until 5).last - + def main(args: Array[String]): Unit = { List(r1, r2, r3, r4) foreach (x => assert(x.length == Int.MaxValue)) - + // exception required List(e1, e2) foreach { f => try { f() ; assert(false) } diff --git a/test/files/run/bug3269.scala b/test/files/run/bug3269.scala index 17e42cdb0e..6fe727111c 100644 --- a/test/files/run/bug3269.scala +++ b/test/files/run/bug3269.scala @@ -4,6 +4,6 @@ object Test { println(it.next) it.hasNext it.hasNext - it.hasNext + it.hasNext } } diff --git a/test/files/run/bug3273.scala b/test/files/run/bug3273.scala index 379a8a29c1..a4dfc4b30c 100644 --- a/test/files/run/bug3273.scala +++ b/test/files/run/bug3273.scala @@ -1,7 +1,7 @@ object Test { val num1: Stream[Int] = 1 #:: num1.map(_ + 1) val num2: Stream[Int] = 1 #:: num2.iterator.map(_ + 1).toStream - + def main(args: Array[String]): Unit = { val x1 = (num1 take 10).toList val x2 = (num2 take 10).toList diff --git a/test/files/run/bug3395.scala b/test/files/run/bug3395.scala index b4990a1716..01cc431871 100644 --- a/test/files/run/bug3395.scala +++ b/test/files/run/bug3395.scala @@ -1,11 +1,11 @@ object Test { def main(args: Array[String]): Unit = { - Seq("") match { + Seq("") match { case Seq("") => println("abc") case Seq(_, _, x) => println(x) } - - Seq(1, 2, "def") match { + + Seq(1, 2, "def") match { case Seq("") => println("abc") case Seq(_, _, x) => println(x) } diff --git a/test/files/run/bug3397.scala b/test/files/run/bug3397.scala index 2c8cbed3ab..243fe766de 100644 --- a/test/files/run/bug3397.scala +++ b/test/files/run/bug3397.scala @@ -1,7 +1,7 @@ object Test { def main(args: Array[String]): Unit = { val x = Seq(Set(1,2,3),Set(4,5,6),Set(7,8,9)).transpose - + () } } diff --git a/test/files/run/bug3509.scala b/test/files/run/bug3509.scala index 76f8d6016e..7ec150eb01 100644 --- a/test/files/run/bug3509.scala +++ b/test/files/run/bug3509.scala @@ -1,7 +1,7 @@ object Test { - class Foo(final var i:Int) - + class Foo(final var i:Int) + def main(args : Array[String]) : Unit = { val foo = new Foo(0) foo.i += 1 diff --git a/test/files/run/bug3516.scala b/test/files/run/bug3516.scala index aa302ce85a..82a97f27de 100644 --- a/test/files/run/bug3516.scala +++ b/test/files/run/bug3516.scala @@ -1,7 +1,7 @@ object Test { def mkIterator = (1 to 5).iterator map (x => { println(x) ; x }) def mkInfinite = Iterator continually { println(1) ; 1 } - + def main(args: Array[String]): Unit = { // Stream is strict in its head so we should see 1 from each of them. val s1 = mkIterator.toStream diff --git a/test/files/run/bug3518.scala b/test/files/run/bug3518.scala index 033cc19548..36ca9daaa2 100644 --- a/test/files/run/bug3518.scala +++ b/test/files/run/bug3518.scala @@ -4,7 +4,7 @@ object Test { val r3 = 10.0 to 1.0 by -0.5 val r4 = 1.0 until 1.0 by 1.0 val r5 = 1 to 100 by 2 - + def main(args: Array[String]): Unit = { assert(r3 forall (r1 contains _)) assert(r1 forall (r3 contains _)) diff --git a/test/files/run/bug3530.scala b/test/files/run/bug3530.scala index f6f7fb4229..3fedc66dbe 100644 --- a/test/files/run/bug3530.scala +++ b/test/files/run/bug3530.scala @@ -5,7 +5,7 @@ object Test { case xs @ List(_*) => "list: " + xs.length case _ => "not a list" }) - + def f2[T](x: List[T]) = println(x match { case List(_, _) => "two" case List(_, _, _) => "three" @@ -21,9 +21,9 @@ object Test { f(Nil) f(List(1,2,3,4,5)) f(null) - + println - + f2(List(1, 2)) f2(List('a', 'b', 'c')) f2(List('a', 'b', 'c', 'd')) diff --git a/test/files/run/bug3540.scala b/test/files/run/bug3540.scala index 5ffacb5dff..4eb3de780b 100644 --- a/test/files/run/bug3540.scala +++ b/test/files/run/bug3540.scala @@ -2,6 +2,6 @@ object Test { def main(args: Array[String]): Unit = { assert(List.iterate(List(1,2,3), 4)(_.tail).last.isEmpty) assert(Stream.iterate(Stream(1,2,3), 4)(_.tail).last.isEmpty) - assert(Array.iterate(Array(1,2,3), 4)(_.tail).last.isEmpty) + assert(Array.iterate(Array(1,2,3), 4)(_.tail).last.isEmpty) } } diff --git a/test/files/run/bug3563.scala b/test/files/run/bug3563.scala index 8abbb60803..2a80ef412a 100644 --- a/test/files/run/bug3563.scala +++ b/test/files/run/bug3563.scala @@ -5,17 +5,17 @@ // ticket #3563 object Test { - + def main(args: Array[String]) { var sum = 0 val setseq = Set(1, 2, 3, 4).toSeq setseq.map( n => { sum += n; n * n }).head assert(sum == 10) - + sum = 0 val mapseq = Map(1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4).toSeq mapseq.map( n => { sum += n._1; (n._1 + n._1, n._2 * n._2) }).head assert(sum == 10) } - + } diff --git a/test/files/run/bug3613.scala b/test/files/run/bug3613.scala index 3763093d30..c3b249571b 100644 --- a/test/files/run/bug3613.scala +++ b/test/files/run/bug3613.scala @@ -1,7 +1,7 @@ class Boopy { private val s = new Schnuck def observer : PartialFunction[ Any, Unit ] = s.observer - + private class Schnuck extends javax.swing.AbstractListModel { model => val observer : PartialFunction[ Any, Unit ] = { @@ -10,13 +10,13 @@ class Boopy { def getSize = 0 def getElementAt( idx: Int ) : AnyRef = "egal" } - + } object Test { def main(args: Array[String]): Unit = { val x = new Boopy val o = x.observer - o( "Boopy" ) // --> throws runtime error + o( "Boopy" ) // --> throws runtime error } } diff --git a/test/files/run/bug363.scala b/test/files/run/bug363.scala index c747be2ec9..5f3f30a098 100644 --- a/test/files/run/bug363.scala +++ b/test/files/run/bug363.scala @@ -3,7 +3,7 @@ object Test { println("I love the smell of (Array[String])Unit in the morning.") } } - + class Test { def kurtz() = "We must kill them. We must incinerate them." } diff --git a/test/files/run/bug3714.scala b/test/files/run/bug3714.scala index 2d600f97f1..c344b40f1f 100644 --- a/test/files/run/bug3714.scala +++ b/test/files/run/bug3714.scala @@ -21,7 +21,7 @@ object Test { case BreakImpl(x) => x case _ => -1 } - + def main(args: Array[String]) { val break = BreakImpl(22) // assert(f1(break) == 22) diff --git a/test/files/run/bug3822.scala b/test/files/run/bug3822.scala index c35804035e..eaf0a145d3 100644 --- a/test/files/run/bug3822.scala +++ b/test/files/run/bug3822.scala @@ -1,17 +1,17 @@ import scala.collection.{ mutable, immutable, generic } import immutable.ListSet -object Test { +object Test { def main(args: Array[String]): Unit = { val xs = ListSet(-100000 to 100001: _*) - + assert(xs.size == 200002) assert(xs.sum == 100001) - + val ys = ListSet[Int]() val ys1 = (1 to 12).grouped(3).foldLeft(ys)(_ ++ _) val ys2 = (1 to 12).foldLeft(ys)(_ + _) - + assert(ys1 == ys2) } } diff --git a/test/files/run/bug3855.scala b/test/files/run/bug3855.scala index 32dfb1e23d..e55714201f 100644 --- a/test/files/run/bug3855.scala +++ b/test/files/run/bug3855.scala @@ -1,7 +1,7 @@ object Test { def byval[A](a: => A) = a def closure[A](f: () => A) = f() - + def f1(s: String) = { var n = try { s.toInt } catch { case _ => 1 } byval(n) diff --git a/test/files/run/bug3964.scala b/test/files/run/bug3964.scala index df1eb716e8..80ba361a20 100644 --- a/test/files/run/bug3964.scala +++ b/test/files/run/bug3964.scala @@ -1,13 +1,13 @@ object Test { - class Base + class Base object Bob extends Base class Foo { def bippy = 42 } class Oof { def bippy = -21 } - + // I am more specific than you implicit def f1(x: Bob.type): Foo = new Foo implicit def f2(x: Base): Oof = new Oof - + def main(args: Array[String]): Unit = { // this would of course print an unambiguous 42 println(Bob.bippy) diff --git a/test/files/run/bug3984.scala b/test/files/run/bug3984.scala index 0747b0ee25..9a2e00a2a8 100644 --- a/test/files/run/bug3984.scala +++ b/test/files/run/bug3984.scala @@ -36,7 +36,7 @@ object MapBug { im = im + ((ih,ih)) mm = mm + ((ih,ih)) } - assert(im == mm) + assert(im == mm) val x = IH(6,4) im = im - x mm = mm - x diff --git a/test/files/run/bug4062.scala b/test/files/run/bug4062.scala index f5478e7593..6a5aea5b47 100644 --- a/test/files/run/bug4062.scala +++ b/test/files/run/bug4062.scala @@ -1,7 +1,7 @@ class A(val f : String) class B(f: String) extends A(f) { - def foo(x: String) = x match { + def foo(x: String) = x match { case `f` => true case _ => false } diff --git a/test/files/run/bug408.scala b/test/files/run/bug408.scala index 9e51e881ed..4d3dcbcb84 100644 --- a/test/files/run/bug408.scala +++ b/test/files/run/bug408.scala @@ -2,7 +2,7 @@ object Test { val a = scala.collection.immutable.Set.empty ++ (0 to 100000) val b = scala.collection.immutable.Set.empty ++ (0 to 100000) - + def main(args: Array[String]): Unit = { a -- b a -- b diff --git a/test/files/run/bug4110.scala b/test/files/run/bug4110.scala index a42646ce52..4bd377b73e 100644 --- a/test/files/run/bug4110.scala +++ b/test/files/run/bug4110.scala @@ -3,7 +3,7 @@ object Test extends App { trait A trait B - + inferredType(new A with B) val name = new A with B diff --git a/test/files/run/bug4119/J.java b/test/files/run/bug4119/J.java index ee65d33e22..42508993ea 100644 --- a/test/files/run/bug4119/J.java +++ b/test/files/run/bug4119/J.java @@ -1,6 +1,6 @@ package foo.bar; -public abstract class J { +public abstract class J { protected void foo(J j) { return; } diff --git a/test/files/run/bug4119/S.scala b/test/files/run/bug4119/S.scala index d6ae5f1b87..e5e3db5da3 100644 --- a/test/files/run/bug4119/S.scala +++ b/test/files/run/bug4119/S.scala @@ -1,6 +1,6 @@ class S extends foo.bar.J { sss => - + val fn = () => { foo(S.this) } diff --git a/test/files/run/bug4122.scala b/test/files/run/bug4122.scala index 5ff570c009..7ead2b7742 100644 --- a/test/files/run/bug4122.scala +++ b/test/files/run/bug4122.scala @@ -4,7 +4,7 @@ object Test { val sw3 = Seq('a', 'b') val sw4 = "ab".toList val all = List(sw, sw2, sw3, sw4) - + def main(args: Array[String]): Unit = { for (s1 <- all ; s2 <- all) { assert(s1 == s2, s1 + " != " + s2) diff --git a/test/files/run/bug4148.scala b/test/files/run/bug4148.scala index a7d181268d..0739403594 100644 --- a/test/files/run/bug4148.scala +++ b/test/files/run/bug4148.scala @@ -2,7 +2,7 @@ object Test { val x1 = try { "aaa".asInstanceOf[Int] } catch { case _ => "cce1" } val x2 = try { (5: Any).asInstanceOf[Int] } catch { case _ => "cce2" } val x3 = try { (new java.lang.Short(100.toShort).asInstanceOf[Int]) } catch { case _ => "cce3" } - + def main(args: Array[String]): Unit = { List(x1, x2, x3) foreach println } diff --git a/test/files/run/bug4238/J_1.java b/test/files/run/bug4238/J_1.java index 47a9c21000..21a4b182ad 100644 --- a/test/files/run/bug4238/J_1.java +++ b/test/files/run/bug4238/J_1.java @@ -3,14 +3,14 @@ import scala.*; class J_1 { scala.collection.mutable.HashMap<String, String> map = new scala.collection.mutable.HashMap<String, String>(); - + Function1<Tuple2<String, String>, Integer> f = new scala.runtime.AbstractFunction1<Tuple2<String, String>, Integer>() { public Integer apply(Tuple2<String, String> s) { return s._1().length(); } }; - + scala.collection.Seq<Integer> counts = map.groupBy(f).keys().toList(); } diff --git a/test/files/run/bug4288.scala b/test/files/run/bug4288.scala index 4e7b366f60..eafd2808f1 100644 --- a/test/files/run/bug4288.scala +++ b/test/files/run/bug4288.scala @@ -6,7 +6,7 @@ object Test { def f5 = (1 to 9).toArray.slice(-5, -1) def f6 = (1 to 9).toStream.slice(-5, -1) def f7 = (1 to 9).slice(-5, -1) - + def main(args: Array[String]): Unit = { List[Traversable[Int]](f1, f2, f3, f4, f5, f6, f7) foreach (x => assert(x.isEmpty, x)) } diff --git a/test/files/run/bug4317/S_3.scala b/test/files/run/bug4317/S_3.scala index ce8e2330e3..dd04ea31ef 100644 --- a/test/files/run/bug4317/S_3.scala +++ b/test/files/run/bug4317/S_3.scala @@ -1,4 +1,4 @@ -object Test { +object Test { def main(args: Array[String]): Unit = { val j = new J_2() println(j.bar1()) diff --git a/test/files/run/bug4387.scala b/test/files/run/bug4387.scala index f51c9b0572..68cbe97d08 100644 --- a/test/files/run/bug4387.scala +++ b/test/files/run/bug4387.scala @@ -1,11 +1,11 @@ object Test { import xml.XML.loadString def mkElem(arg: String) = <foo a="1" b="2" c="3" d="4" e={arg} /> - + val x1 = mkElem("5") val x2 = mkElem("50") - def main(args: Array[String]): Unit = { + def main(args: Array[String]): Unit = { assert(x1 == loadString("" + x1)) assert(x2 != loadString("" + x1)) } diff --git a/test/files/run/bug4570.scala b/test/files/run/bug4570.scala index 5e1a20c52d..5408caf6db 100644 --- a/test/files/run/bug4570.scala +++ b/test/files/run/bug4570.scala @@ -1,8 +1,8 @@ object Test extends Enumeration { val foo = Value def bar = withName("foo") - + def main(args: Array[String]): Unit = { - values foreach println + values foreach println } } diff --git a/test/files/run/bug4617.scala b/test/files/run/bug4617.scala index 2fea5e29ec..3a877c1915 100644 --- a/test/files/run/bug4617.scala +++ b/test/files/run/bug4617.scala @@ -3,7 +3,7 @@ object Test { def f2 = { lazy val d = 4D lazy val f = 4f - + def bar = "Str " + (d + f) bar } diff --git a/test/files/run/bug4656.scala b/test/files/run/bug4656.scala index 4f3d189c8f..ab3e3cf53d 100644 --- a/test/files/run/bug4656.scala +++ b/test/files/run/bug4656.scala @@ -6,7 +6,7 @@ object Test { buf prependToList List(4, 5, 6) l } - + def main(args: Array[String]): Unit = { println(f) } diff --git a/test/files/run/bug4671.check b/test/files/run/bug4671.check index cbc5c8ff7f..dc92c9a72f 100644 --- a/test/files/run/bug4671.check +++ b/test/files/run/bug4671.check @@ -10,7 +10,7 @@ s: scala.io.BufferedSource = non-empty iterator scala> println(s.getLines.mkString("\n")) import scala.tools.partest.ReplTest -object Test extends ReplTest { +object Test extends ReplTest { // My god...it's full of quines def code = """ object o { val file = sys.props("partest.cwd") + "/bug4671.scala" } @@ -30,7 +30,7 @@ s: scala.io.BufferedSource = non-empty iterator scala> println(s.mkString("")) import scala.tools.partest.ReplTest -object Test extends ReplTest { +object Test extends ReplTest { // My god...it's full of quines def code = """ object o { val file = sys.props("partest.cwd") + "/bug4671.scala" } diff --git a/test/files/run/bug4671.scala b/test/files/run/bug4671.scala index 0c1e5908bf..86c38d6229 100644 --- a/test/files/run/bug4671.scala +++ b/test/files/run/bug4671.scala @@ -1,6 +1,6 @@ import scala.tools.partest.ReplTest -object Test extends ReplTest { +object Test extends ReplTest { // My god...it's full of quines def code = """ object o { val file = sys.props("partest.cwd") + "/bug4671.scala" } diff --git a/test/files/run/bug4697.scala b/test/files/run/bug4697.scala index 95592172e0..728d095ff8 100644 --- a/test/files/run/bug4697.scala +++ b/test/files/run/bug4697.scala @@ -1,7 +1,7 @@ object Test { var st = Stream(0) for (i <- 1 to 10000) st = i +: st - + def main(args: Array[String]): Unit = { println(st.take(10000).sum) } diff --git a/test/files/run/bug4752.scala b/test/files/run/bug4752.scala index 3d5c166a7a..2a9fc5361f 100644 --- a/test/files/run/bug4752.scala +++ b/test/files/run/bug4752.scala @@ -2,8 +2,8 @@ object Test { object Bippy { case object Dingus } - - def main(args: Array[String]): Unit = { + + def main(args: Array[String]): Unit = { assert(None.## == "None".##, None) assert(Test.Bippy.Dingus.## == "Dingus".##, Test.Bippy.Dingus) } diff --git a/test/files/run/bug576.scala b/test/files/run/bug576.scala index 2fc929f325..dc09d8dc98 100644 --- a/test/files/run/bug576.scala +++ b/test/files/run/bug576.scala @@ -12,7 +12,7 @@ object Dingus { object Test { val x1 = new A val x2 = new A - + val x3 = new { self => override def equals(other : Any) = other match { case that: self.type => true @@ -35,11 +35,11 @@ object Test { assert(x1 != x2) assert(x1 != ()) assert(x2 != x1) - + assert(x3 == x3) assert(x3 != x2) assert(x2 != x3) - + List(x1, x2, x3, x4, Dingus) map x4.f foreach println } }
\ No newline at end of file diff --git a/test/files/run/bug603.scala b/test/files/run/bug603.scala index 361cef1f41..b8825c933b 100644 --- a/test/files/run/bug603.scala +++ b/test/files/run/bug603.scala @@ -22,7 +22,7 @@ object forceDelay { object Test { import forceDelay._ - + def main(args: Array[String]) = { val s: Susp[Int] = delay { Console.println("evaluating..."); 3 } Console.println("s = " + s) diff --git a/test/files/run/bug744.scala b/test/files/run/bug744.scala index 4895e9baa0..d5e9f6df34 100644 --- a/test/files/run/bug744.scala +++ b/test/files/run/bug744.scala @@ -5,7 +5,7 @@ trait Linked { } } object Test { - class Test extends Linked { + class Test extends Linked { trait FileImpl extends super.FileImpl { // val x: int = 1 } diff --git a/test/files/run/bug874.scala b/test/files/run/bug874.scala index d83014651b..41d124f728 100644 --- a/test/files/run/bug874.scala +++ b/test/files/run/bug874.scala @@ -5,7 +5,7 @@ object Test { } U("xyz")(2) } - class Mix extends Base { + class Mix extends Base { case class U[A](x1: A)(x2: Int) { Console.println("U created with "+x1+" and "+x2) } diff --git a/test/files/run/bug920.scala b/test/files/run/bug920.scala index 6a7f122d55..1e12e6ba87 100644 --- a/test/files/run/bug920.scala +++ b/test/files/run/bug920.scala @@ -7,7 +7,7 @@ object Test { trait Foo extends Test.Foo0 { def foo : B.this.type = B.this; } - class baz extends Baz with Foo { + class baz extends Baz with Foo { override def toString = "baz" } Console.println(new baz); diff --git a/test/files/run/bugs.scala b/test/files/run/bugs.scala index bbf2a0fb39..d5905af76c 100644 --- a/test/files/run/bugs.scala +++ b/test/files/run/bugs.scala @@ -304,7 +304,7 @@ object Bug250Test { // Bug 257 object Bug257Test { - def sayhello(): Unit = { Console.println("I should come 1st and 2nd"); }; + def sayhello(): Unit = { Console.println("I should come 1st and 2nd"); }; def sayhi(): Unit = { Console.println("I should come last"); }; def f1(x: Unit): Unit = (); diff --git a/test/files/run/bugs2087-and-2400.scala b/test/files/run/bugs2087-and-2400.scala index 19a5df26e3..93cd633ffb 100644 --- a/test/files/run/bugs2087-and-2400.scala +++ b/test/files/run/bugs2087-and-2400.scala @@ -3,14 +3,14 @@ object Test def negativeCharMaker = new (Short => Char) { def apply(x: Short) = x.toChar } def main(args: Array[String]): Unit = { // throws exception if -100 gets to Character.valueOf - val x = negativeCharMaker(-100) - + val x = negativeCharMaker(-100) + // chars are unsigned, they should never be equal to negative values assert((-100).toShort != (-100).toChar) assert((-100).toChar != (-100).toShort) assert((-100).toChar != (-100).toByte) assert((-100).toByte != (-100).toChar) - + // BoxesRunTime must agree as well assert(((-100).toShort: Any) != (-100).toChar) assert(((-100).toChar: Any) != (-100).toShort) diff --git a/test/files/run/caseClassEquality.scala b/test/files/run/caseClassEquality.scala index c11d7ad0d1..4940d80951 100644 --- a/test/files/run/caseClassEquality.scala +++ b/test/files/run/caseClassEquality.scala @@ -11,25 +11,25 @@ object Test { case _ => false } } - + case class CS1(xs: Any*) class CS2(xs: Seq[_]*) extends CS1(xs: _*) class CS3(xs: IndexedSeq[Int]*) extends CS2(xs: _*) - + case class H1(x: Int, y: Double) class H2(x: Double, y: Int) extends H1(y, x) - + def main(args: Array[String]): Unit = { assert(C1(5) == new C2(5)) assert(new C2(5) == C1(5)) assert(C1(5).hashCode == new C2(5).hashCode) assert(new C2(5).hashCode == C1(5).hashCode) - + assert(C1(5) != new C3(5)) assert(new C3(5) != C1(5)) - + assert(CS1(List(1d,2d), Seq[Float](3f, 4f)) == new CS3(IndexedSeq(1,2), IndexedSeq(3, 4))) - + assert(H1(5, 10d) == new H2(10d, 5)) assert(H1(5, 10d).hashCode == new H2(10d, 5).hashCode) } diff --git a/test/files/run/castsingleton.scala b/test/files/run/castsingleton.scala index 339f5e00cf..47bd613079 100644 --- a/test/files/run/castsingleton.scala +++ b/test/files/run/castsingleton.scala @@ -8,4 +8,4 @@ object Test extends App { } empty(L()) -} +} diff --git a/test/files/run/checked.scala b/test/files/run/checked.scala index e4db9c0916..06bc0c05e5 100644 --- a/test/files/run/checked.scala +++ b/test/files/run/checked.scala @@ -23,9 +23,9 @@ trait T { // Should not throw class D extends B with T { val sum = x + y + z + b1 + b2 + t1 + t2 - override def toString = + override def toString = "sum = " + sum - + } abstract class NeedsXEarly { @@ -91,7 +91,7 @@ class TestInterference extends { object Test extends App { - + def shouldThrow(t: => Unit) = try { t println("[FAIL]: No UFE thrown") diff --git a/test/files/run/classof.scala b/test/files/run/classof.scala index b50facc1e9..10c07d2e51 100644 --- a/test/files/run/classof.scala +++ b/test/files/run/classof.scala @@ -13,14 +13,14 @@ object Test { println(classOf[Long]) println(classOf[Float]) println(classOf[Double]) - + println("Class types") println(classOf[SomeClass]) println(classOf[List[Array[Float]]]) println(classOf[(String, Map[Int, String])]) println("Arrays:") - println(classOf[Array[Unit]]) + println(classOf[Array[Unit]]) println(classOf[Array[Int]]) println(classOf[Array[Double]]) println(classOf[Array[List[String]]]) diff --git a/test/files/run/collections-toSelf.scala b/test/files/run/collections-toSelf.scala index 02f1dd6a95..2adbc22af7 100644 --- a/test/files/run/collections-toSelf.scala +++ b/test/files/run/collections-toSelf.scala @@ -2,7 +2,7 @@ object Test { val map = Map(1 -> 2) val set = Set(1, 2) val seq = collection.immutable.Seq(1, 2) - + def main(args: Array[String]): Unit = { assert(map.toMap eq map) assert(set.toSet eq set) diff --git a/test/files/run/collections.scala b/test/files/run/collections.scala index deab5aa210..60f0765e6a 100644 --- a/test/files/run/collections.scala +++ b/test/files/run/collections.scala @@ -61,7 +61,7 @@ object Test extends App { } time { var x = 0 - for (i <- 0 to 10000) + for (i <- 0 to 10000) s get i match { case Some(i) => x += i case None => @@ -96,7 +96,7 @@ object Test extends App { } time { var x = 0 - for (i <- 0 to 10000) + for (i <- 0 to 10000) s get i match { case Some(i) => x += i case None => diff --git a/test/files/run/colltest1.scala b/test/files/run/colltest1.scala index 0e4c7e574c..1cbd932222 100644 --- a/test/files/run/colltest1.scala +++ b/test/files/run/colltest1.scala @@ -61,7 +61,7 @@ object Test extends App { assert(ten.toStream == ten) assert(ten.toString endsWith "(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)") assert(ten.mkString("[", "; ", "]") endsWith "[1; 2; 3; 4; 5; 6; 7; 8; 9; 10]") - } + } def orderedIterableTest(empty: Iterable[Int]) { orderedTraversableTest(empty) @@ -84,7 +84,7 @@ object Test extends App { assert(ten(0) == 1 && ten(9) == 10) assert((ten lengthCompare 10) == 0 && (ten lengthCompare 1) > 0 && (ten lengthCompare 11) < 0) assert((ten isDefinedAt 0) && (ten isDefinedAt 9)) - assert(!(ten isDefinedAt -1)); + assert(!(ten isDefinedAt -1)); assert(!(ten isDefinedAt 10)) val tenten = ten zip ten assert((tenten map (_._1)) == ten) @@ -174,8 +174,8 @@ object Test extends App { m ++= ('J' to 'Z') map (x => (x.toString -> x.toString)) println(m.toList.sorted) assert(!m.isEmpty) - assert(m.keySet forall (k => (m get k) == Some(k))) - assert(m.keySet forall (k => (m apply k) == k)) + assert(m.keySet forall (k => (m get k) == Some(k))) + assert(m.keySet forall (k => (m apply k) == k)) assert(m.keySet forall (m contains)) assert(m.getOrElse("7", "@") == "@") assert(m.keySet.size == 26) diff --git a/test/files/run/comparable-comparator.scala b/test/files/run/comparable-comparator.scala index aafe10eb59..ac943c63bb 100644 --- a/test/files/run/comparable-comparator.scala +++ b/test/files/run/comparable-comparator.scala @@ -1,7 +1,7 @@ object Test { import java.util.Comparator - + class C1(val s: String) extends Comparable[C1] { def compareTo(other: C1) = s compareTo other.s override def toString = s @@ -10,7 +10,7 @@ object Test { def compareTo(other: C2) = s compareTo other.s override def toString = s } - + implicit val cmp: Comparator[C2] = new Comparator[C2] { def compare(p1: C2, p2: C2) = p2.s compareTo p1.s } @@ -18,10 +18,10 @@ object Test { val strs = "zip foo bar baz aggle bing bong" split ' ' toList val c1s = strs map (x => new C1(x)) val c2s = strs map (x => new C2(x)) - + val sorted1 = c1s.sorted map (_.s) val sorted2 = c2s.sorted map (_.s) - + def main(args: Array[String]): Unit = { assert(sorted1 == sorted2.reverse) } diff --git a/test/files/run/concat-two-strings.scala b/test/files/run/concat-two-strings.scala index c8881aa146..ad796fe0ee 100644 --- a/test/files/run/concat-two-strings.scala +++ b/test/files/run/concat-two-strings.scala @@ -8,7 +8,7 @@ object Test { def f4(x: List[Int]) = "" + x def f5(x: Any) = "" + x def f6(x: AnyVal) = "" + x - + def main(args: Array[String]): Unit = { List(f1("a"), f2(5), f3(null), f3(Array('a')), f4(List(1)), f5(null), f6(55d)) mkString "" } diff --git a/test/files/run/constrained-types.check b/test/files/run/constrained-types.check index 6d6cc13455..66580f063a 100644 --- a/test/files/run/constrained-types.check +++ b/test/files/run/constrained-types.check @@ -14,7 +14,7 @@ scala> class A { val x = "hello" val y: Int @Annot(x) = 10 override def toString = "an A" -} +} defined class A scala> @@ -22,7 +22,7 @@ scala> scala> val a = new A a: A = an A -scala> val y = a.y // should rewrite "this.x" to "a.x" +scala> val y = a.y // should rewrite "this.x" to "a.x" y: Int @Annot(a.x) = 10 scala> var a2 = new A diff --git a/test/files/run/constrained-types.scala b/test/files/run/constrained-types.scala index 91bd856d00..38ae076c06 100644 --- a/test/files/run/constrained-types.scala +++ b/test/files/run/constrained-types.scala @@ -15,10 +15,10 @@ class A { val x = "hello" val y: Int @Annot(x) = 10 override def toString = "an A" -} +} val a = new A -val y = a.y // should rewrite "this.x" to "a.x" +val y = a.y // should rewrite "this.x" to "a.x" var a2 = new A val y2 = a2.y // should drop the annotation diff --git a/test/files/run/ctor-order.scala b/test/files/run/ctor-order.scala index 5f5871691a..a223ff77e8 100644 --- a/test/files/run/ctor-order.scala +++ b/test/files/run/ctor-order.scala @@ -8,7 +8,7 @@ class Outer { class X extends { /* The constructor of X should set this.$outer to the outer instance - * *before* calling the super constructors. This is tested by + * *before* calling the super constructors. This is tested by * mixin M1, which tries to access global from the enclosing class. */ val outer = Outer.this diff --git a/test/files/run/distinct.scala b/test/files/run/distinct.scala index 698d31f1e9..09e5a0734a 100644 --- a/test/files/run/distinct.scala +++ b/test/files/run/distinct.scala @@ -5,7 +5,7 @@ object Test { val alphabet = 'a' to 'z' mkString "" val alphaList = 'a' to 'z' toList def shuffled = util.Random.shuffle(alphaList) - + def main(args: Array[String]): Unit = { val longList = alphaList ++ (1 to 9 flatMap (_ => shuffled)) val result = longList.distinct mkString "" diff --git a/test/files/run/elidable-noflags.scala b/test/files/run/elidable-noflags.scala index 1b9c5118bb..5192e34096 100644 --- a/test/files/run/elidable-noflags.scala +++ b/test/files/run/elidable-noflags.scala @@ -9,7 +9,7 @@ object Test { @elidable(100000) def f5() = println("Good for me, I was not elided.") @elidable(OFF) def f6() = println("Good for me, I was not elided.") @elidable(ALL) def f7() = println("ESPECIALLY good for me, I was not elided.") - + def main(args: Array[String]): Unit = { f1() f2() diff --git a/test/files/run/elidable.scala b/test/files/run/elidable.scala index 2a527efc4b..264efbad59 100644 --- a/test/files/run/elidable.scala +++ b/test/files/run/elidable.scala @@ -6,7 +6,7 @@ object Test { @elidable(INFO) def f2() = assert(false, "Should have been elided.") @elidable(SEVERE) def f3() = println("Good for me, I was not elided.") @elidable(INFO) def f4 = assert(false, "Should have been elided (no parens).") - + def main(args: Array[String]): Unit = { f1() f2() diff --git a/test/files/run/equality.scala b/test/files/run/equality.scala index ff59898821..68055fd012 100644 --- a/test/files/run/equality.scala +++ b/test/files/run/equality.scala @@ -2,7 +2,7 @@ object Test { import scala.runtime.ScalaRunTime.hash - + def makeFromInt(x: Int) = List( x.toByte, x.toShort, x.toInt, x.toLong, x.toFloat, x.toDouble, BigInt(x), BigDecimal(x) ) ::: ( @@ -11,26 +11,26 @@ object Test def makeFromDouble(x: Double) = List( x.toShort, x.toInt, x.toLong, x.toFloat, x.toDouble, BigInt(x.toInt), BigDecimal(x) ) - + def main(args: Array[String]): Unit = { var xs = makeFromInt(5) for (x <- xs ; y <- xs) { assert(x == y, x + " == " + y) assert(hash(x) == hash(y), "hash(%s) == hash(%s)".format(x, y)) } - + xs = makeFromInt(-5) for (x <- xs ; y <- xs) { assert(x == y, x + " == " + y) assert(hash(x) == hash(y), "hash(%s) == hash(%s)".format(x, y)) } - + xs = makeFromDouble(500.0) for (x <- xs ; y <- xs) { assert(x == y, x + " == " + y) assert(hash(x) == hash(y), "hash(%s) == hash(%s)".format(x, y)) } - + // negatives val bigLong = new java.util.concurrent.atomic.AtomicLong(Long.MaxValue) assert(-1 != bigLong && bigLong != -1) // bigLong.intValue() == -1 diff --git a/test/files/run/exceptions-2.scala b/test/files/run/exceptions-2.scala index 05aab66dd0..d0312a49b2 100644 --- a/test/files/run/exceptions-2.scala +++ b/test/files/run/exceptions-2.scala @@ -68,7 +68,7 @@ object Test { Console.println("Outermost finally"); } - def mixed = + def mixed = try { if (10 > 0) throw Leaf(10); @@ -107,7 +107,7 @@ object Test { case Leaf(a) => Console.println(a); } } catch { - case npe: NullPointerException => + case npe: NullPointerException => Console.println("Caught an NPE"); } @@ -141,14 +141,14 @@ object Test { } } - def valInFinally: Unit = - try { + def valInFinally: Unit = + try { } finally { val fin = "Abc"; Console.println(fin); }; - def tryAndValInFinally: Unit = + def tryAndValInFinally: Unit = try { } finally { val fin = "Abc"; @@ -157,51 +157,51 @@ object Test { } catch { case _ => () } }; - def returnInBody: Unit = try { + def returnInBody: Unit = try { try { Console.println("Normal execution..."); - return + return Console.println("non reachable code"); } finally { Console.println("inner finally"); } - } finally { + } finally { Console.println("Outer finally"); } - def returnInBodySynch: Unit = try { + def returnInBodySynch: Unit = try { synchronized { try { Console.println("Synchronized normal execution..."); - return + return Console.println("non reachable code"); } finally { Console.println("inner finally"); } } - } finally { + } finally { Console.println("Outer finally"); } - def returnInBodyAndInFinally: Unit = try { + def returnInBodyAndInFinally: Unit = try { try { Console.println("Normal execution..."); - return + return Console.println("non reachable code"); } finally { Console.println("inner finally"); return } - } finally { + } finally { Console.println("Outer finally"); return } - def returnInBodyAndInFinally2: Unit = try { + def returnInBodyAndInFinally2: Unit = try { try { Console.println("Normal execution..."); - return + return Console.println("non reachable code"); } finally { try { @@ -211,7 +211,7 @@ object Test { Console.println("finally inside finally"); } } - } finally { + } finally { Console.println("Outer finally"); return } @@ -253,7 +253,7 @@ object Test { } - def returnWithFinallyClean: Int = try { + def returnWithFinallyClean: Int = try { try { Console.println("Normal execution..."); return 10 @@ -262,7 +262,7 @@ object Test { } finally { Console.println("inner finally"); } - } finally { + } finally { Console.println("Outer finally"); try { 1 } catch { case e: java.io.IOException => () } } @@ -294,7 +294,7 @@ object Test { Console.println("mixed: "); execute(mixed); - + Console.println("withValue1:"); execute(withValue1); @@ -322,7 +322,7 @@ object Test { Console.println("NoExcep.method3:"); execute(NoExcep.method3); - + Console.println("NoExcep.method4:"); execute(NoExcep.method4); diff --git a/test/files/run/existentials.scala b/test/files/run/existentials.scala index ff52cc0040..3977d47417 100644 --- a/test/files/run/existentials.scala +++ b/test/files/run/existentials.scala @@ -2,7 +2,7 @@ class Foo { class Line { case class Cell[T](var x: T) def f[T](x: Any): Cell[t1] forSome { type t1 } = x match { case y: Cell[t] => y } - + var x: Cell[T] forSome { type T } = new Cell(1) println({ x = new Cell("abc"); x }) } @@ -12,7 +12,7 @@ class FooW { class Line { case class Cell[T](var x: T) def f[T](x: Any): Cell[ _ ] = x match { case y: Cell[t] => y } - + var x: Cell[_] = new Cell(1) println({ x = new Cell("abc"); x }) } diff --git a/test/files/run/finally.scala b/test/files/run/finally.scala index b3b7f684e5..635123cc4d 100644 --- a/test/files/run/finally.scala +++ b/test/files/run/finally.scala @@ -10,7 +10,7 @@ object Test extends App { case e => println(e) } } - + // test that finally is not covered by any exception handlers. def bar { try { @@ -26,7 +26,7 @@ object Test extends App { } // return in catch (finally is executed) - def retCatch { + def retCatch { try { throw new Exception } catch { @@ -37,7 +37,7 @@ object Test extends App { } // throw in catch (finally is executed, exception propagated) - def throwCatch { + def throwCatch { try { throw new Exception } catch { @@ -48,7 +48,7 @@ object Test extends App { } // return inside body (finally is executed) - def retBody { + def retBody { try { return } catch { @@ -75,7 +75,7 @@ object Test extends App { finally { println("in finally 1") return - } + } } finally println("in finally 2") } @@ -94,7 +94,7 @@ object Test extends App { } // nested finallies with return value - def nestedFinalies: Int = + def nestedFinalies: Int = try { try { return 10 diff --git a/test/files/run/flat-flat-flat.scala b/test/files/run/flat-flat-flat.scala index 80868b9c5e..d57696b3a3 100644 --- a/test/files/run/flat-flat-flat.scala +++ b/test/files/run/flat-flat-flat.scala @@ -2,7 +2,7 @@ object Test { def f1 = List(Iterator(Some(1), None, Some(2)), Iterator(Some(3), None)) def f2 = Iterator(List(Some(1), None, Some(2)), List(Some(3), None), Nil) def f3 = List(Some(Iterator(1)), None, Some(Iterator(2, 3))) - + def main(args: Array[String]): Unit = { assert(f1.flatten.flatten.toList == List(1, 2, 3)) assert(f2.flatten.flatten.toList == List(1, 2, 3)) diff --git a/test/files/run/forvaleq.scala b/test/files/run/forvaleq.scala index 8c1824a769..2a958802b6 100644 --- a/test/files/run/forvaleq.scala +++ b/test/files/run/forvaleq.scala @@ -2,7 +2,7 @@ import scala.collection.immutable.Queue import scala.{List=>L} - + object Test { // redefine some symbols to make it extra hard class List @@ -16,11 +16,11 @@ object Test { case _ if (x<10) => x case _ => firstDigit(x / 10) } - - + + { - // a basic test case - + // a basic test case + val input = L.range(0,20) val oddFirstTimesTwo = for {x <- input @@ -32,7 +32,7 @@ object Test { { // a test case with patterns - + val input = L.range(0, 20) val oddFirstTimesTwo = for {x <- input @@ -43,10 +43,10 @@ object Test { yield a + b println(oddFirstTimesTwo) } - + { // make sure it works on non-Ls - + // val input: Queue = Queue.Empty[int].incl(L.range(0,20)) val input = L.range(0, 20).iterator val oddFirstTimesTwo = @@ -54,36 +54,36 @@ object Test { xf = firstDigit(x) if xf % 2 == 1} yield x*2 - println(oddFirstTimesTwo.toList) + println(oddFirstTimesTwo.toList) } - + { // yield the computed value - + val input = L.range(0,20) val oddFirstTimesTwo = for {x <- input xf = firstDigit(x) if xf % 2 == 1} yield xf*2 - println(oddFirstTimesTwo) + println(oddFirstTimesTwo) } { // make sure the function is only called once var count: Int = 0 - + def fdct(x: Int) = { count += 1 firstDigit(x) } - + val input = L.range(0,20) for {x <- input xf = fdct(x) if xf % 2 == 1} yield xf - + println("called " + count + " times") } diff --git a/test/files/run/gadts.scala b/test/files/run/gadts.scala index 57c7fc8af0..4ab3ef681a 100644 --- a/test/files/run/gadts.scala +++ b/test/files/run/gadts.scala @@ -2,8 +2,8 @@ abstract class Term[T] case class Lit(x: Int) extends Term[Int] case class Succ(t: Term[Int]) extends Term[Int] case class IsZero(t: Term[Int]) extends Term[Boolean] -case class If[T](c: Term[Boolean], - t1: Term[T], +case class If[T](c: Term[Boolean], + t1: Term[T], t2: Term[T]) extends Term[T] object Test extends App { diff --git a/test/files/run/getClassTest.scala b/test/files/run/getClassTest.scala index 951cc8d931..2485cd2c71 100644 --- a/test/files/run/getClassTest.scala +++ b/test/files/run/getClassTest.scala @@ -4,7 +4,7 @@ class AnyVals { def f3 = 5.getClass def f4 = (5: java.lang.Integer).getClass def f5 = (5.asInstanceOf[AnyRef]).getClass - + // scalap says: // // def f1 : java.lang.Class[?0] forSome {type ?0} = { /* compiled code */ } @@ -19,18 +19,18 @@ class AnyVals { // f2: java.lang.Class<?> // f3: java.lang.Class<java.lang.Object> // f4: java.lang.Class<? extends java.lang.Integer> - // f5: java.lang.Class<?> + // f5: java.lang.Class<?> } class AnyRefs { class A class B extends A - + def f1 = (new B: Any).getClass().newInstance() def f2 = (new B: AnyRef).getClass().newInstance() def f3 = (new B: A).getClass().newInstance() def f4 = (new B: B).getClass().newInstance() - + def f0[T >: B] = (new B: T).getClass().newInstance() def f5 = f0[Any] @@ -52,7 +52,7 @@ class MoreAnyRefs { object Test { def returnTypes[T: Manifest] = ( - manifest[T].erasure.getMethods.toList + manifest[T].erasure.getMethods.toList filter (_.getName startsWith "f") sortBy (_.getName) map (m => m.getName + ": " + m.getGenericReturnType.toString) diff --git a/test/files/run/global-showdef.scala b/test/files/run/global-showdef.scala index e17f438247..71ba7b8bb3 100644 --- a/test/files/run/global-showdef.scala +++ b/test/files/run/global-showdef.scala @@ -39,8 +39,8 @@ object Bippy { new Global(settings) } - - def slurp(body: => Unit): String = stringFromStream { stream => + + def slurp(body: => Unit): String = stringFromStream { stream => Console.withOut(stream) { Console.withErr(stream) { body @@ -57,11 +57,11 @@ object Bippy { } def showClass(name: String) = lines("-Yshow:typer", "-Xshow-class", name) def showObject(name: String) = lines("-Yshow:typer", "-Xshow-object", name) - + def show(xs: List[String]) = { xs filter (x => (x contains "def showdefTestMember") || (x startsWith "<<-- ")) foreach println } - + def main(args: Array[String]) { show(List("Bippy", "Bippy#BippyType", "Bippy.BippyType", "Bippy#Boppity", "Bippy#Boppity#Boo") flatMap showClass) show(List("Bippy", "Bippy#Boppity#Boo") flatMap showObject) diff --git a/test/files/run/groupby.scala b/test/files/run/groupby.scala index a751e65e80..fe08f52812 100644 --- a/test/files/run/groupby.scala +++ b/test/files/run/groupby.scala @@ -3,8 +3,8 @@ // Fixes #3422 object Test { - - def main(args: Array[String]) { + + def main(args: Array[String]) { val arr = Array.range(0,10) val map = arr groupBy (_%2) val v1 = map(0) @@ -14,5 +14,5 @@ object Test { // hash map by default. assert(v1 eq v2) } - + } diff --git a/test/files/run/hashCodeBoxesRunTime.scala b/test/files/run/hashCodeBoxesRunTime.scala index ba1a30f5fb..081a73376e 100644 --- a/test/files/run/hashCodeBoxesRunTime.scala +++ b/test/files/run/hashCodeBoxesRunTime.scala @@ -4,16 +4,16 @@ object Test { import java.{ lang => jl } import scala.runtime.BoxesRunTime.{ hashFromNumber, hashFromObject } - + def allSame[T](xs: List[T]) = assert(xs.distinct.size == 1, "failed: " + xs) - + def mkNumbers(x: Int): List[Number] = List(x.toByte, x.toShort, x, x.toLong, x.toFloat, x.toDouble) - + def testLDF(x: Long) = allSame(List[Number](x, x.toDouble, x.toFloat) map hashFromNumber) - + def main(args: Array[String]): Unit = { - List(Byte.MinValue, -1, 0, 1, Byte.MaxValue) foreach { n => + List(Byte.MinValue, -1, 0, 1, Byte.MaxValue) foreach { n => val hashes = mkNumbers(n) map hashFromNumber allSame(hashes) if (n >= 0) { @@ -21,7 +21,7 @@ object Test assert(charCode == hashes.head) } } - + testLDF(Short.MaxValue.toLong) testLDF(Short.MinValue.toLong) } diff --git a/test/files/run/hashhash.scala b/test/files/run/hashhash.scala index d3800be876..b9cec99a12 100644 --- a/test/files/run/hashhash.scala +++ b/test/files/run/hashhash.scala @@ -1,7 +1,7 @@ object Test { def confirmSame(x: Any) = assert(x.## == x.hashCode, "%s.## != %s.hashCode".format(x, x)) def confirmDifferent(x: Any) = assert(x.## != x.hashCode, "%s.## == %s.hashCode (but should not)".format(x, x)) - + def main(args: Array[String]): Unit = { /** Just a little sanity check, not to be confused with a unit test. */ List(5, 5.5f, "abc", new AnyRef, ()) foreach confirmSame diff --git a/test/files/run/indexedSeq.scala b/test/files/run/indexedSeq.scala index 19308e1d8c..9744f47f63 100644 --- a/test/files/run/indexedSeq.scala +++ b/test/files/run/indexedSeq.scala @@ -1,8 +1,8 @@ object Test { import scala.collection.{ mutable, immutable, generic } - + def checkIdentity[A](xs: immutable.IndexedSeq[A]) = assert(xs.toIndexedSeq eq xs) - + def main(args: Array[String]): Unit = { checkIdentity(immutable.Vector(1 to 10: _*)) checkIdentity(1 to 10 toIndexedSeq) diff --git a/test/files/run/infix.scala b/test/files/run/infix.scala index ba77480297..700e4347ac 100644 --- a/test/files/run/infix.scala +++ b/test/files/run/infix.scala @@ -9,4 +9,4 @@ object Test extends App { case null op (0, 0) op (1, 1) op (2, 2) => Console.println("OK") } } - + diff --git a/test/files/run/inliner-infer.scala b/test/files/run/inliner-infer.scala index 027d25b6e2..ea83966c52 100644 --- a/test/files/run/inliner-infer.scala +++ b/test/files/run/inliner-infer.scala @@ -7,8 +7,8 @@ object Test extends App { @annotation.tailrec def walk(xs: MyList): Unit = { - if (xs.isEmpty) - println("empty") + if (xs.isEmpty) + println("empty") else { println("non-empty") walk(MyNil) @@ -26,4 +26,4 @@ object MyNil extends MyList { override def isEmpty = true } - + diff --git a/test/files/run/io-position.scala b/test/files/run/io-position.scala index 7e570ea29e..1093704fa4 100644 --- a/test/files/run/io-position.scala +++ b/test/files/run/io-position.scala @@ -1,13 +1,13 @@ object Test { Console.setErr(Console.out) - - def main(args: Array[String]): Unit = { + + def main(args: Array[String]): Unit = { try { xml.parsing.ConstructingParser.fromSource(io.Source.fromString("<foo>"), false).document() } catch { case e:Exception => println(e.getMessage) } - } + } -} +} diff --git a/test/files/run/iq.scala b/test/files/run/iq.scala index 88a2884fcc..59baee1270 100644 --- a/test/files/run/iq.scala +++ b/test/files/run/iq.scala @@ -9,8 +9,8 @@ object iq { /* Create an empty queue. */ val q: Queue[Int] = Queue.Empty - /* Test isEmpty. - * Expected: Empty + /* Test isEmpty. + * Expected: Empty */ if (q.isEmpty) { Console.println("Empty") @@ -20,14 +20,14 @@ object iq { //val q2 = q + 42 + 0 // deprecated val q2 = q.enqueue(42).enqueue(0) - /* Test is empty and dequeue. + /* Test is empty and dequeue. * Expected: Head: 42 */ val q4 = if (q2.isEmpty) { Console.println("Empty") q2 - } + } else { val (head, q3) = q2.dequeue Console.println("Head: " + head) @@ -36,8 +36,8 @@ object iq { /* Test sequence enqueing. */ val q5: Queue[Any] = q4.enqueue(List(1,2,3,4,5,6,7,8,9)) - /* Test toString. - * Expected: Head: q5: Queue(0,1,2,3,4,5,6,7,8,9) + /* Test toString. + * Expected: Head: q5: Queue(0,1,2,3,4,5,6,7,8,9) */ Console.println("q5: " + q5) /* Test apply @@ -59,7 +59,7 @@ object iq { //val q8 = q7 + 10 + 11 //deprecated val q8 = q7.enqueue(10).enqueue(11) /* Test dequeu - * Expected: q8: Queue(2,3,4,5,6,7,8,9,10,11) + * Expected: q8: Queue(2,3,4,5,6,7,8,9,10,11) */ Console.println("q8: " + q8) val q9 = Queue(2,3,4,5,6,7,8,9,10,11) @@ -70,14 +70,14 @@ object iq { Console.println("q8 == q9: " + (q8 == q9)) /* Testing elements - * Expected: Elements: 1 2 3 4 5 6 7 8 9 + * Expected: Elements: 1 2 3 4 5 6 7 8 9 */ - Console.print("Elements: "); + Console.print("Elements: "); q6.iterator.foreach(e => Console.print(" "+ e + " ")) - Console.println; + Console.println; /* Testing mkString - * Expected: String: <1-2-3-4-5-6-7-8-9> + * Expected: String: <1-2-3-4-5-6-7-8-9> */ Console.println("String: " + q6.mkString("<","-",">")) @@ -89,7 +89,7 @@ object iq { /* Testing front * Expected: Front: 1 */ - Console.println("Front: " + q6.front); + Console.println("Front: " + q6.front); } } diff --git a/test/files/run/issue192.scala b/test/files/run/issue192.scala index 8acd3a6345..d8db8b5816 100644 --- a/test/files/run/issue192.scala +++ b/test/files/run/issue192.scala @@ -1,16 +1,16 @@ object Test extends App { - + def f1(p: Any{def unary_+ : Int}) = +p def f2(p: Any{def unary_- : Int}) = -p def f3(p: Any{def unary_~ : Int}) = ~p def f4(p: Any{def unary_! : Boolean}) = !p - + def f5(p: Any{def +(q: Int): Int}) = p + 7 def f6(p: Any{def -(q: Int): Int}) = p - 7 def f7(p: Any{def *(q: Int): Int}) = p * 7 def f8(p: Any{def /(q: Int): Int}) = p / 7 def f9(p: Any{def %(q: Int): Int}) = p % 7 - + def f10(p: Any{def |(q: Int): Int}) = p | 7 def f11(p: Any{def |(q: Boolean): Boolean}) = p | true def f12(p: Any{def ^(q: Int): Int}) = p ^ 7 @@ -19,11 +19,11 @@ object Test extends App { def f15(p: Any{def &(q: Boolean): Boolean}) = p & true def f16(p: Any{def ||(q: Boolean): Boolean}) = p || true def f17(p: Any{def &&(q: Boolean): Boolean}) = p && true - + def f18(p: Any{def <<(q: Int): Int}) = p << 7 def f19(p: Any{def >>(q: Int): Int}) = p >> 7 def f20(p: Any{def >>>(q: Int): Int}) = p >>> 7 - + def f21(p: Any{def toByte: Byte}) = p.toByte def f22(p: Any{def toShort: Short}) = p.toShort def f23(p: Any{def toChar: Char}) = p.toChar @@ -31,28 +31,28 @@ object Test extends App { def f25(p: Any{def toLong: Long}) = p.toLong def f26(p: Any{def toFloat: Float}) = p.toFloat def f27(p: Any{def toDouble: Double}) = p.toDouble - + def f28(p: Any{def ==(q: Int): Boolean}) = p == 7 def f29(p: Any{def !=(q: Int): Boolean}) = p != 7 def f30(p: Any{def ==(q: Boolean): Boolean}) = p == true def f31(p: Any{def !=(q: Boolean): Boolean}) = p != true - + def f32(p: Any{def <(q: Int): Boolean}) = p < 7 def f33(p: Any{def <=(q: Int): Boolean}) = p <= 7 def f34(p: Any{def >=(q: Int): Boolean}) = p >= 7 def f35(p: Any{def >(q: Int): Boolean}) = p > 7 - + print("f1 = "); println(f1(1) == +1) print("f2 = "); println(f2(1) == -1) print("f3 = "); println(f3(1) == ~1) print("f4 = "); println(f4(true) == !true) - + print("f5 = "); println(f5(4) == (4 + 7)) print("f6 = "); println(f6(4) == (4 - 7)) print("f7 = "); println(f7(4) == (4 * 7)) print("f8 = "); println(f8(4) == (4 / 7)) print("f9 = "); println(f9(4) == (4 % 7)) - + print("f10 = "); println(f10(4) == (4 | 7)) print("f11 = "); println(f11(false) == (false | true)) print("f12 = "); println(f12(4) == (4 ^ 7)) @@ -61,11 +61,11 @@ object Test extends App { print("f15 = "); println(f15(false) == (false & true)) print("f16 = "); println(f16(false) == (false || true)) print("f17 = "); println(f17(false) == (false && true)) - + print("f18 = "); println(f18(4) == (4 << 7)) print("f19 = "); println(f19(-4) == (-4 >> 7)) print("f20 = "); println(f20(-4) == (-4 >>> 7)) - + print("f21 = "); println(f21(4.2) == (4.2.toByte)) print("f22 = "); println(f22(4.2) == (4.2.toShort)) print("f23 = "); println(f23(4.2) == (4.2.toChar)) @@ -73,17 +73,17 @@ object Test extends App { print("f25 = "); println(f25(4.2) == (4.2.toLong)) print("f26 = "); println(f26(4.2) == (4.2.toFloat)) print("f27 = "); println(f27(4.2) == (4.2.toDouble)) - + print("f28 = "); println(f28(4) == (4 == 7)) print("f29 = "); println(f29(4) == (4 != 7)) print("f30 = "); println(f30(false) == (false == true)) print("f31 = "); println(f31(false) == (false != true)) - + print("f32 = "); println(f32(4) == (4 < 7)) print("f33 = "); println(f33(4) == (4 <= 7)) print("f34 = "); println(f34(4) == (4 >= 7)) print("f35 = "); println(f35(4) == (4 > 7)) - + println("ok") - + } diff --git a/test/files/run/iterator3444.scala b/test/files/run/iterator3444.scala index 1d0713addc..2d0643bd56 100644 --- a/test/files/run/iterator3444.scala +++ b/test/files/run/iterator3444.scala @@ -2,22 +2,22 @@ // ticked #3444 object Test { - + def main(args: Array[String]) { val it = (1 to 12).toSeq.iterator - + assert(it.next == 1) assert(it.take(2).toList == List(2, 3)) - + val jt = (4 to 12).toSeq.iterator assert(jt.next == 4) assert(jt.drop(5).toList == List(10, 11, 12)) - + val kt = (1 until 10).toSeq.iterator assert(kt.drop(50).toList == Nil) - + val mt = (1 until 5).toSeq.iterator assert(mt.take(50).toList == List(1, 2, 3, 4)) } - + } diff --git a/test/files/run/iterators.scala b/test/files/run/iterators.scala index 5f77289343..f0f93f0683 100644 --- a/test/files/run/iterators.scala +++ b/test/files/run/iterators.scala @@ -82,16 +82,16 @@ object Test { var xs4 = Iterator.fromArray(a, 0, 4).toList; xs0.length + xs1.length + xs2.length + xs3.length + xs4.length } - + def check_toSeq: String = List(1, 2, 3, 4, 5).iterator.toSeq.mkString("x") - + def check_indexOf: String = { val i = List(1, 2, 3, 4, 5).indexOf(4) val j = List(1, 2, 3, 4, 5).indexOf(16) "" + i + "x" + j } - + def check_findIndexOf: String = { val i = List(1, 2, 3, 4, 5).indexWhere { x: Int => x >= 4 } val j = List(1, 2, 3, 4, 5).indexWhere { x: Int => x >= 16 } diff --git a/test/files/run/json.scala b/test/files/run/json.scala index 7b2b80718c..bdddcfd184 100644 --- a/test/files/run/json.scala +++ b/test/files/run/json.scala @@ -34,7 +34,7 @@ object Test extends App { case Some(parsed) => println("Passed parse : " + sortJSON(parsed)) } } - + // For this usage, do a raw parse (to JSONObject/JSONArray) def printJSON(given : String, expected : JSONType) { printJSON(given, JSON.parseRaw, expected) @@ -89,11 +89,11 @@ object Test extends App { // The library should recurse into arrays to find objects (ticket #2207) printJSON("[{\"a\" : \"team\"},{\"b\" : 52}]", JSONArray(List(JSONObject(Map("a" -> "team")), JSONObject(Map("b" -> 52.0))))) - + // The library should differentiate between empty maps and lists (ticket #3284) - printJSONFull("{}", Map()) + printJSONFull("{}", Map()) printJSONFull("[]", List()) - + // Lists should be returned in the same order as specified printJSON("[4,1,3,2,6,5,8,7]", JSONArray(List[Double](4,1,3,2,6,5,8,7))) @@ -152,7 +152,7 @@ object Test extends App { ) ) - + printJSONFull(sample1, sample1Obj) println @@ -188,7 +188,7 @@ object Test extends App { // from http://json.org/example.html val sample3 = """ {"web-app": { - "servlet": [ + "servlet": [ { "servlet-name": "cofaxCDS", "servlet-class": "org.cofax.cds.CDSServlet", @@ -244,7 +244,7 @@ object Test extends App { { "servlet-name": "cofaxAdmin", "servlet-class": "org.cofax.cds.AdminServlet"}, - + { "servlet-name": "fileServlet", "servlet-class": "org.cofax.cds.FileServlet"}, @@ -271,7 +271,7 @@ object Test extends App { "cofaxAdmin": "/admin/*", "fileServlet": "/static/*", "cofaxTools": "/tools/*"}, - + "taglib": { "taglib-uri": "cofax.tld", "taglib-location": "/WEB-INF/tlds/cofax.tld"} diff --git a/test/files/run/lazy-exprs.scala b/test/files/run/lazy-exprs.scala index 204c4b564b..fc724bd10b 100644 --- a/test/files/run/lazy-exprs.scala +++ b/test/files/run/lazy-exprs.scala @@ -2,7 +2,7 @@ object TestExpressions { def patmatchScrut { lazy val z1: Option[String] = { println("forced <z1>"); Some("lazy z1") } - + val res = z1 match { case Some(msg) => msg case None => "failed" @@ -17,10 +17,10 @@ object TestExpressions { def patmatchCase { val t: Option[String] = Some("test") val res = t match { - case Some(msg) => + case Some(msg) => lazy val z1 = { println("forced <z1>"); "lazy z1" } z1 - + case None => "failed" } print("lazy val in case: ") @@ -36,9 +36,9 @@ object TestExpressions { print("lazy val in case: ") val t: Option[String] = Some("lazy Z1") t match { - case Some(Z1) => + case Some(Z1) => println("ok") - + case None => println("failed") } @@ -60,13 +60,13 @@ object TestExpressions { print("lazy val in pattern: ") val t: Option[String] = Some("LazyField") t match { - case Some(LazyField) => + case Some(LazyField) => println("ok") - + case None => println("failed") } - } + } lazy val (x, y) = ({print("x"); "x"}, {print("y"); "y"}) def testPatLazyVal { diff --git a/test/files/run/lazy-locals.scala b/test/files/run/lazy-locals.scala index ba555daf95..696aeeba96 100644 --- a/test/files/run/lazy-locals.scala +++ b/test/files/run/lazy-locals.scala @@ -163,18 +163,18 @@ object Test extends App { // see #1589 object NestedLazyVals { - lazy val x = { + lazy val x = { lazy val y = { println("forcing y"); 42; } println("forcing x") - y + y } - + val x1 = 5 + { lazy val y = 10 ; y } - + println(x) println(x1) } - + trait TNestedLazyVals { lazy val x = { lazy val y = 42; y } } diff --git a/test/files/run/lazy-override-run.scala b/test/files/run/lazy-override-run.scala index 6016c3c8be..d197408775 100644 --- a/test/files/run/lazy-override-run.scala +++ b/test/files/run/lazy-override-run.scala @@ -20,7 +20,7 @@ object Test extends App { val b = new B print("b.x=") - println(b.x) + println(b.x) print("b.z=") - println(b.z) + println(b.z) } diff --git a/test/files/run/lazy-traits.scala b/test/files/run/lazy-traits.scala index 38207672db..f04c0b8b1f 100644 --- a/test/files/run/lazy-traits.scala +++ b/test/files/run/lazy-traits.scala @@ -1,5 +1,5 @@ trait A { - lazy val z1 = { + lazy val z1 = { println("<forced z1>") "lazy z1" } @@ -7,7 +7,7 @@ trait A { /** Simple class which mixes in one lazy val. */ class Cls extends AnyRef with A { - override def toString = + override def toString = "z1 = " + z1 } @@ -18,7 +18,7 @@ class Cls2 extends AnyRef with A { "lazy z2" } - override def toString = + override def toString = "z1 = " + z1 + " z2 = " + z2 } @@ -34,7 +34,7 @@ class ClsB extends Object with B { println("<forced zc1>") "lazy zc1" } - override def toString = + override def toString = "z1 = " + z1 + " zb1 = " + zb1 + " zc1 = " + zc1 } @@ -73,39 +73,39 @@ class OverflownLazyFields extends Object with A { lazy val zc30 = { println("<forced zc30>"); "lazy zc30" } lazy val zc31 = { println("<forced zc31>"); "lazy zc31" } - override def toString = - "\nzc00 = " + zc00 + - "\nzc01 = " + zc01 + - "\nzc02 = " + zc02 + - "\nzc03 = " + zc03 + - "\nzc04 = " + zc04 + - "\nzc05 = " + zc05 + - "\nzc06 = " + zc06 + - "\nzc07 = " + zc07 + - "\nzc08 = " + zc08 + - "\nzc09 = " + zc09 + - "\nzc10 = " + zc10 + - "\nzc11 = " + zc11 + - "\nzc12 = " + zc12 + - "\nzc13 = " + zc13 + - "\nzc14 = " + zc14 + - "\nzc15 = " + zc15 + - "\nzc16 = " + zc16 + - "\nzc17 = " + zc17 + - "\nzc18 = " + zc18 + - "\nzc19 = " + zc19 + - "\nzc20 = " + zc20 + - "\nzc21 = " + zc21 + - "\nzc22 = " + zc22 + - "\nzc23 = " + zc23 + - "\nzc24 = " + zc24 + - "\nzc25 = " + zc25 + - "\nzc26 = " + zc26 + - "\nzc27 = " + zc27 + - "\nzc28 = " + zc28 + - "\nzc29 = " + zc29 + - "\nzc30 = " + zc30 + - "\nzc31 = " + zc31 + + override def toString = + "\nzc00 = " + zc00 + + "\nzc01 = " + zc01 + + "\nzc02 = " + zc02 + + "\nzc03 = " + zc03 + + "\nzc04 = " + zc04 + + "\nzc05 = " + zc05 + + "\nzc06 = " + zc06 + + "\nzc07 = " + zc07 + + "\nzc08 = " + zc08 + + "\nzc09 = " + zc09 + + "\nzc10 = " + zc10 + + "\nzc11 = " + zc11 + + "\nzc12 = " + zc12 + + "\nzc13 = " + zc13 + + "\nzc14 = " + zc14 + + "\nzc15 = " + zc15 + + "\nzc16 = " + zc16 + + "\nzc17 = " + zc17 + + "\nzc18 = " + zc18 + + "\nzc19 = " + zc19 + + "\nzc20 = " + zc20 + + "\nzc21 = " + zc21 + + "\nzc22 = " + zc22 + + "\nzc23 = " + zc23 + + "\nzc24 = " + zc24 + + "\nzc25 = " + zc25 + + "\nzc26 = " + zc26 + + "\nzc27 = " + zc27 + + "\nzc28 = " + zc28 + + "\nzc29 = " + zc29 + + "\nzc30 = " + zc30 + + "\nzc31 = " + zc31 + "\nz1 = " + z1 } diff --git a/test/files/run/lift-and-unlift.scala b/test/files/run/lift-and-unlift.scala index 5a59f63ae4..b944c70155 100644 --- a/test/files/run/lift-and-unlift.scala +++ b/test/files/run/lift-and-unlift.scala @@ -5,21 +5,21 @@ object Test { def evens2: PartialFunction[Int, Int] = { case x if x % 2 == 0 => x } - + def main(args: Array[String]): Unit = { val f1 = evens1 _ val f2 = evens2.lift - + assert(1 to 10 forall (x => f1(x) == f2(x))) - + val f3 = unlift(f1) val f4 = unlift(f2) - + assert(1 to 10 forall { x => if (!f3.isDefinedAt(x)) !f4.isDefinedAt(x) else f3(x) == f4(x) }) - + assert(f1 eq f3.lift) // Hmm, why is this not true: // assert(f2 eq f4.lift) diff --git a/test/files/run/lisp.scala b/test/files/run/lisp.scala index f3687ea1bb..06e68f508a 100644 --- a/test/files/run/lisp.scala +++ b/test/files/run/lisp.scala @@ -12,11 +12,11 @@ class LispTokenizer(s: String) extends Iterator[String] { while (i < s.length() && s.charAt(i) <= ' ') i += 1 i < s.length() } - def next: String = + def next: String = if (hasNext) { val start = i if (isDelimiter(s charAt i)) i += 1 - else + else do i = i + 1 while (!isDelimiter(s charAt i)) s.substring(start, i) diff --git a/test/files/run/lists-run.scala b/test/files/run/lists-run.scala index 6871a96183..dccc73f14b 100644 --- a/test/files/run/lists-run.scala +++ b/test/files/run/lists-run.scala @@ -12,7 +12,7 @@ import testing.SUnit._ */ object Test extends TestConsoleMain { def suite = new TestSuite( - Test_multiset, // multiset operations: union, intersect, diff + Test_multiset, // multiset operations: union, intersect, diff Test1, //count, exists, filter, .. Test2, //#468 Test3, //#1691 @@ -63,7 +63,7 @@ object Test_multiset extends TestCase("multiset") with Assert { assertEquals("vs_diff_xs", List(3, 2), vs diff xs) assertTrue("xs_subset_vs", isSubListOf(xs -- vs, xs diff vs)) - // tests adapted from Thomas Jung + // tests adapted from Thomas Jung assertTrue( "be symmetric after sorting", { def sort(zs: List[Int]) = zs sort ( _ > _ ) @@ -73,7 +73,7 @@ object Test_multiset extends TestCase("multiset") with Assert { "obey min cardinality", { def cardinality[A](zs: List[A], e: A): Int = zs count (e == _) val intersection = xs intersect ys - xs forall (e => cardinality(intersection, e) == (cardinality(xs, e) + xs forall (e => cardinality(intersection, e) == (cardinality(xs, e) min cardinality(ys, e))) }) assertTrue( @@ -149,7 +149,7 @@ object Test2 extends TestCase("t0468") with Assert { override def runTest { val xs1 = List(1, 2, 3) val xs2 = List(0) - + val ys1 = xs1 ::: List(4) assertEquals("check_:::", List(1, 2, 3, 4), ys1) diff --git a/test/files/run/manifests.scala b/test/files/run/manifests.scala index ed6efab70d..1da06b8aee 100644 --- a/test/files/run/manifests.scala +++ b/test/files/run/manifests.scala @@ -4,15 +4,15 @@ object Test val CO, IN, CONTRA = Value } import Variances.{ CO, IN, CONTRA } - + object SubtypeRelationship extends Enumeration { val NONE, SAME, SUB, SUPER = Value } import SubtypeRelationship.{ NONE, SAME, SUB, SUPER } - + class VarianceTester[T, U, CC[_]](expected: Variances.Value)( implicit ev1: Manifest[T], ev2: Manifest[U], ev3: Manifest[CC[T]], ev4: Manifest[CC[U]]) { - + def elements = List(ev1 <:< ev2, ev2 <:< ev1) def containers = List(ev3 <:< ev4, ev4 <:< ev3) @@ -20,13 +20,13 @@ object Test def isSame = typeCompare[T, U] == SAME def isSub = typeCompare[T, U] == SUB def isSuper = typeCompare[T, U] == SUPER - + def showsCovariance = (elements == containers) def showsContravariance = (elements == containers.reverse) def showsInvariance = containers forall (_ == isSame) def allContainerVariances = List(showsCovariance, showsInvariance, showsContravariance) - + def showsExpectedVariance = if (isUnrelated) allContainerVariances forall (_ == false) else if (isSame) allContainerVariances forall (_ == true) @@ -36,55 +36,55 @@ object Test case CONTRA => showsContravariance && !showsCovariance && !showsInvariance } } - + def showsCovariance[T, U, CC[_]](implicit ev1: Manifest[T], ev2: Manifest[U], ev3: Manifest[CC[T]], ev4: Manifest[CC[U]]) = new VarianceTester[T, U, CC](CO) showsExpectedVariance def showsInvariance[T, U, CC[_]](implicit ev1: Manifest[T], ev2: Manifest[U], ev3: Manifest[CC[T]], ev4: Manifest[CC[U]]) = new VarianceTester[T, U, CC](IN) showsExpectedVariance - + def showsContravariance[T, U, CC[_]](implicit ev1: Manifest[T], ev2: Manifest[U], ev3: Manifest[CC[T]], ev4: Manifest[CC[U]]) = new VarianceTester[T, U, CC](CONTRA) showsExpectedVariance - + def typeCompare[T, U](implicit ev1: Manifest[T], ev2: Manifest[U]) = (ev1 <:< ev2, ev2 <:< ev1) match { case (true, true) => SAME case (true, false) => SUB case (false, true) => SUPER case (false, false) => NONE } - + def assertAnyRef[T: Manifest] = List( manifest[T] <:< manifest[Any], manifest[T] <:< manifest[AnyRef], !(manifest[T] <:< manifest[AnyVal]) ) foreach (assert(_, "assertAnyRef")) - + def assertAnyVal[T: Manifest] = List( manifest[T] <:< manifest[Any], !(manifest[T] <:< manifest[AnyRef]), manifest[T] <:< manifest[AnyVal] ) foreach (assert(_, "assertAnyVal")) - + def assertSameType[T: Manifest, U: Manifest] = assert(typeCompare[T, U] == SAME, "assertSameType") def assertSuperType[T: Manifest, U: Manifest] = assert(typeCompare[T, U] == SUPER, "assertSuperType") def assertSubType[T: Manifest, U: Manifest] = assert(typeCompare[T, U] == SUB, "assertSubType") def assertNoRelationship[T: Manifest, U: Manifest] = assert(typeCompare[T, U] == NONE, "assertNoRelationship") - + def testVariancesVia[T: Manifest, U: Manifest] = assert( - typeCompare[T, U] == SUB && + typeCompare[T, U] == SUB && showsCovariance[T, U, List] && showsInvariance[T, U, Set], "testVariancesVia" ) - + def runAllTests = { assertAnyVal[AnyVal] assertAnyVal[Unit] - assertAnyVal[Int] - assertAnyVal[Double] + assertAnyVal[Int] + assertAnyVal[Double] assertAnyVal[Boolean] assertAnyVal[Char] - + assertAnyRef[AnyRef] assertAnyRef[java.lang.Object] assertAnyRef[java.lang.Integer] @@ -94,7 +94,7 @@ object Test assertAnyRef[String] assertAnyRef[scala.List[String]] assertAnyRef[scala.List[_]] - + // variance doesn't work yet // testVariancesVia[String, Any] // testVariancesVia[String, AnyRef] @@ -102,11 +102,11 @@ object Test assertSubType[List[String], List[Any]] assertSubType[List[String], List[AnyRef]] assertNoRelationship[List[String], List[AnyVal]] - + assertSubType[List[Int], List[Any]] assertSubType[List[Int], List[AnyVal]] assertNoRelationship[List[Int], List[AnyRef]] - + // Nothing assertSubType[Nothing, Any] assertSubType[Nothing, AnyVal] @@ -115,7 +115,7 @@ object Test assertSubType[Nothing, List[String]] assertSubType[Nothing, Null] assertSameType[Nothing, Nothing] - + // Null assertSubType[Null, Any] assertNoRelationship[Null, AnyVal] @@ -124,7 +124,7 @@ object Test assertSubType[Null, List[String]] assertSameType[Null, Null] assertSuperType[Null, Nothing] - + // Any assertSameType[Any, Any] assertSuperType[Any, AnyVal] @@ -133,7 +133,7 @@ object Test assertSuperType[Any, List[String]] assertSuperType[Any, Null] assertSuperType[Any, Nothing] - + // Misc unrelated types assertNoRelationship[Unit, AnyRef] assertNoRelationship[Unit, Int] diff --git a/test/files/run/mapConserve.scala b/test/files/run/mapConserve.scala index a285113b11..013095b1de 100644 --- a/test/files/run/mapConserve.scala +++ b/test/files/run/mapConserve.scala @@ -4,8 +4,8 @@ import scala.collection.mutable.ListBuffer object Test { val maxListLength = 7 // up to 16, but larger is slower var testCount = 0 - - def checkStackOverflow() = { + + def checkStackOverflow() = { var xs: List[String] = Nil for (i <- 0 until 250000) xs = "X" :: xs @@ -47,7 +47,7 @@ object Test { // Behaves like existing mapConserve with respect to eq checkBehaviourUnchanged(data, data mapConserve lastHexDigit, data mapConserve lastHexDigit) } - + checkStackOverflow(); } }
\ No newline at end of file diff --git a/test/files/run/mapValues.scala b/test/files/run/mapValues.scala index d3266bd18f..bd1794bc51 100644 --- a/test/files/run/mapValues.scala +++ b/test/files/run/mapValues.scala @@ -1,7 +1,7 @@ object Test { val m = Map(1 -> 1, 2 -> 2) val mv = (m mapValues identity) - 1 - + def main(args: Array[String]): Unit = { assert(mv.size == 1) } diff --git a/test/files/run/map_java_conversions.scala b/test/files/run/map_java_conversions.scala index 4f9f8a915a..58ff471190 100644 --- a/test/files/run/map_java_conversions.scala +++ b/test/files/run/map_java_conversions.scala @@ -4,20 +4,20 @@ object Test { - + def main(args: Array[String]) { import collection.JavaConversions._ - + test(new java.util.HashMap[String, String]) test(new java.util.Properties) testConcMap } - + def testConcMap { import collection.JavaConversions._ - + val concMap = new java.util.concurrent.ConcurrentHashMap[String, String] - + test(concMap) val cmap = asConcurrentMap(concMap) cmap.putIfAbsent("absentKey", "absentValue") @@ -26,31 +26,31 @@ object Test { assert(cmap.replace("absentKey", "newAbsentValue") == Some("absentValue")) assert(cmap.replace("absentKey", "newAbsentValue", ".......") == true) } - + def test(m: collection.mutable.Map[String, String]) { m.clear assert(m.size == 0) - + m.put("key", "value") assert(m.size == 1) - + assert(m.put("key", "anotherValue") == Some("value")) assert(m.put("key2", "value2") == None) assert(m.size == 2) - + m += (("key3", "value3")) assert(m.size == 3) - + m -= "key2" assert(m.size == 2) assert(m.nonEmpty) assert(m.remove("key") == Some("anotherValue")) - + m.clear for (i <- 0 until 10) m += (("key" + i, "value" + i)) for ((k, v) <- m) assert(k.startsWith("key")) } - + } diff --git a/test/files/run/matchbytes.scala b/test/files/run/matchbytes.scala index f2cea06eb3..7190886bab 100644 --- a/test/files/run/matchbytes.scala +++ b/test/files/run/matchbytes.scala @@ -4,4 +4,4 @@ object Test extends App{ case 1 => println(1); case _ => println("????"); } -} +} diff --git a/test/files/run/matchintasany.scala b/test/files/run/matchintasany.scala index 03f6ca2a84..c6764b31b9 100644 --- a/test/files/run/matchintasany.scala +++ b/test/files/run/matchintasany.scala @@ -5,4 +5,4 @@ object Test extends App{ case 1L => println(1); case _ => println("????"); } -} +} diff --git a/test/files/run/matchnull.scala b/test/files/run/matchnull.scala index 2cc8550d47..cfb3049239 100644 --- a/test/files/run/matchnull.scala +++ b/test/files/run/matchnull.scala @@ -3,7 +3,7 @@ object Test def f1 = null match { case x: AnyRef => 1 case _ => -1 } def f2(x: Any) = x match { case 52 => 1 ; case null => -1 ; case _ => 0 } def f3(x: AnyRef) = x match { case x: String => 1 ; case List(_) => 0 ; case null => -1 ; case _ => -2 } - + def main(args: Array[String]): Unit = { println(f1) println(f2(null)) diff --git a/test/files/run/misc.scala b/test/files/run/misc.scala index 2ae76bd968..139d2d70f7 100644 --- a/test/files/run/misc.scala +++ b/test/files/run/misc.scala @@ -60,7 +60,7 @@ object Test { Console.println; val x = 13; x; - // !!! why are DefDef replaced by Block(Tree[0])? we should use Empty! + // !!! why are DefDef replaced by Block(Tree[0])? we should use Empty! def f = 19; f; def f0() = 11; diff --git a/test/files/run/missingparams.scala b/test/files/run/missingparams.scala index fbc4d2a4f7..e9b1d27d68 100644 --- a/test/files/run/missingparams.scala +++ b/test/files/run/missingparams.scala @@ -6,8 +6,8 @@ final class Foo(val x: Int) { // test that the closure elimination is not wrongly replacing // 'that' by 'this' - def intersect(that: Foo) = - filter { dummy => + def intersect(that: Foo) = + filter { dummy => // x // dummy that.x > 0 } diff --git a/test/files/run/mock.scala b/test/files/run/mock.scala index e414e51e2d..8778e20ef5 100644 --- a/test/files/run/mock.scala +++ b/test/files/run/mock.scala @@ -5,11 +5,11 @@ import java.io.Closeable object Test { // It'd be really nice about now if functions had a common parent. implicit def interfaceify(x: AnyRef): UniversalFn = UniversalFn(x) - + def runner(x: Runnable) = x.run() def caller[T](x: Callable[T]): T = x.call() def closer(x: Closeable) = x.close() - + def main(args: Array[String]): Unit = { var counter = 0 val closure = () => { @@ -21,7 +21,7 @@ object Test { val int1 = closure.as[Runnable] val int2 = closure.as[Callable[Int]] val int3 = closure.as[Closeable] - + runner(int1) caller(int2) closer(int3) diff --git a/test/files/run/nodebuffer-array.scala b/test/files/run/nodebuffer-array.scala index f9cfbc50df..4e1ffe1e5e 100644 --- a/test/files/run/nodebuffer-array.scala +++ b/test/files/run/nodebuffer-array.scala @@ -1,5 +1,5 @@ object Test { - + def f(s: String) = { <entry> { @@ -8,7 +8,7 @@ object Test { } </entry> } - + def main(args: Array[String]): Unit = { println(f("a,b,c")) } diff --git a/test/files/run/null-and-intersect.scala b/test/files/run/null-and-intersect.scala index 7266dabe6d..1437fa4b25 100644 --- a/test/files/run/null-and-intersect.scala +++ b/test/files/run/null-and-intersect.scala @@ -2,7 +2,7 @@ object Test { trait Immortal class Bippy extends Immutable with Immortal class Boppy extends Immutable - + def f[T](x: Traversable[T]) = x match { case _: Map[_, _] => 3 case _: Seq[_] => 2 @@ -23,10 +23,10 @@ object Test { println(f(Seq(1))) println(f(Map(1 -> 2))) println(f(null)) - + println(g(new Bippy)) println(g(null)) - + println(h(new Bippy)) println(h(new Boppy)) println(h(null)) diff --git a/test/files/run/null-hash.scala b/test/files/run/null-hash.scala index 9b1f28b083..abf15e8166 100644 --- a/test/files/run/null-hash.scala +++ b/test/files/run/null-hash.scala @@ -2,7 +2,7 @@ object Test { def f1 = List(5, 10, null: String).## def f2(x: Any) = x.## def f3 = ((55, "abc", null: List[Int])).## - + def main(args: Array[String]): Unit = { f1 f2(null) diff --git a/test/files/run/number-parsing.scala b/test/files/run/number-parsing.scala index ad1481063e..21551a3a07 100644 --- a/test/files/run/number-parsing.scala +++ b/test/files/run/number-parsing.scala @@ -2,12 +2,12 @@ object Test { def numTests() = { val MinusZero = Float.box(-0.0f) val PlusZero = Float.box(0.0f) - + assert(PlusZero match { case MinusZero => false ; case _ => true }) assert(MinusZero match { case PlusZero => false ; case _ => true }) assert((MinusZero: scala.Float) == (PlusZero: scala.Float)) assert(!(MinusZero equals PlusZero)) - + List( -5f.max(2) , -5f max 2 , diff --git a/test/files/run/numbereq.scala b/test/files/run/numbereq.scala index b07c83dc3e..77a217df36 100644 --- a/test/files/run/numbereq.scala +++ b/test/files/run/numbereq.scala @@ -13,25 +13,25 @@ object Test { if (x >= Byte.MinValue && x <= Byte.MaxValue) List(new java.lang.Byte(x.toByte)) else Nil, if (x >= Char.MinValue && x <= Char.MaxValue) List(new java.lang.Character(x.toChar)) else Nil ).flatten - + base ::: extras } - - + + def main(args: Array[String]): Unit = { val ints = (0 to 15).toList map (Short.MinValue >> _) val ints2 = ints map (x => -x) val ints3 = ints map (_ + 1) val ints4 = ints2 map (_ - 1) - + val setneg1 = ints map mkNumbers val setneg2 = ints3 map mkNumbers val setpos1 = ints2 map mkNumbers val setpos2 = ints4 map mkNumbers val zero = mkNumbers(0) - - val sets = setneg1 ++ setneg2 ++ List(zero) ++ setpos1 ++ setpos2 - + + val sets = setneg1 ++ setneg2 ++ List(zero) ++ setpos1 ++ setpos2 + for (set <- sets ; x <- set ; y <- set) { // println("'%s' == '%s' (%s == %s) (%s == %s)".format(x, y, x.hashCode, y.hashCode, x.##, y.##)) assert(x == y, "%s/%s != %s/%s".format(x, x.getClass, y, y.getClass)) diff --git a/test/files/run/origins.scala b/test/files/run/origins.scala index 4c98e7a66c..ab873bca89 100644 --- a/test/files/run/origins.scala +++ b/test/files/run/origins.scala @@ -14,7 +14,7 @@ object Test { def f1() = 1 to 5 map boop def f2() = 1 to 10 map boop def f3() = 1 to 50 map boop - + def main(args: Array[String]): Unit = { f1() ; f2() ; f3() } diff --git a/test/files/run/packrat1.scala b/test/files/run/packrat1.scala index 3c3ea07afb..47e77da263 100644 --- a/test/files/run/packrat1.scala +++ b/test/files/run/packrat1.scala @@ -21,15 +21,15 @@ object Test extends App{ } object grammars extends StandardTokenParsers with PackratParsers{ - + def extractResult(r : ParseResult[_]) = r match { case Success(a,_) => a case NoSuccess(a,_) => a } - + lexical.delimiters ++= List("+","-","*","/","(",")") lexical.reserved ++= List("Hello","World") - + /**** * term = term + fact | term - fact | fact * fact = fact * num | fact / num | num @@ -39,7 +39,7 @@ object grammars extends StandardTokenParsers with PackratParsers{ val term: PackratParser[Int] = (term~("+"~>fact) ^^ {case x~y => x+y} |term~("-"~>fact) ^^ {case x~y => x-y} |fact) - + val fact: PackratParser[Int] = (fact~("*"~>numericLit) ^^ {case x~y => x*y.toInt} |fact~("/"~>numericLit) ^^ {case x~y => x/y.toInt} |"("~>term<~")" diff --git a/test/files/run/packrat2.scala b/test/files/run/packrat2.scala index c25e5e9a85..1ea8285295 100644 --- a/test/files/run/packrat2.scala +++ b/test/files/run/packrat2.scala @@ -22,15 +22,15 @@ object Test extends App{ } object grammars2 extends StandardTokenParsers with PackratParsers{ - + def extractResult(r : ParseResult[_]) = r match{ case Success(a,_) => a case NoSuccess(a,_) => a } - + lexical.delimiters ++= List("+","-","*","/","(",")") lexical.reserved ++= List("Hello","World") - + /* * exp = sum | prod | num * sum = exp ~ "+" ~ num @@ -40,18 +40,18 @@ object grammars2 extends StandardTokenParsers with PackratParsers{ val exp : PackratParser[Int] = sum | prod | numericLit ^^{_.toInt} | "("~>exp<~")" val sum : PackratParser[Int] = exp~("+"~>exp) ^^ {case x~y => x+y} val prod: PackratParser[Int] = exp~("*"~>(numericLit ^^{_.toInt} | exp)) ^^ {case x~y => x*y} - - + + /* lexical.reserved ++= List("a","b", "c") val a : PackratParser[Any] = numericLit^^{x => primeFactors(x.toInt)} val b : PackratParser[Any] = memo("b") val c : PackratParser[Any] = memo("c") - val AnBnCn : PackratParser[Any] = + val AnBnCn : PackratParser[Any] = parseButDontEat(repMany1(a,b))~not(b)~>rep1(a)~repMany1(b,c)// ^^{case x~y => x:::y} //val c : PackratParser[Any] = parseButDontEat(a)~a~a //println(c((new PackratReader(new lexical.Scanner("45 24"))))) val r = new PackratReader(new lexical.Scanner("45 b c")) println(AnBnCn(r)) println(r.getCache.size) -*/ +*/ } diff --git a/test/files/run/packrat3.scala b/test/files/run/packrat3.scala index 3820f05158..e58d16a1fb 100644 --- a/test/files/run/packrat3.scala +++ b/test/files/run/packrat3.scala @@ -24,28 +24,28 @@ object Test { } object grammars3 extends StandardTokenParsers with PackratParsers { - + def extractResult(r: ParseResult[_]) = r match { case Success(a,_) => a case NoSuccess(a,_) => a } - + lexical.reserved ++= List("a","b", "c") val a: PackratParser[Any] = memo("a") val b: PackratParser[Any] = memo("b") val c: PackratParser[Any] = memo("c") - val AnBnCn: PackratParser[Any] = + val AnBnCn: PackratParser[Any] = guard(repMany1(a,b) ~ not(b)) ~ rep1(a) ~ repMany1(b,c)// ^^{case x~y => x:::y} - private def repMany[T](p: => Parser[T], q: => Parser[T]): Parser[List[T]] = + private def repMany[T](p: => Parser[T], q: => Parser[T]): Parser[List[T]] = ( p~repMany(p,q)~q ^^ {case x~xs~y => x::xs:::(y::Nil)} | success(Nil) ) - def repMany1[T](p: => Parser[T], q: => Parser[T]): Parser[List[T]] = + def repMany1[T](p: => Parser[T], q: => Parser[T]): Parser[List[T]] = p~opt(repMany(p,q))~q ^^ {case x~Some(xs)~y => x::xs:::(y::Nil)} -} +} diff --git a/test/files/run/patch-boundary.scala b/test/files/run/patch-boundary.scala index ed1a0e9fc1..8381956859 100644 --- a/test/files/run/patch-boundary.scala +++ b/test/files/run/patch-boundary.scala @@ -1,8 +1,8 @@ object Test { def f = collection.mutable.ArrayBuffer(1, 2, 3, 4, 5, 6, 7, 8) def g = f.patch(4, List(1, 2), 10) - + def main(args: Array[String]): Unit = { - assert(g.size == 6) + assert(g.size == 6) } } diff --git a/test/files/run/patmat-exprs.scala b/test/files/run/patmat-exprs.scala index f502a14832..dfc78e2ca5 100644 --- a/test/files/run/patmat-exprs.scala +++ b/test/files/run/patmat-exprs.scala @@ -37,7 +37,7 @@ trait Pattern { // // type Numeric[T] // import java.io.Serializable - // + // // implicit def compat27a[T](x: Iterable[T]) = new { // def iterator: Iterator[T] = x.elements // def sum: Int = 5 @@ -278,8 +278,8 @@ trait Pattern { case Mul(Mul(y, Const(z)), Const(x)) => Mul(const(num.mul(x, z)), y) case Const(x) if x == num.one => One[T] - case Const(x) if x == num.zero => Zero[T] - + case Const(x) if x == num.zero => Zero[T] + case Sub(x, Neg(y)) => Add(List(x, y)) case Sub(Neg(x), y) => Neg(Add(List(x, y))) case Neg(Neg(x)) => x diff --git a/test/files/run/patmat-seqs.scala b/test/files/run/patmat-seqs.scala index b5c47b4b4b..e23711697c 100644 --- a/test/files/run/patmat-seqs.scala +++ b/test/files/run/patmat-seqs.scala @@ -7,14 +7,14 @@ object Test { case Seq(_, _, _, _, _, x: String) => "ss6" case _ => "d" } - + def f2(x: Any) = x match { case Seq("a", "b", _*) => "s2" case Seq(1, _*) => "s1" case Seq(5, 6, 7, _*) => "s3" case _ => "d" } - + def main(args: Array[String]): Unit = { val xs1 = List( List(1,2,3), @@ -24,9 +24,9 @@ object Test { Seq(1, 2, 3, 4, 5, "abcd"), "abc" ) map f1 - + xs1 foreach println - + val xs2 = List( Seq(5, 6, 7), Seq(5, 6, 7, 8, 9), @@ -36,7 +36,7 @@ object Test { Nil, 5 ) map f2 - + xs2 foreach println } } diff --git a/test/files/run/patmatnew.scala b/test/files/run/patmatnew.scala index 025d6bf2ef..e2c95e3c81 100644 --- a/test/files/run/patmatnew.scala +++ b/test/files/run/patmatnew.scala @@ -72,7 +72,7 @@ object Test extends TestConsoleMain { object SeqUnapply extends TestCase("seqUnapply") { case class SFB(i: Int, xs: List[Int]) - override def runTest() { + override def runTest() { List(1,2) match { case List(1) => assert(false, "wrong case") case List(1,2,xs @ _*) => assert(xs.isEmpty, "not empty") @@ -104,11 +104,11 @@ object Test extends TestConsoleMain { case 0 => 0 }) assertEquals("s2", 1, 1 match { - case 1 => 1 + case 1 => 1 case _ => 0 }) assertEquals("s2boxed", 1, (1:Any) match { - case 1 => 1 + case 1 => 1 case _ => 0 }) assertEquals("s3", 1, ("hello") match { @@ -235,7 +235,7 @@ object Test extends TestConsoleMain { case class Foo() extends Con case class Bar(xs:Con*) extends Con - + override def runTest() { val res = (Bar(Foo()):Con) match { case Bar(xs@_*) => xs // this should be optimized away to a pattern Bar(xs) @@ -246,9 +246,9 @@ object Test extends TestConsoleMain { } object TestSequence06 extends TestCase("sei (not regular) fancy guards / bug#644 ") { - + case class A(i: Any) - + def doMatch(x: Any, bla: Int) = x match { case x:A if (bla==1) => 0 case A(1) => 1 @@ -273,7 +273,7 @@ object Test extends TestConsoleMain { //def doMatch3(xs:List[char]) = xs match { // case List(_*, z, w) => w::Nil //} - // + // // Since the second case should have been unreachable all along, // let's just comment this one out. // @@ -299,8 +299,8 @@ object Test extends TestConsoleMain { assertEquals(List('c','d'), doMatch6(List('a','b','c','d'))) } } - - object TestSequence08 extends TestCase("backquoted identifiers in pattern") { + + object TestSequence08 extends TestCase("backquoted identifiers in pattern") { override def runTest() { val xs = List(2, 3) val ys = List(1, 2, 3) match { @@ -318,17 +318,17 @@ object Test extends TestConsoleMain { case Stream.Empty => 0 case Stream.cons(hd, tl) => hd + sum(tl) } - + val str: Stream[Int] = List(1,2,3).iterator.toStream def runTest() = assertEquals(sum(str), 6) } - + class Test1163_Order extends TestCase("bug#1163 order of temps must be preserved") { abstract class Function case class Var(n: String) extends Function case class Const(v: Double) extends Function - + def f(): (Function, Function) = { (Var("x"): Function, Var("y"): Function) match { case (Const(v), Const(w)) => throw new Error @@ -336,13 +336,13 @@ object Test extends TestConsoleMain { case (leftTwo, rightTwo) => (leftTwo, rightTwo) // was giving "y","x" } } - - def flips(l: List[Int]): Int = (l: @unchecked) match { + + def flips(l: List[Int]): Int = (l: @unchecked) match { case 1 :: ls => 0 case n :: ls => flips((l take n reverse) ::: (l drop n)) + 1 } - def runTest() = assertEquals("both", (Var("x"),Var("y")), f) + def runTest() = assertEquals("both", (Var("x"),Var("y")), f) } class TestUnbox extends TestCase("unbox") { @@ -366,8 +366,8 @@ object Test extends TestConsoleMain { case dq : DoubleQuoteImpl => dq } } - - trait IfElseMatcher { + + trait IfElseMatcher { type Node <: NodeImpl trait NodeImpl trait IfImpl @@ -375,7 +375,7 @@ object Test extends TestConsoleMain { case node : IfImpl => node // var node is of type Node with IfImpl! case _ => null } - } + } } @@ -385,7 +385,7 @@ object Test extends TestConsoleMain { } object PersonFather { - def unapply(p : Person) : Option[Person] = + def unapply(p : Person) : Option[Person] = if (p.father == null) None else @@ -425,11 +425,11 @@ object Test extends TestConsoleMain { object Foo1 { class Bar1(val x : String) def p(b : Bar1) = Console.println(b.x) - + def unapply(s : String) : Option[Bar1] = Some(new Bar1(s)) } - + object bug881 extends TestCase("881") { override def runTest = { "baz" match { @@ -448,19 +448,19 @@ object Test extends TestConsoleMain { case Pair(Some(x),Some(y)) => 3 case _ => 4 } - + def g1[A](z:Option[List[A]]) = z match { - case Some(Nil) => true - case Some(x::Nil) => true + case Some(Nil) => true + case Some(x::Nil) => true case _ => true } - + def g2[A](z:Option[List[A]]) = z match { - case Some(x::Nil) => true + case Some(x::Nil) => true case Some(_) => false case _ => true } - + def h[A](x: (Option[A],Option[A])) = x match { case Pair(None,_:Some[_]) => 1 case Pair(_:Some[_],None ) => 2 @@ -485,20 +485,20 @@ object Test extends TestConsoleMain { } object Bug1270 { // unapply13 - + class Sync { def apply(x: Int): Int = 42 def unapply(scrut: Any): Option[Int] = None } - + class Buffer { object Get extends Sync - + var ps: PartialFunction[Any, Any] = { - case Get(y) if y > 4 => // y gets a wildcard type for some reason?! hack + case Get(y) if y > 4 => // y gets a wildcard type for some reason?! hack } } - + println((new Buffer).ps.isDefinedAt(42)) } @@ -509,7 +509,7 @@ object Test extends TestConsoleMain { trait Row extends Elem object Row { def unapply(r: Row) = true - + def f(elem: Elem) { elem match { case Bar() => ; @@ -520,9 +520,9 @@ object Test extends TestConsoleMain { /* object Feature1196 { def f(l: List[Int]) { } - + val l: Seq[Int] = List(1, 2, 3) - + l match { case x @ List(1, _) => f(x) // x needs to get better type List[int] here } @@ -546,9 +546,9 @@ object Test extends TestConsoleMain { trait Core { def next : Position = null } trait Dir val NEXT = new Dir{} - + trait Position extends Core - + (null:Core, null:Dir) match { case (_, NEXT) if true => false // no matter whether NEXT test succeed, cannot throw column because of guard case (at2:Position,dir) => true @@ -573,15 +573,15 @@ object Test extends TestConsoleMain { else None } } - + class Buffer { val Get = new Sync - + val jp: PartialFunction[Any, Any] = { case Get(xs) => println(xs) // the argDummy <unapply-selector> should have proper arg.tpe (Int in this case) } } - + println((new Buffer).jp.isDefinedAt(40)) println((new Buffer).jp.isDefinedAt(42)) } @@ -595,7 +595,7 @@ object Test extends TestConsoleMain { val s:PartialFunction[Any,Any] = { case List(4::xs) => 1 case List(5::xs) => 1 - case _ if false => + case _ if false => case List(3::xs) if List(3:Any).forall { g => g.hashCode() > 0 } => 1 } z.isDefinedAt(42) @@ -644,10 +644,10 @@ object Test extends TestConsoleMain { // bug#508 - object Bug508 extends TestCase("aladdin #508") { + object Bug508 extends TestCase("aladdin #508") { case class Operator(x: Int); val EQ = new Operator(2); - + def analyze(x: Pair[Operator, Int]) = x match { case Pair(EQ, 0) => "0" case Pair(EQ, 1) => "1" @@ -660,35 +660,35 @@ object Test extends TestConsoleMain { assertEquals("1", analyze(y)); // should print "1" val z = Pair(EQ, 2); assertEquals("2", analyze(z)); // should print "2" - } + } } // bug#789 - + object Bug789 extends TestCase("aladdin #789") { // don't do this at home trait Impl - + trait SizeImpl extends Impl { def size = 42 } - + trait ColorImpl extends Impl { def color = "red" } - + type Both = SizeImpl with ColorImpl - + def info(x:Impl) = x match { case x:Both => "size "+x.size+" color "+x.color // you wish case x:SizeImpl => "!size "+x.size case x:ColorImpl => "color "+x.color case _ => "n.a." } - + def info2(x:Impl) = x match { case x:SizeImpl with ColorImpl => "size "+x.size+" color "+x.color // you wish case x:SizeImpl => "!size "+x.size case x:ColorImpl => "color "+x.color case _ => "n.a." } - + override def runTest { // make up some class that has a size class MyNode extends SizeImpl @@ -705,7 +705,7 @@ object Test extends TestConsoleMain { case a: AnyRef if runtime.ScalaRunTime.isArray(a) => "Array" case _ => v.toString } - override def runTest { assertEquals("Array", foo(Array(0))) } + override def runTest { assertEquals("Array", foo(Array(0))) } } // bug#1093 (contribution #460) @@ -739,7 +739,7 @@ object Test extends TestConsoleMain { } } } - + object Ticket2 extends TestCase("#2") { override def runTest { val o1 = new Outer_2; val o2 = new Outer_2; val x: Any = o1.Foo(1, 2); val y: Any = o2.Foo(1, 2) assertFalse("equals test returns true (but should not)", x equals y) @@ -758,9 +758,9 @@ object Test extends TestConsoleMain { // will cause the test to succeed. trait SpecialException extends MyException1 // trait SpecialException - + class MyException2 extends MyException1 with SpecialException - + object Ticket11 extends TestCase("#11") { override def runTest { Array[Throwable](new Exception("abc"), @@ -781,7 +781,7 @@ object Test extends TestConsoleMain { } // #37 - + object Ticket37 extends TestCase("#37") { def foo() {} val (a,b) = { foo(); (2,3) } @@ -799,7 +799,7 @@ object Test extends TestConsoleMain { object Y extends _X { val foo = _Foo() foo match { - case _Bar() => + case _Bar() => case _ => assert(false) } } @@ -819,7 +819,7 @@ object Test extends TestConsoleMain { sealed abstract class Tree case class Node(l: Tree, v: Int, r: Tree) extends Tree case object EmptyTree extends Tree - + object Ticket335 extends TestCase("#335") { // compile-only override def runTest { (EmptyTree: Tree @unchecked) match { @@ -849,7 +849,7 @@ class L(val content: List[Int]) { } object N extends L(Nil) { - + override def equals(that: Any): Boolean = { val result = (that.isInstanceOf[L] && that.asInstanceOf[L].isEmpty) //println("N.equals("+that+") returning "+result) @@ -887,13 +887,13 @@ override def runTest() { } // end Ticket346 object Ticket495bis { // compile-only - def signum(x: Int): Int = - x match { + def signum(x: Int): Int = + x match { case 0 => 0 case _ if x < 0 => -1 case _ if x > 0 => 1 } - def pair_m(x: Int, y: Int) = + def pair_m(x: Int, y: Int) = (x,y) match { case (_, 0) => 0 case (-1, _) => -1 @@ -903,14 +903,14 @@ override def runTest() { object Ticket522 { // compile-only class Term[X] - object App { + object App { // i'm hidden case class InternalApply[Y,Z](fun:Y=>Z, arg:Y) extends Term[Z] - def apply[Y,Z](fun:Y=>Z, arg:Y): Term[Z] = + def apply[Y,Z](fun:Y=>Z, arg:Y): Term[Z] = new InternalApply[Y,Z](fun,arg) - def unapply[X](arg: Term[X]): Option[(Y=>Z,Y)] forSome {type Y; type Z} = + def unapply[X](arg: Term[X]): Option[(Y=>Z,Y)] forSome {type Y; type Z} = arg match { case i:InternalApply[y,z] => Some(i.fun, i.arg) case _ => None @@ -918,7 +918,7 @@ override def runTest() { } App({x: Int => x}, 5) match { - case App(arg, a) => + case App(arg, a) => } } // end Ticket522 diff --git a/test/files/run/pc-conversions.scala b/test/files/run/pc-conversions.scala index 6be0f99355..60ee59c3c4 100644 --- a/test/files/run/pc-conversions.scala +++ b/test/files/run/pc-conversions.scala @@ -5,11 +5,11 @@ import collection._ // test conversions between collections object Test { - + def main(args: Array[String]) { testConversions } - + def testConversions { // seq conversions assertSeq(parallel.mutable.ParArray(1, 2, 3)) @@ -18,7 +18,7 @@ object Test { assertSeq(parallel.immutable.ParRange(1, 50, 1, false)) assertSeq(parallel.immutable.ParHashMap(1 -> 2, 2 -> 4)) assertSeq(parallel.immutable.ParHashSet(1, 2, 3)) - + // par conversions assertPar(Array(1, 2, 3)) assertPar(mutable.ArrayBuffer(1, 2, 3)) @@ -29,7 +29,7 @@ object Test { assertPar(immutable.Range(1, 50, 1)) assertPar(immutable.HashMap(1 -> 1, 2 -> 2)) assertPar(immutable.HashSet(1, 2, 3)) - + // par.to* and to*.par tests assertToPar(List(1 -> 1, 2 -> 2, 3 -> 3)) assertToPar(Stream(1 -> 1, 2 -> 2)) @@ -47,19 +47,19 @@ object Test { assertToPar(parallel.mutable.ParHashSet(1 -> 2)) assertToPar(parallel.immutable.ParHashMap(1 -> 2)) assertToPar(parallel.immutable.ParHashSet(1 -> 3)) - + assertToParWoMap(immutable.Range(1, 10, 2)) - + // seq and par again conversions) assertSeqPar(parallel.mutable.ParArray(1, 2, 3)) } - + def assertSeqPar[T](pc: parallel.ParIterable[T]) = pc.seq.par == pc - + def assertSeq[T](pc: parallel.ParIterable[T]) = assert(pc.seq == pc) - + def assertPar[T, P <: Parallel](xs: GenIterable[T]) = assert(xs == xs.par) - + def assertToPar[K, V](xs: GenTraversable[(K, V)]) { xs match { case _: Seq[_] => @@ -67,26 +67,26 @@ object Test { assert(xs.par.toIterable == xs) case _ => } - + assert(xs.toSeq.par == xs.toSeq) assert(xs.par.toSeq == xs.toSeq) - + assert(xs.toSet.par == xs.toSet) assert(xs.par.toSet == xs.toSet) - + assert(xs.toMap.par == xs.toMap) assert(xs.par.toMap == xs.toMap) } - + def assertToParWoMap[T](xs: GenSeq[T]) { assert(xs.toIterable.par == xs.toIterable) assert(xs.par.toIterable == xs.toIterable) - + assert(xs.toSeq.par == xs.toSeq) assert(xs.par.toSeq == xs.toSeq) - + assert(xs.toSet.par == xs.toSet) assert(xs.par.toSet == xs.toSet) } - + } diff --git a/test/files/run/pf-catch.scala b/test/files/run/pf-catch.scala index f0b8baeeb3..ba0781fe89 100644 --- a/test/files/run/pf-catch.scala +++ b/test/files/run/pf-catch.scala @@ -6,12 +6,12 @@ object Test { case x: java.util.NoSuchElementException => shortName(x) case x: java.lang.IllegalArgumentException => shortName(x) } - + def fn[T: Handler](body: => T): T = { try body catch implicitly[Handler[T]] } - + def f1 = { implicit val myHandler = standardHandler println(fn(Nil.head)) @@ -28,7 +28,7 @@ object Test { def main(args: Array[String]): Unit = { try f1 catch { case x => println(shortName(x) + " slipped by.") } - + f2 } } diff --git a/test/files/run/primitive-sigs-2.scala b/test/files/run/primitive-sigs-2.scala index a8876f7f60..0c72b4aa6c 100644 --- a/test/files/run/primitive-sigs-2.scala +++ b/test/files/run/primitive-sigs-2.scala @@ -8,7 +8,7 @@ class C extends T[Char] { object Test { val c1: Class[_] = classOf[T[_]] val c2: Class[_] = classOf[C] - + val c1m = c1.getMethods.toList filter (_.getName == "f") map (_.getGenericReturnType.toString) val c2m = c2.getMethods.toList filter (_.getName == "f") map (_.getGenericReturnType.toString) diff --git a/test/files/run/priorityQueue.scala b/test/files/run/priorityQueue.scala index 327d8bf137..edc0e32b02 100644 --- a/test/files/run/priorityQueue.scala +++ b/test/files/run/priorityQueue.scala @@ -31,23 +31,23 @@ object Test { // val pq2 = new PriorityQueue[String] // val pq3 = new PriorityQueue[String] // val pq4 = new PriorityQueue[String] - + // val strings = (1 to 20).toList map (i => List.fill((Math.abs(nextInt % 20)) + 1)("x").mkString) - + // pq1 ++= strings // pq2 ++= strings.reverse // for (s <- strings) pq3 += s // for (s <- strings.reverse) pq4 += s - + // val pqs = List(pq1, pq2, pq3, pq4, pq1.clone, pq2.clone) - + // for (queue1 <- pqs ; queue2 <- pqs) { // val l1: List[String] = queue1.dequeueAll[String, List[String]] // val l2: List[String] = queue2.dequeueAll[String, List[String]] // assert(l1 == l2) // assert(queue1.max == queue2.max) // } - + // assertPriorityDestructive(pq1) // } @@ -83,7 +83,7 @@ object Test { // } // for (i <- 0 until 100) assert(intpq(i) == (99 - i)) // } - + // def testTails { // val pq = new PriorityQueue[Int] // for (i <- 0 until 10) pq += i * 4321 % 200 @@ -108,13 +108,13 @@ object Test { // prev = curr // } // } - + // def testInits { // val pq = new PriorityQueue[Long] // for (i <- 0 until 20) pq += (i + 313) * 111 % 300 - + // assert(pq.size == 20) - + // val initpq = pq.init // assert(initpq.size == 19) // assertPriorityDestructive(initpq) @@ -123,19 +123,19 @@ object Test { // def testFilters { // val pq = new PriorityQueue[String] // for (i <- 0 until 100) pq += "Some " + (i * 312 % 200) - + // val filpq = pq.filter(_.indexOf('0') != -1) // assertPriorityDestructive(filpq) // } // def testIntensiveEnqueueDequeue { // val pq = new PriorityQueue[Int] - + // testIntensive(1000, pq) // pq.clear // testIntensive(200, pq) // } - + // def testIntensive(sz: Int, pq: PriorityQueue[Int]) { // val lst = new collection.mutable.ArrayBuffer[Int] ++ (0 until sz) // val rand = new util.Random(7) @@ -153,7 +153,7 @@ object Test { // pq ++= (0 until 100) // val droppq = pq.drop(50) // assertPriority(droppq) - + // pq.clear // pq ++= droppq // assertPriorityDestructive(droppq) @@ -173,7 +173,7 @@ object Test { // // assertPriority(pq) // // pq.clear - + // // pq ++= (1 to 100) // // pq(5) = 200 // // assert(pq(0) == 200) @@ -204,7 +204,7 @@ object Test { // def testEquality { // val pq1 = new PriorityQueue[Int] // val pq2 = new PriorityQueue[Int] - + // pq1 ++= (0 until 50) // var i = 49 // while (i >= 0) { @@ -213,7 +213,7 @@ object Test { // } // assert(pq1 == pq2) // assertPriority(pq2) - + // pq1 += 100 // assert(pq1 != pq2) // pq2 += 100 @@ -230,7 +230,7 @@ object Test { // val pq = new PriorityQueue[Int] // pq ++= (0 until 100) // assert(pq.size == 100) - + // val (p1, p2) = pq.partition(_ < 50) // assertPriorityDestructive(p1) // assertPriorityDestructive(p2) @@ -252,13 +252,13 @@ object Test { // assert(pq.lastIndexWhere(_ == 9) == 0) // assert(pq.lastIndexOf(8) == 1) // assert(pq.lastIndexOf(7) == 2) - + // pq += 5 // pq += 9 // assert(pq.lastIndexOf(9) == 1) // assert(pq.lastIndexWhere(_ % 2 == 1) == 10) // assert(pq.lastIndexOf(5) == 6) - + // val lst = pq.reverseIterator.toList // for (i <- 0 until 5) assert(lst(i) == i) // assert(lst(5) == 5) @@ -268,13 +268,13 @@ object Test { // assert(lst(9) == 8) // assert(lst(10) == 9) // assert(lst(11) == 9) - + // pq.clear // assert(pq.reverseIterator.toList.isEmpty) - + // pq ++= (50 to 75) // assert(pq.lastIndexOf(70) == 5) - + // pq += 55 // pq += 70 // assert(pq.lastIndexOf(70) == 6) @@ -284,11 +284,11 @@ object Test { // assert(pq.lastIndexWhere(_ > 54, 21) == 21) // assert(pq.lastIndexWhere(_ > 69, 5) == 5) // } - + // def testReverse { // val pq = new PriorityQueue[(Int, Int)] // pq ++= (for (i <- 0 until 10) yield (i, i * i % 10)) - + // assert(pq.reverse.size == pq.reverseIterator.toList.size) // assert((pq.reverse zip pq.reverseIterator.toList).forall(p => p._1 == p._2)) // assert(pq.reverse.sameElements(pq.reverseIterator.toSeq)) @@ -296,19 +296,19 @@ object Test { // assert(pq.reverse(1)._1 == pq(8)._1) // assert(pq.reverse(4)._1 == pq(5)._1) // assert(pq.reverse(9)._1 == pq(0)._1) - + // pq += ((7, 7)) // pq += ((7, 9)) // pq += ((7, 8)) // assert(pq.reverse.reverse == pq) // assert(pq.reverse.lastIndexWhere(_._2 == 6) == 6) // assertPriorityDestructive(pq.reverse.reverse) - + // val iq = new PriorityQueue[Int] // iq ++= (0 until 50) // assert(iq.reverse == iq.reverseIterator.toSeq) // assert(iq.reverse.reverse == iq) - + // iq += 25 // iq += 40 // iq += 10 @@ -317,10 +317,10 @@ object Test { // assert(iq.reverse.lastIndexWhere(_ == 10) == 11) // assertPriorityDestructive(iq.reverse.reverse) // } - + // def testToList { // val pq = new PriorityQueue[Int] - + // pq += 1 // pq += 4 // pq += 0 @@ -330,16 +330,16 @@ object Test { // assert(pq.toList == pq) // assert(pq == List(5, 4, 3, 2, 1, 0)) // assert(pq.reverse == List(0, 1, 2, 3, 4, 5)) - + // pq.clear // for (i <- -50 until 50) pq += i // assert(pq.toList == pq) // assert(pq.toList == (-50 until 50).reverse) // } - + // def testForeach { // val pq = new PriorityQueue[Char] - + // pq += 't' // pq += 'o' // pq += 'b' @@ -351,7 +351,7 @@ object Test { // assert(sbf.toString == sbi.toString) // assert(sbf.toString == "ytob") // } - + } diff --git a/test/files/run/programmatic-main.scala b/test/files/run/programmatic-main.scala index 7fec0f3f98..7bc5c5dfcf 100644 --- a/test/files/run/programmatic-main.scala +++ b/test/files/run/programmatic-main.scala @@ -5,7 +5,7 @@ object Test { val cwd = Option(System.getProperty("partest.cwd")) getOrElse "." val basedir = Path(cwd).parent / "lib" path val baseargs = Array("-usejavacp", "-bootclasspath", basedir + "/scala-library.jar", "-cp", basedir + "/scala-compiler.jar") - + def main(args: Array[String]): Unit = { Console.withErr(Console.out) { Main process (baseargs ++ "-Xpluginsdir /does/not/exist/foo/quux -Xshow-phases".split(' ')) diff --git a/test/files/run/proxy.scala b/test/files/run/proxy.scala index 6f9e83c7f1..5f40397944 100644 --- a/test/files/run/proxy.scala +++ b/test/files/run/proxy.scala @@ -1,6 +1,6 @@ object Test extends App { val p = new Proxy { - def self = 2 + def self = 2 } println(p equals 1) println(p equals 2) diff --git a/test/files/run/randomAccessSeq-apply.scala b/test/files/run/randomAccessSeq-apply.scala index 9097038c51..b8d6d54052 100644 --- a/test/files/run/randomAccessSeq-apply.scala +++ b/test/files/run/randomAccessSeq-apply.scala @@ -1,14 +1,14 @@ object Test extends App { val empty = RandomAccessSeq() assert(empty.isEmpty) - + val single = RandomAccessSeq(1) assert(List(1) == single.toList) - + val two = RandomAccessSeq("a", "b") assert("a" == two.head) assert("b" == two.apply(1)) - + println("OK") } diff --git a/test/files/run/range.scala b/test/files/run/range.scala index 2dc0bae330..f08b2105d3 100644 --- a/test/files/run/range.scala +++ b/test/files/run/range.scala @@ -6,7 +6,7 @@ object Test { range.foreach(buffer += _); assert(buffer.toList == range.iterator.toList, buffer.toList+"/"+range.iterator.toList) } - + def boundaryTests() = { // #4321 assert((Int.MinValue to Int.MaxValue by Int.MaxValue).size == 3) @@ -17,31 +17,31 @@ object Test { ) assert(caught) } - + case class GR[T](val x: T)(implicit val num: Integral[T]) { import num._ - + def negated = GR[T](-x) - + def gr1 = NumericRange(x, x, x) def gr2 = NumericRange.inclusive(x, x, x) def gr3 = NumericRange(x, x * fromInt(10), x) def gr4 = NumericRange.inclusive(x, x * fromInt(10), x) def gr5 = gr3.toList ::: negated.gr3.toList - + def check = { assert(gr1.isEmpty && !gr2.isEmpty) - assert(gr3.size == 9 && gr4.size == 10) + assert(gr3.size == 9 && gr4.size == 10) assert(gr5.sum == num.zero, gr5.toString) assert(!(gr3 contains (x * fromInt(10)))) assert((gr4 contains (x * fromInt(10)))) } } - + def main(args: Array[String]): Unit = { implicit val imp1 = Numeric.BigDecimalAsIfIntegral implicit val imp2 = Numeric.DoubleAsIfIntegral - + val _grs = List[GR[_]]( GR(BigDecimal(5.0)), GR(BigInt(5)), @@ -51,21 +51,21 @@ object Test { ) val grs = _grs ::: (_grs map (_.negated)) grs foreach (_.check) - + assert(NumericRange(1, 10, 1) sameElements (1 until 10)) assert(NumericRange.inclusive(1, 10, 1) sameElements (1 to 10)) assert(NumericRange.inclusive(1, 100, 3) sameElements (1 to 100 by 3)) - + // #2518 assert((3L to 7 by 2) sameElements List(3L, 5L, 7L)) - + rangeForeach(1 to 10); rangeForeach(1 until 10); rangeForeach(10 to 1 by -1); rangeForeach(10 until 1 by -1); rangeForeach(10 to 1 by -3); rangeForeach(10 until 1 by -3); - + // living on the edges boundaryTests() } diff --git a/test/files/run/records.scala b/test/files/run/records.scala index c1dc7b67e8..96b0b4cb0f 100644 --- a/test/files/run/records.scala +++ b/test/files/run/records.scala @@ -16,10 +16,10 @@ object Test { val y = new C { def f = 2 def g = " world" - } - + } + val z: T = y - + def main(args: Array[String]): Unit = { assert(x.f+z.f == 3) assert(x.g+z.g == "hello world") diff --git a/test/files/run/repl-backticks.scala b/test/files/run/repl-backticks.scala index 94e34d1438..11c58e18a1 100644 --- a/test/files/run/repl-backticks.scala +++ b/test/files/run/repl-backticks.scala @@ -1,18 +1,18 @@ -import scala.tools.nsc._ +import scala.tools.nsc._ object Test { val testCode = <code> import java.lang.Thread.`yield` import scala.`package`.Throwable - - `yield` + + `yield` </code>.text - + def main(args: Array[String]) = { val settings = new Settings() settings.classpath.value = System.getProperty("java.class.path") val repl = new Interpreter(settings) - repl.interpret(testCode) + repl.interpret(testCode) } } diff --git a/test/files/run/run-bug4840.scala b/test/files/run/run-bug4840.scala index dda280fd17..5f98bc9f4b 100644 --- a/test/files/run/run-bug4840.scala +++ b/test/files/run/run-bug4840.scala @@ -1,6 +1,6 @@ object Test { def g(x: Boolean): Option[String] = if (x) Some("booya") else None - + def f1() = { for (x <- g(true)) yield { g(false) match { @@ -9,11 +9,11 @@ object Test { } } } - + def f2() = { for (x <- g(true) ; y <- g(true) ; z <- g(true)) yield { for (x <- g(true) ; y <- g(true) ; z <- g(true)) yield { - g(true) map { _ => + g(true) map { _ => (null: Any) match { case Some(x: Int) => x case _ => 5 @@ -21,7 +21,7 @@ object Test { } } } - } + } def main(args: Array[String]): Unit = { println(f1()) diff --git a/test/files/run/runtime-richChar.scala b/test/files/run/runtime-richChar.scala index dceb70e74d..cf18a1d302 100644 --- a/test/files/run/runtime-richChar.scala +++ b/test/files/run/runtime-richChar.scala @@ -5,19 +5,19 @@ object Test extends App { else println(name + " failed: " + expected + " differs from " + got) } - + testSeq("'a' to 'c'", List('a', 'b', 'c'), 'a' to 'c') testSeq("'a' until 'c'", List('a', 'b'), 'a' until 'c') - + testSeq("'a' to 'b'", List('a', 'b'), 'a' to 'b') testSeq("'a' until 'b'", List('a'), 'a' until 'b') - + testSeq("'a' to 'a'", List('a'), 'a' to 'a') testSeq("'a' until 'a'", List(), 'a' until 'a') - + testSeq("'b' to 'a'", List(), 'b' to 'a') testSeq("'b' until 'a'", List(), 'b' until 'a') - + testSeq("'c' to 'a'", List(), 'c' to 'a') testSeq("'c' until 'a'", List(), 'c' until 'a') } diff --git a/test/files/run/scan.scala b/test/files/run/scan.scala index 47e0a7d976..f056c77ba1 100644 --- a/test/files/run/scan.scala +++ b/test/files/run/scan.scala @@ -6,17 +6,17 @@ object Test { def main(args: Array[String]) { val lst = List(1, 2, 3, 4, 5) - + assert(lst.scanLeft(0)(_ + _) == List(0, 1, 3, 6, 10, 15)) assert(lst.scanRight(0)(_ + _) == List(15, 14, 12, 9, 5, 0)) - + val emp = List[Int]() assert(emp.scanLeft(0)(_ + _) == List(0)) assert(emp.scanRight(0)(_ + _) == List(0)) - + val stream = Stream(1, 2, 3, 4, 5) assert(stream.scanLeft(0)(_ + _) == Stream(0, 1, 3, 6, 10, 15)) - + assert(Stream.from(1).scanLeft(0)(_ + _).take(5) == Stream(0, 1, 3, 6, 10)) } diff --git a/test/files/run/seqlike-kmp.scala b/test/files/run/seqlike-kmp.scala index af39fda9af..514990cfa2 100644 --- a/test/files/run/seqlike-kmp.scala +++ b/test/files/run/seqlike-kmp.scala @@ -2,7 +2,7 @@ object Test { val source = 0 to 99 val idxes = (-1 to 2) ++ (97 to 100) def str(xs: Seq[Int]) = xs.mkString("(", ", ", ")") - + def f(tgt: Seq[Int]) = { println("indexOfSlice") // the first index `>= from` such that... @@ -17,11 +17,11 @@ object Test { println(" %s with idx <= %d = %d".format(str(tgt), x, res)) } } - + def g(idx: Int, len: Int) = { f(source.slice(idx, idx + len)) } - + def main(args: Array[String]): Unit = { g(97, 1) g(97, 2) diff --git a/test/files/run/sequenceComparisons.scala b/test/files/run/sequenceComparisons.scala index 2b5833aacc..c8e14e452c 100644 --- a/test/files/run/sequenceComparisons.scala +++ b/test/files/run/sequenceComparisons.scala @@ -2,12 +2,12 @@ import scala.collection.{ mutable, immutable } import collection.{ Seq, Traversable } object Test { - // TODO: + // TODO: // // SeqProxy // SeqForwarder // the commented out ones in seqMakers - + val seqMakers = List[List[Int] => Seq[Int]]( // scala.Array(_: _*), mutable.ArrayBuffer(_: _*), @@ -23,13 +23,13 @@ object Test { immutable.Seq(_: _*), mutable.Seq(_: _*), immutable.Stack(_: _*), - // mutable.Stack(_: _*), + // mutable.Stack(_: _*), immutable.IndexedSeq(_: _*), // was Vector //mutable.Vector(_: _*), immutable.List(_: _*), immutable.Stream(_: _*) ) - + abstract class Data[T] { val seq: Seq[T] private def seqList = seq.toList @@ -45,50 +45,50 @@ object Test { } lazy val eqeq = Method(_ == _, (List(seqList), List(Nil, seqList drop 1, seqList ::: seqList)), "%s == %s") - + val startsWithInputs: Inputs lazy val startsWith = Method(_ startsWith _, startsWithInputs, "%s startsWith %s") - + val endsWithInputs: Inputs lazy val endsWith = Method(_ endsWith _, endsWithInputs, "%s endsWith %s") val indexOfSliceInputs: Inputs private def subseqTest(s1: Seq[T], s2: Seq[T]) = (s1 indexOfSlice s2) != -1 lazy val indexOfSlice = Method(subseqTest _, indexOfSliceInputs, "(%s indexOfSlice %s) != -1") - + val sameElementsInputs: Inputs lazy val sameElements = Method(_ sameElements _, sameElementsInputs, "%s sameElements %s") - + def methodList = List(eqeq, startsWith, endsWith, indexOfSlice, sameElements) } - + object test1 extends Data[Int] { val seq = List(1,2,3,4,5) - + val startsWithInputs = ( List(Nil, List(1), List(1,2), seq), List(List(1,2,3,4,6), seq ::: List(5), List(0)) ) - + val endsWithInputs = ( List(Nil, List(5), List(4,5), seq), List(0 :: seq, List(5,2,3,4,5), List(3,4), List(5,6)) ) - + val indexOfSliceInputs = ( List(Nil, List(1), List(3), List(5), List(1,2), List(2,3,4), List(4,5), seq), List(List(1,2,3,5), List(6), List(5,4,3,2,1), List(2,1)) ) - + val sameElementsInputs = ( List(List(1,2,3,4,5)), List(Nil, List(1), List(1,2), List(2,3,4), List(2,3,4,5), List(2,3,4,5,1), List(1,2,3,5,4), seq reverse) ) } - + val failures = new mutable.ListBuffer[String] var testCount = 0 - + def assertOne(op1: Any, op2: Any, res: Boolean, str: String) { testCount += 1 val resStr = str.format(op1, op2) @@ -97,25 +97,25 @@ object Test { failures += ("FAIL: " + resStr) // assert(res, resStr) } - + def runSeqs() = { for (s1f <- seqMakers ; s2f <- seqMakers ; testData <- List(test1)) { import testData._ val scrut = s1f(seq) - + for (Method(f, (trueList, falseList), descr) <- methodList) { for (s <- trueList; val rhs = s2f(s)) assertOne(scrut, rhs, f(scrut, rhs), descr) - + for (s <- falseList; val rhs = s2f(s)) assertOne(scrut, rhs, !f(scrut, rhs), "!(" + descr + ")") } } } - + def main(args: Array[String]) { runSeqs() - + assert(failures.isEmpty, failures mkString "\n") } } diff --git a/test/files/run/slice-strings.scala b/test/files/run/slice-strings.scala index 129314387a..23085866f5 100644 --- a/test/files/run/slice-strings.scala +++ b/test/files/run/slice-strings.scala @@ -1,7 +1,7 @@ -object Test { +object Test { def cmp(x1: String) = { val x2 = x1.toList - + -10 to 10 foreach { i => assert(x1.take(i) == x2.take(i).mkString) assert(x1.drop(i) == x2.drop(i).mkString) @@ -12,7 +12,7 @@ object Test { assert(x1.slice(idx1, idx2) == x2.slice(idx1, idx2).mkString) } } - + def main(args: Array[String]): Unit = { cmp("abcde") } diff --git a/test/files/run/streamWithFilter.scala b/test/files/run/streamWithFilter.scala index cb919d4f55..7f8f9a09d2 100644 --- a/test/files/run/streamWithFilter.scala +++ b/test/files/run/streamWithFilter.scala @@ -4,7 +4,7 @@ object Test { def isBuzz(x: Int) = x % 5 == 0 // next line will run forever if withFilter isn't doing its thing. val fizzbuzzes = for (n <- nums ; if isFizz(n) ; if isBuzz(n)) yield n - + def main(args: Array[String]): Unit = { fizzbuzzes take 5 foreach println } diff --git a/test/files/run/streams.scala b/test/files/run/streams.scala index edf7ae368e..51b4e5d76c 100644 --- a/test/files/run/streams.scala +++ b/test/files/run/streams.scala @@ -29,7 +29,7 @@ object Test extends App { def powers(x: Int) = if ((x&(x-1)) == 0) Some(x) else None println(s3.flatMap(powers).reverse.head) - // large enough to generate StackOverflows (on most systems) + // large enough to generate StackOverflows (on most systems) // unless the following methods are tail call optimized. val size = 100000 diff --git a/test/files/run/stringbuilder.scala b/test/files/run/stringbuilder.scala index cc3eb032dc..ef85fc02a6 100644 --- a/test/files/run/stringbuilder.scala +++ b/test/files/run/stringbuilder.scala @@ -1,21 +1,21 @@ object Test extends App { val str = "ABCDEFGHIJKLMABCDEFGHIJKLM" val surrogateStr = "an old Turkic letter: \uD803\uDC22" - - type SB = { + + type SB = { def indexOf(str: String): Int def indexOf(str: String, fromIndex: Int): Int def lastIndexOf(str: String): Int def lastIndexOf(str: String, fromIndex: Int): Int } - + import scala.collection.mutable.{ StringBuilder => ScalaStringBuilder } import java.lang.{ StringBuilder => JavaStringBuilder } - + val sbScala = new ScalaStringBuilder() append str val sbJava = new JavaStringBuilder() append str val sbs: List[SB] = List[SB](sbScala, sbJava) - + def sameAnswers(f: (SB) => Int) = assert(f(sbScala) == f(sbJava)) sameAnswers(_.indexOf("")) @@ -31,10 +31,10 @@ object Test extends App { sameAnswers(_.lastIndexOf("QZV")) sameAnswers(_.lastIndexOf("GHI", 22)) sameAnswers(_.lastIndexOf("KLM", 22)) - + // testing that the "reverse" implementation avoids reversing surrogate pairs val jsb = new JavaStringBuilder(surrogateStr) reverse val ssb = new ScalaStringBuilder(surrogateStr) reverseContents ; - + assert(jsb.toString == ssb.toString) } diff --git a/test/files/run/structural.scala b/test/files/run/structural.scala index 97627b8da1..36af8c4bfc 100644 --- a/test/files/run/structural.scala +++ b/test/files/run/structural.scala @@ -1,18 +1,18 @@ object test1 { - + val o1 = new Object { override def toString = "ohone" } val o2 = new Object { override def toString = "ohtwo" } - + val t1 = new Tata("tieone") val t2 = new Tata("tietwo") - + class Tata(name: String) { override def toString = name def tatMe = "oy" } - + class Titi extends Tata("titi") - + object Rec { val a = 1 val b = 2 @@ -41,7 +41,7 @@ object test1 { val y: Tata = null def z(t: Tata) = () } - + type rt = Object { val a: Int; val c: String; @@ -65,7 +65,7 @@ object test1 { var v: Int val y: Tata } - + def l (r: rt) { println(" 1. " + r.c) println(" 2. " + r.a + 1) @@ -94,33 +94,33 @@ object test1 { println("25. " + r.y) println("26. " + r.e(null)) } - + /*def ma[T](r: Object{def e(x: T): T; val x: T}) { println("30. " + r.e(r.x)) // static error }*/ - + def mb(r: Object { def e[T](x: T): T }) { println("31. " + r.e[Int](4)) // while this is ok } - + def m1(r: Object { def z(x: Tata): Unit }) { println("32. " + r.z(new Titi)) // while this is ok } - + def m2[T](r: Object { def e(x: Tata): T; val x: Tata }) { println("33. " + r.e(r.x)) // and this too } - + class Rec3[T] { def e(x: T): T = x } - + def m3[T](r: Rec3[T], x: T) { println("33. " + r.e(x)) // and this too } - + Rec.g(11) - + this.l(Rec) this.mb(new Object{def e[T](x: T): T = x}) this.m1(Rec) @@ -132,7 +132,7 @@ object test2 { class C extends { def f() { println("1") } } val x1 = new C x1.f() - + abstract class D extends { def f() } val x2 = new D { def f() { println("2") } } x2.f() @@ -153,11 +153,11 @@ object test2 { object test3 { case class Exc extends Exception - + object Rec { def f = throw Exc() } - + def m(r: { def f: Nothing }) = try { r.f @@ -166,31 +166,31 @@ object test3 { case e: Exc => println("caught") case e => println(e) } - + m(Rec) - + } object test4 { class A - + val aar = Array(new A, new A, new A) val nar = Array(1, 2) - + def f(p: {def size: Int}) = println(p.size) //def g[T <: {def size: Int}](p: T) = println(p.size) // open issue //def h[T <% {def size: Int}](p: T) = println(p.size) // open issue - + f(aar) f(nar) - + //g(aar) //g(nar) - + //h(aar) //h(nar) - + } object Test extends App { diff --git a/test/files/run/sysprops.scala b/test/files/run/sysprops.scala index bdad677221..4d98e2cdd0 100644 --- a/test/files/run/sysprops.scala +++ b/test/files/run/sysprops.scala @@ -3,16 +3,16 @@ import sys._ /** Basic sys.Prop test. */ object Test { val key = "ding.dong.doobie" - + def bool() = { val prop = BooleanProp.valueIsTrue(key) assert(prop.key == key) - + prop.clear() assert(!prop.value) assert(!prop.isSet) assert(prop.get != null) - + prop set "dingus" assert(prop.get == "dingus") assert(!prop.value) @@ -32,7 +32,7 @@ object Test { prop.set("523") assert(prop.value == 523) prop.set("DingusInt") - + try { println(prop.value) ; assert(false, "should not get here") } catch { case _: Exception => () } } @@ -41,7 +41,7 @@ object Test { prop.set("55.0") assert(prop.value == 55.0) } - + def main(args: Array[String]): Unit = { bool() int() diff --git a/test/files/run/t0017.scala b/test/files/run/t0017.scala index e2a43a66ac..103a089015 100644 --- a/test/files/run/t0017.scala +++ b/test/files/run/t0017.scala @@ -7,7 +7,7 @@ def transpose[A](arr: Array[Array[A]]) = { var my_arr = Array(Array(1,2),Array(3,4)) -for (i <- Array.range(0, my_arr(0).length)) yield +for (i <- Array.range(0, my_arr(0).length)) yield for (row <- my_arr) yield row(i) val transposed = transpose(my_arr) diff --git a/test/files/run/t0421.scala b/test/files/run/t0421.scala index 90adb31c4f..128bd1bdbe 100644 --- a/test/files/run/t0421.scala +++ b/test/files/run/t0421.scala @@ -7,17 +7,17 @@ object Test extends App { } def scalprod(xs: Array[Double], ys: Array[Double]) = { - var acc = 0.0 - for ((x, y) <- xs zip ys) acc = acc + x * y + var acc = 0.0 + for ((x, y) <- xs zip ys) acc = acc + x * y acc } def matmul(xss: Array[Array[Double]], yss: Array[Array[Double]]) = { - val ysst = transpose(yss) + val ysst = transpose(yss) val ysst1: Array[Array[Double]] = yss.transpose assert(ysst.deep == ysst1.deep) for (xs <- xss) yield - for (yst <- ysst) yield + for (yst <- ysst) yield scalprod(xs, yst) } @@ -25,6 +25,6 @@ object Test extends App { println(transpose(a1).deepMkString("[", ",", "]")) println(matmul(Array(Array(2, 3)), Array(Array(5), Array(7))).deepMkString("[", ",", "]")) - + println(matmul(Array(Array(4)), Array(Array(6, 8))).deepMkString("[", ",", "]")) } diff --git a/test/files/run/t0508.scala b/test/files/run/t0508.scala index 2283c46c36..0f4325e629 100644 --- a/test/files/run/t0508.scala +++ b/test/files/run/t0508.scala @@ -9,5 +9,5 @@ object Test extends App { } } - foo(Foo.unapply, Foo("this might be fun", 10)) + foo(Foo.unapply, Foo("this might be fun", 10)) } diff --git a/test/files/run/t0631.scala b/test/files/run/t0631.scala index c401ed31cb..5bceab6193 100644 --- a/test/files/run/t0631.scala +++ b/test/files/run/t0631.scala @@ -1,5 +1,5 @@ object Test extends App { - class Foo { + class Foo { override def equals(that: Any) = { println("Foo.equals called") super.equals(that) diff --git a/test/files/run/t0677.scala b/test/files/run/t0677.scala index 65448ed42c..764f8e82c5 100644 --- a/test/files/run/t0677.scala +++ b/test/files/run/t0677.scala @@ -1,7 +1,7 @@ object Test extends App { - class X[T: ClassManifest] { + class X[T: ClassManifest] { val a = new Array[Array[T]](3,4) - val b = Array.ofDim[T](3, 4) + val b = Array.ofDim[T](3, 4) } val x = new X[String] x.a(1)(2) = "hello" diff --git a/test/files/run/t0807.scala b/test/files/run/t0807.scala index 1e2a26664a..1a1add6b3a 100644 --- a/test/files/run/t0807.scala +++ b/test/files/run/t0807.scala @@ -1,5 +1,5 @@ trait A -trait B extends A { val x = println("early") } +trait B extends A { val x = println("early") } object Test extends App { new B {} } diff --git a/test/files/run/t0883.scala b/test/files/run/t0883.scala index c8ed06dbfe..adde95197b 100644 --- a/test/files/run/t0883.scala +++ b/test/files/run/t0883.scala @@ -1,14 +1,14 @@ object Foo { def apply(x: String) = new Foo(x) } class Foo(name: String) case object Bar extends Foo("Bar") -case class Baz() extends Foo("Baz") +case class Baz() extends Foo("Baz") object Test extends App { - Foo("Bar") match { - case Bar => println("What?") + Foo("Bar") match { + case Bar => println("What?") case _ => println("OK") } - Foo("Baz") match { - case Baz() => println("What?") + Foo("Baz") match { + case Baz() => println("What?") case _ => println("OK") - } + } } diff --git a/test/files/run/t1167.scala b/test/files/run/t1167.scala index 3dd0a30c00..c2ec4cff4e 100644 --- a/test/files/run/t1167.scala +++ b/test/files/run/t1167.scala @@ -10,17 +10,17 @@ trait Test1 { /* getName * Returns the binary name of the class if this class object represents a - * reference type that is not an array type. + * reference type that is not an array type. * getSimpleName * Returns the simple name of the underlying class as given in the source * code. Returns an empty string if the underlying class is anonymous. */ abstract class Foo { override def toString = getClass.getSimpleName - + abstract class Bar { override def toString = getClass.getSimpleName - } + } } object Test extends App { diff --git a/test/files/run/t1323.scala b/test/files/run/t1323.scala index 94b51bd2a4..8209b85219 100644 --- a/test/files/run/t1323.scala +++ b/test/files/run/t1323.scala @@ -3,9 +3,9 @@ object Test extends App { println(" 2:" + List(1,2,3,4).indexOfSlice(List(1,2))) // 0 println(" 3:" + List(1,2,3,4).indexOfSlice(List(2,3))) // 1 println(" 4:" + List(1,2,3,4).indexOfSlice(List(3,4))) // 2 - println(" 5:" + List(1,2,3,4).indexOfSlice(List(4,5))) // -1 + println(" 5:" + List(1,2,3,4).indexOfSlice(List(4,5))) // -1 println(" 6:" + List(1,2,3,4).indexOfSlice(List(2,4))) // -1 - println(" 7:" + List(1,2,3,4).indexOfSlice(List(4,3))) // -1 + println(" 7:" + List(1,2,3,4).indexOfSlice(List(4,3))) // -1 println(" 8:" + List(1,2,3,4).indexOfSlice(List(1,3))) // -1 println(" 9:" + List(1,2,3,4).indexOfSlice(List(1,3))) // -1 println("10:" + List(1,2,3,4).indexOfSlice(List(1,2,3,4))) // 0 diff --git a/test/files/run/t1423.scala b/test/files/run/t1423.scala index 073483aeee..44c6653287 100644 --- a/test/files/run/t1423.scala +++ b/test/files/run/t1423.scala @@ -5,4 +5,4 @@ object Test extends App{ case 1L => println(1); case _ => println("????"); } -} +} diff --git a/test/files/run/t1500.scala b/test/files/run/t1500.scala index ce6278cd05..c312a9a883 100644 --- a/test/files/run/t1500.scala +++ b/test/files/run/t1500.scala @@ -1,23 +1,23 @@ -import scala.tools.nsc._ +import scala.tools.nsc._ object Test { - + /** * Type inference overlooks constraints posed by type parameters in annotations on types. */ - + val testCode = <code> - + class posingAs[A] extends TypeConstraint - + def resolve[A,B](x: A @posingAs[B]): B = x.asInstanceOf[B] - + val x = resolve(7: @posingAs[Any]) - + </code>.text - + def main(args: Array[String]) = { - + val settings = new Settings() settings.classpath.value = System.getProperty("java.class.path") val tool = new Interpreter(settings) @@ -35,11 +35,11 @@ object Test { } } - + global.addAnnotationChecker(checker) - + tool.interpret(testCode) - + } } diff --git a/test/files/run/t1501.scala b/test/files/run/t1501.scala index f1eb8f287d..05e4da8c7a 100644 --- a/test/files/run/t1501.scala +++ b/test/files/run/t1501.scala @@ -1,15 +1,15 @@ -import scala.tools.nsc._ +import scala.tools.nsc._ object Test { - + /** * ... */ - + val testCode = <code> - + class xyz[A] extends TypeConstraint - + def loopWhile[T](cond: =>Boolean)(body: =>(Unit @xyz[T])): Unit @ xyz[T] = {{ if (cond) {{ body @@ -24,9 +24,9 @@ object Test { (): @xyz[Int] }} }} - + </code>.text - + def main(args: Array[String]) = { val settings = new Settings() settings.classpath.value = System.getProperty("java.class.path") @@ -45,11 +45,11 @@ object Test { } } - + global.addAnnotationChecker(checker) - + tool.interpret(testCode) - + } } diff --git a/test/files/run/t1537.scala b/test/files/run/t1537.scala index 1dce501990..ddbfb29ac4 100644 --- a/test/files/run/t1537.scala +++ b/test/files/run/t1537.scala @@ -4,15 +4,15 @@ trait Syntax { trait Evaluation { val syntax: Syntax - + def equalInTrait = this.syntax.Foo == this.syntax.Foo } object Test extends Evaluation with App { - object syntax extends Syntax + object syntax extends Syntax def equalInObject = this.syntax.Foo == this.syntax.Foo - + println(equalInTrait) println(equalInObject) } diff --git a/test/files/run/t1591.scala b/test/files/run/t1591.scala index 6dd9605042..bd43f0b23d 100644 --- a/test/files/run/t1591.scala +++ b/test/files/run/t1591.scala @@ -1,8 +1,8 @@ abstract class A { - + lazy val lazyBar = bar - - object bar { + + object bar { val foo = 12 } diff --git a/test/files/run/t1718.scala b/test/files/run/t1718.scala index d1b19c38cd..358bd1be5a 100644 --- a/test/files/run/t1718.scala +++ b/test/files/run/t1718.scala @@ -1,10 +1,10 @@ object Test extends App{ - def matchesNull[T](mightBeNull: Array[T]): Boolean = mightBeNull match { + def matchesNull[T](mightBeNull: Array[T]): Boolean = mightBeNull match { case null => true case x => false } val nullArray: Array[String] = null - println(matchesNull(nullArray)) + println(matchesNull(nullArray)) } diff --git a/test/files/run/t1773.scala b/test/files/run/t1773.scala index 7c95df62f8..c50b62512f 100644 --- a/test/files/run/t1773.scala +++ b/test/files/run/t1773.scala @@ -7,6 +7,6 @@ object Test extends App <a>{""}</a>, <a>{ if (true) "" else "I like turtles" }</a> ) - + for (x1 <- xs; x2 <- xs) assert (x1 xml_== x2) } diff --git a/test/files/run/t1829.scala b/test/files/run/t1829.scala index 8240527424..7c39d33ae9 100644 --- a/test/files/run/t1829.scala +++ b/test/files/run/t1829.scala @@ -1,6 +1,6 @@ object Test{ def main(args : Array[String]){ - import scala.collection.immutable._ + import scala.collection.immutable._ assert(IntMap.empty == HashMap.empty); assert(HashMap.empty == IntMap.empty); assert(LongMap.empty == HashMap.empty); diff --git a/test/files/run/t2074_2.scala b/test/files/run/t2074_2.scala index 4624170f89..1f59e0b8a1 100644 --- a/test/files/run/t2074_2.scala +++ b/test/files/run/t2074_2.scala @@ -12,7 +12,7 @@ object Test { def iterator = underlying.iterator } val w = IndexedSeq(1, 2, 3).view - + def main(args: Array[String]): Unit = { println(v) println(w) diff --git a/test/files/run/t2417.scala b/test/files/run/t2417.scala index 31d4c143fa..aeb61a7d1d 100644 --- a/test/files/run/t2417.scala +++ b/test/files/run/t2417.scala @@ -1,6 +1,6 @@ // #2417 object Test { - + def parallel(numThreads: Int)(block: => Unit) { var failure: Throwable = null val threads = Array.fromFunction(i => new Thread { @@ -16,7 +16,7 @@ object Test { for (t <- threads) t.join if (failure != null) println("FAILURE: " + failure) } - + def testSet(initialSize: Int, numThreads: Int, passes: Int) { val orig = Set.empty ++ (1 to initialSize) parallel(numThreads) { @@ -32,7 +32,7 @@ object Test { } } } - + def testMap(initialSize: Int, numThreads: Int, passes: Int) { val orig = Map.empty ++ ((1 to initialSize) map ((_,"v"))) parallel(numThreads) { @@ -48,28 +48,28 @@ object Test { } } } - + def main(args: Array[String]) { println("testing small Map that doesn't promote to HashMap...") testMap(4, 2, 1000000) println() - + println("testing single-threaded HashMap use...") testMap(5, 1, 1000000) println() - + println("testing HashMap.size from multiple threads...") testMap(5, 2, 1000000) println() - + println("testing small Set that doesn't promote to HashSet...") testSet(4, 2, 1000000) println() - + println("testing single-threaded HashSet use...") testSet(5, 1, 1000000) println() - + println("testing HashSet.size from multiple threads...") testSet(5, 2, 1000000) println() diff --git a/test/files/run/t2526.scala b/test/files/run/t2526.scala index 53f3059135..d37185535f 100644 --- a/test/files/run/t2526.scala +++ b/test/files/run/t2526.scala @@ -4,18 +4,18 @@ */ object Test { import collection._ - + def main(args: Array[String]) { val m = new mutable.HashMap[String, String] - + /* Use non hash-based structure for verification */ val keys = List("a", "b", "c", "d", "e") val valueSuffix = "value" val values = keys.map(_ + valueSuffix) val entries = keys.zip(values) - + for (k <- keys) m(k) = k + valueSuffix - + assertForeach(keys, m.keySet.iterator) assertForeach(keys, m.keysIterator) assertForeach(keys, m.keySet) @@ -25,7 +25,7 @@ object Test { assertForeach(entries, m) } - + /* Checks foreach of `actual` goes over all the elements in `expected` */ private def assertForeach[E](expected: Traversable[E], actual: Iterator[E]): Unit = { val notYetFound = new mutable.ArrayBuffer[E]() ++= expected @@ -35,12 +35,12 @@ object Test { } assert(notYetFound.size == 0, "mutable.HashMap.foreach should have iterated over: " + notYetFound) } - - /* + + /* * Checks foreach of `actual` goes over all the elements in `expected` * We duplicate the method above because there is no common inteface between Traversable and * Iterator and we want to avoid converting between collections to ensure that we test what - * we mean to test. + * we mean to test. */ private def assertForeach[E](expected: Traversable[E], actual: Traversable[E]): Unit = { val notYetFound = new mutable.ArrayBuffer[E]() ++= expected diff --git a/test/files/run/t2813.2.scala b/test/files/run/t2813.2.scala index 9a9a79da4d..e55cc6c004 100644 --- a/test/files/run/t2813.2.scala +++ b/test/files/run/t2813.2.scala @@ -1,39 +1,39 @@ -import java.util.LinkedList -import collection.JavaConversions._ - -object Test extends App { - def assertListEquals[A](expected: List[A], actual: Seq[A]) { - assert(expected.sameElements(actual), - "Expected list to contain " + expected.mkString("[", ", ", "]") + - ", but was " + actual.mkString("[", ", ", "]")) - } - - def addAllOfNonCollectionWrapperAtZeroOnEmptyLinkedList() { - val l = new LinkedList[Int] - l.addAll(0, List(1, 2)) - assertListEquals(List(1, 2), l) - } - - def addAllOfNonCollectionWrapperAtZeroOnLinkedList() { - val l = new LinkedList[Int] + 1 + 2 - l.addAll(0, List(10, 11)) - assertListEquals((List(10, 11, 1, 2)), l) - } - - def addAllOfCollectionWrapperAtZeroOnLinkedList() { - val l = new LinkedList[Int] + 1 + 2 - l.addAll(0, new LinkedList[Int] + 10 + 11) - assertListEquals((List(10, 11, 1, 2)), l) - } - - def addAllOfCollectionWrapperAtZeroOnEmptyLinkedList() { - val l = new LinkedList[Int] - l.addAll(0, new LinkedList[Int] + 10 + 11) - assertListEquals((List(10, 11)), l) - } - - addAllOfNonCollectionWrapperAtZeroOnEmptyLinkedList - addAllOfNonCollectionWrapperAtZeroOnLinkedList - addAllOfCollectionWrapperAtZeroOnEmptyLinkedList - addAllOfCollectionWrapperAtZeroOnLinkedList -} +import java.util.LinkedList
+import collection.JavaConversions._
+
+object Test extends App {
+ def assertListEquals[A](expected: List[A], actual: Seq[A]) {
+ assert(expected.sameElements(actual),
+ "Expected list to contain " + expected.mkString("[", ", ", "]") +
+ ", but was " + actual.mkString("[", ", ", "]"))
+ }
+
+ def addAllOfNonCollectionWrapperAtZeroOnEmptyLinkedList() {
+ val l = new LinkedList[Int]
+ l.addAll(0, List(1, 2))
+ assertListEquals(List(1, 2), l)
+ }
+
+ def addAllOfNonCollectionWrapperAtZeroOnLinkedList() {
+ val l = new LinkedList[Int] + 1 + 2
+ l.addAll(0, List(10, 11))
+ assertListEquals((List(10, 11, 1, 2)), l)
+ }
+
+ def addAllOfCollectionWrapperAtZeroOnLinkedList() {
+ val l = new LinkedList[Int] + 1 + 2
+ l.addAll(0, new LinkedList[Int] + 10 + 11)
+ assertListEquals((List(10, 11, 1, 2)), l)
+ }
+
+ def addAllOfCollectionWrapperAtZeroOnEmptyLinkedList() {
+ val l = new LinkedList[Int]
+ l.addAll(0, new LinkedList[Int] + 10 + 11)
+ assertListEquals((List(10, 11)), l)
+ }
+
+ addAllOfNonCollectionWrapperAtZeroOnEmptyLinkedList
+ addAllOfNonCollectionWrapperAtZeroOnLinkedList
+ addAllOfCollectionWrapperAtZeroOnEmptyLinkedList
+ addAllOfCollectionWrapperAtZeroOnLinkedList
+}
diff --git a/test/files/run/t2849.scala b/test/files/run/t2849.scala index cadf605ae0..0995f64010 100644 --- a/test/files/run/t2849.scala +++ b/test/files/run/t2849.scala @@ -16,9 +16,9 @@ object Test { def ticketExample { var big = 100000 - + var aSortedSet: SortedSet[Int] = TreeSet(big) - + for (i <- 1 until N) { aSortedSet = (aSortedSet - big) ++ (TreeSet(i, big - 1)) big -= 1 @@ -42,7 +42,7 @@ object Test { } } } - + } diff --git a/test/files/run/t2867.scala b/test/files/run/t2867.scala index 25e55eaecd..0d30f95f8d 100644 --- a/test/files/run/t2867.scala +++ b/test/files/run/t2867.scala @@ -1,6 +1,6 @@ object Test { - case class A(l: List[_]*) - + case class A(l: List[_]*) + def main(args: Array[String]): Unit = { /** Kind of sneaking a slightly different test in here as well as * testing 2867. How subversive. @@ -9,7 +9,7 @@ object Test { val xs2 = List(1.0, 2.0, 3.0) val xs3 = List[Any](1.0f, 2.0f, 3.0f) val xs4 = List[Byte](1, 2, 3) - + assert(A(List(xs1, xs2)) == A(List(xs3, xs4))) } } diff --git a/test/files/run/t3026.scala b/test/files/run/t3026.scala index 22dde9cc03..0231c7bcd1 100755 --- a/test/files/run/t3026.scala +++ b/test/files/run/t3026.scala @@ -3,6 +3,6 @@ object Test { case object RED extends Colour case object YELLOW extends Colour val items = Array(RED, YELLOW) - + def main(args: Array[String]): Unit = items foreach println } diff --git a/test/files/run/t3038.scala b/test/files/run/t3038.scala index 7eb69f7fb5..986fc982e7 100644 --- a/test/files/run/t3038.scala +++ b/test/files/run/t3038.scala @@ -2,18 +2,18 @@ class A { private lazy val a1 = "a1" object B private lazy val a2 = "a2" - + @transient lazy val a3 = "a3" @transient private lazy val a4 = "a4" @transient lazy val a5 = "a5" @transient private lazy val a6 = "a6" - + final val a7 = "a7" private final val a8 = "a8" @transient final val a9 = "a9" - - + + def run = { @@ -27,13 +27,13 @@ class A { println(a7) println(a8) println(a9) - } + } } class C extends A { private lazy val c1 = "c1" lazy val c2 = "c2" - + private lazy val c3 = "c3" @transient lazy val c4 = "c4" @@ -41,7 +41,7 @@ class C extends A { @transient lazy val c6 = "c6" @transient private lazy val c7 = "c7" lazy val c8 = "c8" - + final val c9 = "c9" private final val c10 = "c10" diff --git a/test/files/run/t3038c/A_1.scala b/test/files/run/t3038c/A_1.scala index 91564e3021..14579fcf67 100644 --- a/test/files/run/t3038c/A_1.scala +++ b/test/files/run/t3038c/A_1.scala @@ -59,7 +59,7 @@ class A { lazy val a57 = 58 lazy val a58 = 59 lazy val a59 = 60 - private lazy val a60 = 61 + private lazy val a60 = 61 private lazy val a61 = 62 private lazy val a62 = 63 private lazy val a63 = 64 @@ -69,7 +69,7 @@ class A { private lazy val a67 = 68 private lazy val a68 = 69 private lazy val a69 = 70 - + def run = { println(List(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, diff --git a/test/files/run/t3038d.scala b/test/files/run/t3038d.scala index a92e3532a8..6cd2d83776 100644 --- a/test/files/run/t3038d.scala +++ b/test/files/run/t3038d.scala @@ -22,13 +22,13 @@ class Bar extends Foo { @transient protected var first: Any = null def size = a @transient var second: Any = null - + def checkMember { first } - + private def writeObject(out: java.io.ObjectOutputStream) { serializeTo(out) } - + private def readObject(in: java.io.ObjectInputStream) { first = null init(in) @@ -40,7 +40,7 @@ object Test { val in = new java.io.ObjectInputStream(new java.io.ByteArrayInputStream(bytes)) in.readObject.asInstanceOf[A] } - + private def toBytes(o: AnyRef): Array[Byte] = { val bos = new java.io.ByteArrayOutputStream val out = new java.io.ObjectOutputStream(bos) @@ -49,7 +49,7 @@ object Test { bos.toByteArray } - + def main(args: Array[String]) { val a1 = new Bar() val serialized:Array[Byte] = toBytes(a1) diff --git a/test/files/run/t3112.scala b/test/files/run/t3112.scala index eb8eec6327..88677fa09e 100644 --- a/test/files/run/t3112.scala +++ b/test/files/run/t3112.scala @@ -7,5 +7,5 @@ object Test { println((Vector() ++ (0 until 32)) takeRight 0) // works println((Vector() ++ (0 until 33)) takeRight 0) // error } - + }
\ No newline at end of file diff --git a/test/files/run/t3158.scala b/test/files/run/t3158.scala index c824b62e96..2261b5cd81 100644 --- a/test/files/run/t3158.scala +++ b/test/files/run/t3158.scala @@ -1,6 +1,6 @@ object Test { def main(args: Array[String]) { - println(args.map(_ => foo _).deep) + println(args.map(_ => foo _).deep) } def foo(xs: String*) { diff --git a/test/files/run/t3361.scala b/test/files/run/t3361.scala index 892e36dbd9..7fbc6777f2 100644 --- a/test/files/run/t3361.scala +++ b/test/files/run/t3361.scala @@ -40,7 +40,7 @@ object Test extends App { def insert_1 { val ten = DoubleLinkedList(1 to 10: _*) ten.append(DoubleLinkedList(11)) - + // Post-insert size test require(11 == ten.size) // Post-insert data test diff --git a/test/files/run/t3493.scala b/test/files/run/t3493.scala index aafe7a3a4a..b0b7589cfd 100644 --- a/test/files/run/t3493.scala +++ b/test/files/run/t3493.scala @@ -3,7 +3,7 @@ object Test { - + def main(args: Array[String]) { import scala.collection.immutable._ val x = TreeSet("a", "b", "c", "d") @@ -11,5 +11,5 @@ object Test { assert(x2.toString == "TreeSet(a, b, c, d, e)") assert(x2.toString == runtime.ScalaRunTime.stringOf(x2).trim) } - + } diff --git a/test/files/run/t3496.scala b/test/files/run/t3496.scala index e1aa032ab1..80a4e6bd86 100644 --- a/test/files/run/t3496.scala +++ b/test/files/run/t3496.scala @@ -4,12 +4,12 @@ // ticket #3496 object Test { - + def main(args: Array[String]) { val s = Stream.from(1) s.take(5) s.drop(5) s.splitAt(5) } - + } diff --git a/test/files/run/t3502.scala b/test/files/run/t3502.scala index cc78e54c86..9492b2d4d4 100644 --- a/test/files/run/t3502.scala +++ b/test/files/run/t3502.scala @@ -5,7 +5,7 @@ // ticket #3502 object Test { - + object GeneratePrimeFactorsLazy extends (Int => List[Int]) { override def apply(n:Int) = { val s = Stream.range(2, n / 2).filter(n % _ == 0) @@ -13,12 +13,12 @@ object Test { s.headOption.map(x => x :: apply(n / x)).getOrElse(List(n)) } } - + def main(args:Array[String]) { // a prime number //val num = 623456789 val num = 2796203 assert(GeneratePrimeFactorsLazy(num) == List(num)) } - + } diff --git a/test/files/run/t3511.scala b/test/files/run/t3511.scala index 30757b1a66..9b4d581462 100644 --- a/test/files/run/t3511.scala +++ b/test/files/run/t3511.scala @@ -6,31 +6,31 @@ import scala.collection.immutable._ // ticket #3511 object Test { - + def main(args: Array[String]) { assert(Stream.from(0).view.force.take(5) == List(0, 1, 2, 3, 4)) - + val s = Stream.from(0) val smap = s.view.map(_ * 2).force.take(5) assert(smap == List(0, 2, 4, 6, 8)) - + val sfilter = s.view.filter(_ % 2 == 0).force.take(5) assert(sfilter == List(0, 2, 4, 6, 8)) - + val sflatmap = s.view.flatMap(n => List(n, n * 2)).force.take(6) assert(sflatmap == List(0, 0, 1, 2, 2, 4)) - + val stakewhile = s.view.takeWhile(_ < 10).force assert(stakewhile == List.range(0, 10)) - + val szip = s.view.zip(s.map(_ / 2)).force.take(5) assert(szip == List((0, 0), (1, 0), (2, 1), (3, 1), (4, 2))) - + val szipall = s.view.zipAll(List(0, 1, 2), 0, 0).force.take(5) assert(szipall == List((0, 0), (1, 1), (2, 2), (3, 0), (4, 0))) - + val spatch = s.view.patch(1, List(5, 5, 5), 5).force.take(5) assert(spatch == List(0, 5, 5, 5, 6)) } - + } diff --git a/test/files/run/t3580.scala b/test/files/run/t3580.scala index 50ff6c4551..ac9f81ab9e 100644 --- a/test/files/run/t3580.scala +++ b/test/files/run/t3580.scala @@ -4,14 +4,14 @@ object Test { - + class Empty extends Traversable[Nothing] { def foreach[U](f: Nothing => U) {} } - + def main(args: Array[String]) { val t = new Empty t.toStream } - + } diff --git a/test/files/run/t3603.scala b/test/files/run/t3603.scala index a89cb7080a..a0821a2a45 100644 --- a/test/files/run/t3603.scala +++ b/test/files/run/t3603.scala @@ -2,17 +2,17 @@ object Test { - + def main(args: Array[String]) { import collection.immutable._ - + val intmap = IntMap(1 -> 1, 2 -> 2) val intres = intmap.map { case (a, b) => (a, b.toString) } assert(intres.isInstanceOf[IntMap[_]]) - + val longmap = LongMap(1L -> 1, 2L -> 2) val longres = longmap.map { case (a, b) => (a, b.toString) } assert(longres.isInstanceOf[LongMap[_]]) } - + } diff --git a/test/files/run/t3619.scala b/test/files/run/t3619.scala index 3f4c56ea53..46324b4d69 100644 --- a/test/files/run/t3619.scala +++ b/test/files/run/t3619.scala @@ -17,7 +17,7 @@ object Test extends App { } } */ - + new Meh } diff --git a/test/files/run/t3647.scala b/test/files/run/t3647.scala index a970e887f6..434a13f414 100644 --- a/test/files/run/t3647.scala +++ b/test/files/run/t3647.scala @@ -13,10 +13,10 @@ object Test { "line4" ).iterator) assert(ps.filter(_ == '\n').size == 3) - + val ps1 = PagedSeq.fromLines(List("Ok").iterator) assert(ps1.filter(_ == '\n').size == 0) - + val eps = PagedSeq.fromLines(List().iterator) assert(eps.filter(_ == '\n').size == 0) } diff --git a/test/files/run/t3719.scala b/test/files/run/t3719.scala index 01dc205545..4649f11bb1 100644 --- a/test/files/run/t3719.scala +++ b/test/files/run/t3719.scala @@ -1,7 +1,7 @@ object Days extends Enumeration { type Day = DayValue val Mon, Tue, Wed, Thu, Fri, Sat, Sun = new DayValue // DayValue - + protected class DayValue extends Val { def isWeekday: Boolean = this match { @@ -21,7 +21,7 @@ object Test extends App { val d: Day = Mon d.toString } - + def nameOfTue(): String = { import Days._ val d: Day = Tue diff --git a/test/files/run/t3829.scala b/test/files/run/t3829.scala index 780a6a95b7..e3d8c56882 100644 --- a/test/files/run/t3829.scala +++ b/test/files/run/t3829.scala @@ -1,11 +1,11 @@ // ticket #3829 object Test { import collection.{ mutable, immutable } - + def main(args: Array[String]) { val map = immutable.Map(1 -> 2, 3 -> 4) assert(map.get(0) == None) - + // Since r24255 defaultMap.get(x) returns None rather than // using the default, so these mostly use apply. val defmap = map.withDefaultValue(-1) @@ -19,10 +19,10 @@ object Test { assert((defmap - 1)(0) == -1) assert((defmap - 1)(1) == -1) assert((defmap - 1)(3) == 4) - + val mutmap = mutable.Map(1 -> 2, 2 -> 3) assert(mutmap.get(0) == None) - + val defmutmap = mutmap.withDefaultValue(-1) assert(defmutmap(0) == -1) assert(defmutmap(3) == -1) @@ -36,5 +36,5 @@ object Test { assert(defmutmap(1) == 2) assert(mutmap(1) == 2) } - + } diff --git a/test/files/run/t3877.scala b/test/files/run/t3877.scala index 5710e982a0..ce1e9283a7 100644 --- a/test/files/run/t3877.scala +++ b/test/files/run/t3877.scala @@ -11,7 +11,7 @@ object Test { println("test1: " + d) } } - + def test2 { var d = 2 var i = 0 @@ -25,7 +25,7 @@ object Test { return } } - + def test3 { var d = 2 var i = 0 @@ -34,9 +34,9 @@ object Test { d = b i += 1 println("test3: " + d) - } while (d < LIMIT && i < LIMIT) + } while (d < LIMIT && i < LIMIT) } - + def test4 { var d = 2 var i = 0 @@ -47,9 +47,9 @@ object Test { println("test4: " + d) if (d >= LIMIT || i >= LIMIT) return - } while (true) + } while (true) } - + def test5 { var d = 2 var i = 0 @@ -58,7 +58,7 @@ object Test { d = b i += 1 println("test5.1: " + d) - + var e = 2 var j = 0 while (e < LIMIT && j < LIMIT) { @@ -69,7 +69,7 @@ object Test { } } } - + def main(args: Array[String]) { test1 diff --git a/test/files/run/t3887.scala b/test/files/run/t3887.scala index 16ce983efc..81fa7a917e 100644 --- a/test/files/run/t3887.scala +++ b/test/files/run/t3887.scala @@ -13,4 +13,4 @@ object Test { val option1: (Int, String) = (1, "abc") -} +} diff --git a/test/files/run/t3888.scala b/test/files/run/t3888.scala index ecdf87e925..e0f1453b1d 100644 --- a/test/files/run/t3888.scala +++ b/test/files/run/t3888.scala @@ -3,13 +3,13 @@ object Test { val T1 = new P private[this] val T2 = T1 - def m1 = + def m1 = (1, 2) match { case T1 => true case _ => false } - def m2 = + def m2 = (1, 2) match { case T2 => true case _ => false diff --git a/test/files/run/t3897/J_2.java b/test/files/run/t3897/J_2.java index a4c9a98fb1..178412dc92 100644 --- a/test/files/run/t3897/J_2.java +++ b/test/files/run/t3897/J_2.java @@ -7,7 +7,7 @@ public class J_2 { String name = fields[i].getName(); if (name.length() >= 7 && name.substring(0, 7).equals("bitmap$")) { } else System.out.println("(" + name + "," + fields[i].getGenericType() + ")"); - } + } } public void f2(Class<?> clazz) { Method[] methods = clazz.getDeclaredMethods(); @@ -15,7 +15,7 @@ public class J_2 { String name = methods[i].getName(); if (name.length() >= 7 && name.substring(0, 7).equals("bitmap$")) { } else System.out.println("(" + name + "," + methods[i].getGenericReturnType() + ")"); - } + } } public void javaRun() { diff --git a/test/files/run/t3897/a_2.scala b/test/files/run/t3897/a_2.scala index 7a161fcbe4..4d9e59ef05 100644 --- a/test/files/run/t3897/a_2.scala +++ b/test/files/run/t3897/a_2.scala @@ -1,12 +1,12 @@ object Test { def f1(clazz: Class[_]) = ( - clazz.getDeclaredFields.toList + clazz.getDeclaredFields.toList . filterNot (_.getName contains "bitmap$") . map (f => (f.getName, f.getGenericType)) . foreach (println) ) def f2(clazz: Class[_]) = ( - clazz.getDeclaredMethods.toList + clazz.getDeclaredMethods.toList . filterNot (_.getName contains "bitmap$") . map (f => (f.getName, f.getGenericReturnType)) . foreach (println) @@ -17,7 +17,7 @@ object Test { f2(classOf[One]) f1(classOf[Two]) f2(classOf[Two]) - + new J_2().javaRun } } diff --git a/test/files/run/t3932.scala b/test/files/run/t3932.scala index f577ef8315..51fc16d6ea 100644 --- a/test/files/run/t3932.scala +++ b/test/files/run/t3932.scala @@ -23,10 +23,10 @@ object Test { def main(args: Array[String]): Unit = { println(O1.g1) println(O1.g2) - + println(O2.g1) println(O2.g2) - + val o3 = new O3() println(o3.g1) println(o3.g2) diff --git a/test/files/run/t3970.scala b/test/files/run/t3970.scala index 35b5ce6e1b..f8c763bc85 100644 --- a/test/files/run/t3970.scala +++ b/test/files/run/t3970.scala @@ -9,11 +9,11 @@ object Test { def main(args: Array[String]) { val dl = DoubleLinkedList[Int]() dl.remove() - + val dl2 = DoubleLinkedList[Int](1, 2, 3) dl2.next.remove() assert(dl2 == DoubleLinkedList(1, 3)) - + val dl3 = DoubleLinkedList[Int](1, 2, 3) assert(dl3.drop(1) == DoubleLinkedList(2, 3)) assert(dl3.drop(1).prev == null) diff --git a/test/files/run/t3980.scala b/test/files/run/t3980.scala index c140176ce4..4e693eba9b 100644 --- a/test/files/run/t3980.scala +++ b/test/files/run/t3980.scala @@ -2,7 +2,7 @@ object A { def run1 { lazy val x: Unit = {(); println("once")} x - x + x } def run2 { lazy val y: Int = 2 diff --git a/test/files/run/t4013.scala b/test/files/run/t4013.scala index 7060559317..da7fbc5b3f 100644 --- a/test/files/run/t4013.scala +++ b/test/files/run/t4013.scala @@ -5,12 +5,12 @@ trait Base[B] { } -class Suba[@specialized B](override val data: Array[B]) extends Base[B] { +class Suba[@specialized B](override val data: Array[B]) extends Base[B] { assert(data != null) } -class Subopt[@specialized B](override val data: Option[B]) extends Base[B] { +class Subopt[@specialized B](override val data: Option[B]) extends Base[B] { assert(data != null) } diff --git a/test/files/run/t4013b.scala b/test/files/run/t4013b.scala index 1262e261f5..f17eaea3d3 100644 --- a/test/files/run/t4013b.scala +++ b/test/files/run/t4013b.scala @@ -8,7 +8,7 @@ trait Base[B] { class M[@specialized(Int) A] -class Sub3[@specialized(Int) B](override val data: M[B]) extends Base[B] { +class Sub3[@specialized(Int) B](override val data: M[B]) extends Base[B] { assert(data != null) } diff --git a/test/files/run/t4024.scala b/test/files/run/t4024.scala index 4ab383ebc3..ef768beb99 100644 --- a/test/files/run/t4024.scala +++ b/test/files/run/t4024.scala @@ -1,9 +1,9 @@ object Test extends App { - val x = "abc" + val x = "abc" val m = x.getClass.getMethod("toString") - + assert(m.invoke(x, (Nil: List[AnyRef]): _*) == "abc") } diff --git a/test/files/run/t4054.scala b/test/files/run/t4054.scala index 83a58ef97c..8f1f685854 100644 --- a/test/files/run/t4054.scala +++ b/test/files/run/t4054.scala @@ -9,7 +9,7 @@ object Test { def main(args: Array[String]) { val it = Iterator.from(1).map(n => n * n).scanLeft(0)(_+_) - + assert(it.next == 0) assert(it.next == 1) assert(it.next == 5) diff --git a/test/files/run/t4072.scala b/test/files/run/t4072.scala index 371b8ccd5f..872072a4ce 100644 --- a/test/files/run/t4072.scala +++ b/test/files/run/t4072.scala @@ -2,11 +2,11 @@ import scala.tools.nsc._ object Test { class DryRun { - val compiler = new Global(new Settings()) { + val compiler = new Global(new Settings()) { lazy val test1 = new AnyRef } } - + def main(args: Array[String]) { new DryRun().compiler.test1 } diff --git a/test/files/run/t4294.scala b/test/files/run/t4294.scala index 50c83ac819..fafaf1d8ef 100644 --- a/test/files/run/t4294.scala +++ b/test/files/run/t4294.scala @@ -1,7 +1,7 @@ object Test { def main(args: Array[String]) { (Stream.from(1).collect{case x if x > 5000000 => x}: Stream[Int]) - + assert((Stream from 1 take 10 collect { case x if x <= 3 => x*x }).sum == 14) } } diff --git a/test/files/run/t4396.scala b/test/files/run/t4396.scala index d67eaa378e..ca143165b7 100644 --- a/test/files/run/t4396.scala +++ b/test/files/run/t4396.scala @@ -1,4 +1,4 @@ -// #43896 +// #43896 trait M extends DelayedInit { def delayedInit(body : => Unit) { println("hallo") diff --git a/test/files/run/t4426.scala b/test/files/run/t4426.scala index 1cbd42da25..95759444d6 100644 --- a/test/files/run/t4426.scala +++ b/test/files/run/t4426.scala @@ -5,7 +5,7 @@ object Test { val settings = new Settings() settings.classpath.value = System.getProperty("java.class.path") - object cc extends Global(settings) { + object cc extends Global(settings) { object dummy override def computePluginPhases() = { @@ -16,9 +16,9 @@ object Test { new cc.Run () } - + def main(args: Array[String]): Unit = { - + } } diff --git a/test/files/run/t4560.scala b/test/files/run/t4560.scala index f809e67898..1392077e46 100644 --- a/test/files/run/t4560.scala +++ b/test/files/run/t4560.scala @@ -35,5 +35,5 @@ object Test extends A with B { } } -object Test2 extends A2 with B2 +object Test2 extends A2 with B2 diff --git a/test/files/run/t4565_2.scala b/test/files/run/t4565_2.scala index 2f72b077d2..96f4f86677 100644 --- a/test/files/run/t4565_2.scala +++ b/test/files/run/t4565_2.scala @@ -1,12 +1,12 @@ class Class3_1 { - + class Class2_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -26,21 +26,21 @@ class Class3_1 { def run { runTest } } - + def run { (new Class1_3).run } } - + def run { (new Class2_2).run } } object Object4_1 { - + class Class2_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -60,21 +60,21 @@ object Object4_1 { def run { runTest } } - + def run { (new Class1_3).run } } - + def run { (new Class2_2).run } // trigger } trait Trait5_1 { - + class Class2_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -94,21 +94,21 @@ trait Trait5_1 { def run { runTest } } - + def run { (new Class1_3).run } } - + def run { (new Class2_2).run } } class Class7_1 { - + object Object6_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -128,21 +128,21 @@ class Class7_1 { def run { runTest } } - + def run { (new Class1_3).run } // trigger } - + def run { Object6_2.run } } object Object8_1 { - + object Object6_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -162,21 +162,21 @@ object Object8_1 { def run { runTest } } - + def run { (new Class1_3).run } // trigger } - + def run { Object6_2.run } // trigger } trait Trait9_1 { - + object Object6_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -196,21 +196,21 @@ trait Trait9_1 { def run { runTest } } - + def run { (new Class1_3).run } // trigger } - + def run { Object6_2.run } } class Class11_1 { - + trait Trait10_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -230,21 +230,21 @@ class Class11_1 { def run { runTest } } - + def run { (new Class1_3).run } } - + def run { (new Trait10_2 {}).run } } object Object12_1 { - + trait Trait10_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -264,21 +264,21 @@ object Object12_1 { def run { runTest } } - + def run { (new Class1_3).run } } - + def run { (new Trait10_2 {}).run } // trigger } trait Trait13_1 { - + trait Trait10_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -298,21 +298,21 @@ trait Trait13_1 { def run { runTest } } - + def run { (new Class1_3).run } } - + def run { (new Trait10_2 {}).run } } class Class15_1 { - + def method14_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -332,21 +332,21 @@ class Class15_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { method14_2 } } object Object16_1 { - + def method14_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -366,21 +366,21 @@ object Object16_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { method14_2 } // trigger } trait Trait17_1 { - + def method14_2 { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -400,21 +400,21 @@ trait Trait17_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { method14_2 } } class Class19_1 { - + val fun18_2 = () => { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -434,21 +434,21 @@ class Class19_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { fun18_2() } } object Object20_1 { - + val fun18_2 = () => { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -468,21 +468,21 @@ object Object20_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { fun18_2() } // trigger } trait Trait21_1 { - + val fun18_2 = () => { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -502,22 +502,22 @@ trait Trait21_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { fun18_2() } } class Class23_1 { - + class Class22_2 { - { // in primary constructor - + { // in primary constructor + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -537,23 +537,23 @@ class Class23_1 { def run { runTest } } - + (new Class1_3).run // trigger - } + } } - + def run { (new Class22_2) } } object Object24_1 { - + class Class22_2 { - { // in primary constructor - + { // in primary constructor + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -573,23 +573,23 @@ object Object24_1 { def run { runTest } } - + (new Class1_3).run // trigger - } + } } - + def run { (new Class22_2) } // trigger } trait Trait25_1 { - + class Class22_2 { - { // in primary constructor - + { // in primary constructor + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -609,22 +609,22 @@ trait Trait25_1 { def run { runTest } } - + (new Class1_3).run // trigger - } + } } - + def run { (new Class22_2) } } class Class27_1 { - + lazy val lzvalue26_2 = { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -644,21 +644,21 @@ class Class27_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { lzvalue26_2 } } object Object28_1 { - + lazy val lzvalue26_2 = { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -678,21 +678,21 @@ object Object28_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { lzvalue26_2 } // trigger } trait Trait29_1 { - + lazy val lzvalue26_2 = { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -712,21 +712,21 @@ trait Trait29_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { lzvalue26_2 } } class Class31_1 { - + val value30_2 = { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -746,21 +746,21 @@ class Class31_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { value30_2 } } object Object32_1 { - + val value30_2 = { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -780,21 +780,21 @@ object Object32_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { value30_2 } // trigger } trait Trait33_1 { - + val value30_2 = { - + class Class1_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -814,21 +814,21 @@ trait Trait33_1 { def run { runTest } } - + (new Class1_3).run // trigger } - + def run { value30_2 } } class Class36_1 { - + class Class35_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -848,21 +848,21 @@ class Class36_1 { def run { runTest } // trigger } - + def run { Object34_3.run } } - + def run { (new Class35_2).run } } object Object37_1 { - + class Class35_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -882,21 +882,21 @@ object Object37_1 { def run { runTest } // trigger } - + def run { Object34_3.run } } - + def run { (new Class35_2).run } // trigger } trait Trait38_1 { - + class Class35_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -916,21 +916,21 @@ trait Trait38_1 { def run { runTest } // trigger } - + def run { Object34_3.run } } - + def run { (new Class35_2).run } } class Class40_1 { - + object Object39_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -950,21 +950,21 @@ class Class40_1 { def run { runTest } // trigger } - + def run { Object34_3.run } // trigger } - + def run { Object39_2.run } } object Object41_1 { - + object Object39_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -984,21 +984,21 @@ object Object41_1 { def run { runTest } // trigger } - + def run { Object34_3.run } // trigger } - + def run { Object39_2.run } // trigger } trait Trait42_1 { - + object Object39_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1018,21 +1018,21 @@ trait Trait42_1 { def run { runTest } // trigger } - + def run { Object34_3.run } // trigger } - + def run { Object39_2.run } } class Class44_1 { - + trait Trait43_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1052,21 +1052,21 @@ class Class44_1 { def run { runTest } // trigger } - + def run { Object34_3.run } } - + def run { (new Trait43_2 {}).run } } object Object45_1 { - + trait Trait43_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1086,21 +1086,21 @@ object Object45_1 { def run { runTest } // trigger } - + def run { Object34_3.run } } - + def run { (new Trait43_2 {}).run } // trigger } trait Trait46_1 { - + trait Trait43_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1120,21 +1120,21 @@ trait Trait46_1 { def run { runTest } // trigger } - + def run { Object34_3.run } } - + def run { (new Trait43_2 {}).run } } class Class48_1 { - + def method47_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1154,21 +1154,21 @@ class Class48_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { method47_2 } } object Object49_1 { - + def method47_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1188,21 +1188,21 @@ object Object49_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { method47_2 } // trigger } trait Trait50_1 { - + def method47_2 { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1222,21 +1222,21 @@ trait Trait50_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { method47_2 } } class Class52_1 { - + val fun51_2 = () => { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1256,21 +1256,21 @@ class Class52_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { fun51_2() } } object Object53_1 { - + val fun51_2 = () => { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1290,21 +1290,21 @@ object Object53_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { fun51_2() } // trigger } trait Trait54_1 { - + val fun51_2 = () => { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1324,22 +1324,22 @@ trait Trait54_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { fun51_2() } } class Class56_1 { - + class Class55_2 { - { // in primary constructor - + { // in primary constructor + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1359,23 +1359,23 @@ class Class56_1 { def run { runTest } // trigger } - + Object34_3.run // trigger - } + } } - + def run { (new Class55_2) } } object Object57_1 { - + class Class55_2 { - { // in primary constructor - + { // in primary constructor + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1395,23 +1395,23 @@ object Object57_1 { def run { runTest } // trigger } - + Object34_3.run // trigger - } + } } - + def run { (new Class55_2) } // trigger } trait Trait58_1 { - + class Class55_2 { - { // in primary constructor - + { // in primary constructor + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1431,22 +1431,22 @@ trait Trait58_1 { def run { runTest } // trigger } - + Object34_3.run // trigger - } + } } - + def run { (new Class55_2) } } class Class60_1 { - + lazy val lzvalue59_2 = { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1466,21 +1466,21 @@ class Class60_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { lzvalue59_2 } } object Object61_1 { - + lazy val lzvalue59_2 = { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1500,21 +1500,21 @@ object Object61_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { lzvalue59_2 } // trigger } trait Trait62_1 { - + lazy val lzvalue59_2 = { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1534,21 +1534,21 @@ trait Trait62_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { lzvalue59_2 } } class Class64_1 { - + val value63_2 = { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1568,21 +1568,21 @@ class Class64_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { value63_2 } } object Object65_1 { - + val value63_2 = { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1602,21 +1602,21 @@ object Object65_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { value63_2 } // trigger } trait Trait66_1 { - + val value63_2 = { - + object Object34_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1636,21 +1636,21 @@ trait Trait66_1 { def run { runTest } // trigger } - + Object34_3.run // trigger } - + def run { value63_2 } } class Class69_1 { - + class Class68_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1670,21 +1670,21 @@ class Class69_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } } - + def run { (new Class68_2).run } } object Object70_1 { - + class Class68_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1704,21 +1704,21 @@ object Object70_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } } - + def run { (new Class68_2).run } // trigger } trait Trait71_1 { - + class Class68_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1738,21 +1738,21 @@ trait Trait71_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } } - + def run { (new Class68_2).run } } class Class73_1 { - + object Object72_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1772,21 +1772,21 @@ class Class73_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } // trigger } - + def run { Object72_2.run } } object Object74_1 { - + object Object72_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1806,21 +1806,21 @@ object Object74_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } // trigger } - + def run { Object72_2.run } // trigger } trait Trait75_1 { - + object Object72_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1840,21 +1840,21 @@ trait Trait75_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } // trigger } - + def run { Object72_2.run } } class Class77_1 { - + trait Trait76_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1874,21 +1874,21 @@ class Class77_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } } - + def run { (new Trait76_2 {}).run } } object Object78_1 { - + trait Trait76_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1908,21 +1908,21 @@ object Object78_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } } - + def run { (new Trait76_2 {}).run } // trigger } trait Trait79_1 { - + trait Trait76_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1942,21 +1942,21 @@ trait Trait79_1 { def run { runTest } } - + def run { (new Trait67_3 {}).run } } - + def run { (new Trait76_2 {}).run } } class Class81_1 { - + def method80_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -1976,21 +1976,21 @@ class Class81_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { method80_2 } } object Object82_1 { - + def method80_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2010,21 +2010,21 @@ object Object82_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { method80_2 } // trigger } trait Trait83_1 { - + def method80_2 { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2044,21 +2044,21 @@ trait Trait83_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { method80_2 } } class Class85_1 { - + val fun84_2 = () => { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2078,21 +2078,21 @@ class Class85_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { fun84_2() } } object Object86_1 { - + val fun84_2 = () => { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2112,21 +2112,21 @@ object Object86_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { fun84_2() } // trigger } trait Trait87_1 { - + val fun84_2 = () => { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2146,22 +2146,22 @@ trait Trait87_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { fun84_2() } } class Class89_1 { - + class Class88_2 { - { // in primary constructor - + { // in primary constructor + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2181,23 +2181,23 @@ class Class89_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger - } + } } - + def run { (new Class88_2) } } object Object90_1 { - + class Class88_2 { - { // in primary constructor - + { // in primary constructor + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2217,23 +2217,23 @@ object Object90_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger - } + } } - + def run { (new Class88_2) } // trigger } trait Trait91_1 { - + class Class88_2 { - { // in primary constructor - + { // in primary constructor + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2253,22 +2253,22 @@ trait Trait91_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger - } + } } - + def run { (new Class88_2) } } class Class93_1 { - + lazy val lzvalue92_2 = { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2288,21 +2288,21 @@ class Class93_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { lzvalue92_2 } } object Object94_1 { - + lazy val lzvalue92_2 = { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2322,21 +2322,21 @@ object Object94_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { lzvalue92_2 } // trigger } trait Trait95_1 { - + lazy val lzvalue92_2 = { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2356,21 +2356,21 @@ trait Trait95_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { lzvalue92_2 } } class Class97_1 { - + val value96_2 = { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2390,21 +2390,21 @@ class Class97_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { value96_2 } } object Object98_1 { - + val value96_2 = { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2424,21 +2424,21 @@ object Object98_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { value96_2 } // trigger } trait Trait99_1 { - + val value96_2 = { - + trait Trait67_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2458,21 +2458,21 @@ trait Trait99_1 { def run { runTest } } - + (new Trait67_3 {}).run // trigger } - + def run { value96_2 } } class Class102_1 { - + class Class101_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2492,21 +2492,21 @@ class Class102_1 { runTest // trigger } - + def run { method100_3 } } - + def run { (new Class101_2).run } } object Object103_1 { - + class Class101_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2526,21 +2526,21 @@ object Object103_1 { runTest // trigger } - + def run { method100_3 } } - + def run { (new Class101_2).run } // trigger } trait Trait104_1 { - + class Class101_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2560,21 +2560,21 @@ trait Trait104_1 { runTest // trigger } - + def run { method100_3 } } - + def run { (new Class101_2).run } } class Class106_1 { - + object Object105_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2594,21 +2594,21 @@ class Class106_1 { runTest // trigger } - + def run { method100_3 } // trigger } - + def run { Object105_2.run } } object Object107_1 { - + object Object105_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2628,21 +2628,21 @@ object Object107_1 { runTest // trigger } - + def run { method100_3 } // trigger } - + def run { Object105_2.run } // trigger } trait Trait108_1 { - + object Object105_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2662,21 +2662,21 @@ trait Trait108_1 { runTest // trigger } - + def run { method100_3 } // trigger } - + def run { Object105_2.run } } class Class110_1 { - + trait Trait109_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2696,21 +2696,21 @@ class Class110_1 { runTest // trigger } - + def run { method100_3 } } - + def run { (new Trait109_2 {}).run } } object Object111_1 { - + trait Trait109_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2730,21 +2730,21 @@ object Object111_1 { runTest // trigger } - + def run { method100_3 } } - + def run { (new Trait109_2 {}).run } // trigger } trait Trait112_1 { - + trait Trait109_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2764,21 +2764,21 @@ trait Trait112_1 { runTest // trigger } - + def run { method100_3 } } - + def run { (new Trait109_2 {}).run } } class Class114_1 { - + def method113_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2798,21 +2798,21 @@ class Class114_1 { runTest // trigger } - + method100_3 // trigger } - + def run { method113_2 } } object Object115_1 { - + def method113_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2832,21 +2832,21 @@ object Object115_1 { runTest // trigger } - + method100_3 // trigger } - + def run { method113_2 } // trigger } trait Trait116_1 { - + def method113_2 { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2866,21 +2866,21 @@ trait Trait116_1 { runTest // trigger } - + method100_3 // trigger } - + def run { method113_2 } } class Class118_1 { - + val fun117_2 = () => { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2900,21 +2900,21 @@ class Class118_1 { runTest // trigger } - + method100_3 // trigger } - + def run { fun117_2() } } object Object119_1 { - + val fun117_2 = () => { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2934,21 +2934,21 @@ object Object119_1 { runTest // trigger } - + method100_3 // trigger } - + def run { fun117_2() } // trigger } trait Trait120_1 { - + val fun117_2 = () => { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -2968,22 +2968,22 @@ trait Trait120_1 { runTest // trigger } - + method100_3 // trigger } - + def run { fun117_2() } } class Class122_1 { - + class Class121_2 { - { // in primary constructor - + { // in primary constructor + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3003,23 +3003,23 @@ class Class122_1 { runTest // trigger } - + method100_3 // trigger - } + } } - + def run { (new Class121_2) } } object Object123_1 { - + class Class121_2 { - { // in primary constructor - + { // in primary constructor + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3039,23 +3039,23 @@ object Object123_1 { runTest // trigger } - + method100_3 // trigger - } + } } - + def run { (new Class121_2) } // trigger } trait Trait124_1 { - + class Class121_2 { - { // in primary constructor - + { // in primary constructor + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3075,22 +3075,22 @@ trait Trait124_1 { runTest // trigger } - + method100_3 // trigger - } + } } - + def run { (new Class121_2) } } class Class126_1 { - + lazy val lzvalue125_2 = { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3110,21 +3110,21 @@ class Class126_1 { runTest // trigger } - + method100_3 // trigger } - + def run { lzvalue125_2 } } object Object127_1 { - + lazy val lzvalue125_2 = { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3144,21 +3144,21 @@ object Object127_1 { runTest // trigger } - + method100_3 // trigger } - + def run { lzvalue125_2 } // trigger } trait Trait128_1 { - + lazy val lzvalue125_2 = { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3178,21 +3178,21 @@ trait Trait128_1 { runTest // trigger } - + method100_3 // trigger } - + def run { lzvalue125_2 } } class Class130_1 { - + val value129_2 = { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3212,21 +3212,21 @@ class Class130_1 { runTest // trigger } - + method100_3 // trigger } - + def run { value129_2 } } object Object131_1 { - + val value129_2 = { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3246,21 +3246,21 @@ object Object131_1 { runTest // trigger } - + method100_3 // trigger } - + def run { value129_2 } // trigger } trait Trait132_1 { - + val value129_2 = { - + def method100_3 { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3280,21 +3280,21 @@ trait Trait132_1 { runTest // trigger } - + method100_3 // trigger } - + def run { value129_2 } } class Class135_1 { - + class Class134_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3314,21 +3314,21 @@ class Class135_1 { runTest // trigger } - + def run { fun133_3() } } - + def run { (new Class134_2).run } } object Object136_1 { - + class Class134_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3348,21 +3348,21 @@ object Object136_1 { runTest // trigger } - + def run { fun133_3() } } - + def run { (new Class134_2).run } // trigger } trait Trait137_1 { - + class Class134_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3382,21 +3382,21 @@ trait Trait137_1 { runTest // trigger } - + def run { fun133_3() } } - + def run { (new Class134_2).run } } class Class139_1 { - + object Object138_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3416,21 +3416,21 @@ class Class139_1 { runTest // trigger } - + def run { fun133_3() } // trigger } - + def run { Object138_2.run } } object Object140_1 { - + object Object138_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3450,21 +3450,21 @@ object Object140_1 { runTest // trigger } - + def run { fun133_3() } // trigger } - + def run { Object138_2.run } // trigger } trait Trait141_1 { - + object Object138_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3484,21 +3484,21 @@ trait Trait141_1 { runTest // trigger } - + def run { fun133_3() } // trigger } - + def run { Object138_2.run } } class Class143_1 { - + trait Trait142_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3518,21 +3518,21 @@ class Class143_1 { runTest // trigger } - + def run { fun133_3() } } - + def run { (new Trait142_2 {}).run } } object Object144_1 { - + trait Trait142_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3552,21 +3552,21 @@ object Object144_1 { runTest // trigger } - + def run { fun133_3() } } - + def run { (new Trait142_2 {}).run } // trigger } trait Trait145_1 { - + trait Trait142_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3586,21 +3586,21 @@ trait Trait145_1 { runTest // trigger } - + def run { fun133_3() } } - + def run { (new Trait142_2 {}).run } } class Class147_1 { - + def method146_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3620,21 +3620,21 @@ class Class147_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { method146_2 } } object Object148_1 { - + def method146_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3654,21 +3654,21 @@ object Object148_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { method146_2 } // trigger } trait Trait149_1 { - + def method146_2 { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3688,21 +3688,21 @@ trait Trait149_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { method146_2 } } class Class151_1 { - + val fun150_2 = () => { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3722,21 +3722,21 @@ class Class151_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { fun150_2() } } object Object152_1 { - + val fun150_2 = () => { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3756,21 +3756,21 @@ object Object152_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { fun150_2() } // trigger } trait Trait153_1 { - + val fun150_2 = () => { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3790,22 +3790,22 @@ trait Trait153_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { fun150_2() } } class Class155_1 { - + class Class154_2 { - { // in primary constructor - + { // in primary constructor + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3825,23 +3825,23 @@ class Class155_1 { runTest // trigger } - + fun133_3() // trigger - } + } } - + def run { (new Class154_2) } } object Object156_1 { - + class Class154_2 { - { // in primary constructor - + { // in primary constructor + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3861,23 +3861,23 @@ object Object156_1 { runTest // trigger } - + fun133_3() // trigger - } + } } - + def run { (new Class154_2) } // trigger } trait Trait157_1 { - + class Class154_2 { - { // in primary constructor - + { // in primary constructor + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3897,22 +3897,22 @@ trait Trait157_1 { runTest // trigger } - + fun133_3() // trigger - } + } } - + def run { (new Class154_2) } } class Class159_1 { - + lazy val lzvalue158_2 = { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3932,21 +3932,21 @@ class Class159_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { lzvalue158_2 } } object Object160_1 { - + lazy val lzvalue158_2 = { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -3966,21 +3966,21 @@ object Object160_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { lzvalue158_2 } // trigger } trait Trait161_1 { - + lazy val lzvalue158_2 = { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4000,21 +4000,21 @@ trait Trait161_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { lzvalue158_2 } } class Class163_1 { - + val value162_2 = { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4034,21 +4034,21 @@ class Class163_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { value162_2 } } object Object164_1 { - + val value162_2 = { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4068,21 +4068,21 @@ object Object164_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { value162_2 } // trigger } trait Trait165_1 { - + val value162_2 = { - + val fun133_3 = () => { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4102,22 +4102,22 @@ trait Trait165_1 { runTest // trigger } - + fun133_3() // trigger } - + def run { value162_2 } } class Class168_1 { - + class Class167_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4136,24 +4136,24 @@ class Class168_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } } - + def run { (new Class167_2).run } } object Object169_1 { - + class Class167_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4172,24 +4172,24 @@ object Object169_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } } - + def run { (new Class167_2).run } // trigger } trait Trait170_1 { - + class Class167_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4208,24 +4208,24 @@ trait Trait170_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } } - + def run { (new Class167_2).run } } class Class172_1 { - + object Object171_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4244,24 +4244,24 @@ class Class172_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } // trigger } - + def run { Object171_2.run } } object Object173_1 { - + object Object171_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4280,24 +4280,24 @@ object Object173_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } // trigger } - + def run { Object171_2.run } // trigger } trait Trait174_1 { - + object Object171_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4316,24 +4316,24 @@ trait Trait174_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } // trigger } - + def run { Object171_2.run } } class Class176_1 { - + trait Trait175_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4352,24 +4352,24 @@ class Class176_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } } - + def run { (new Trait175_2 {}).run } } object Object177_1 { - + trait Trait175_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4388,24 +4388,24 @@ object Object177_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } } - + def run { (new Trait175_2 {}).run } // trigger } trait Trait178_1 { - + trait Trait175_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4424,24 +4424,24 @@ trait Trait178_1 { } runTest // trigger - } + } } - + def run { (new Class166_3) } } - + def run { (new Trait175_2 {}).run } } class Class180_1 { - + def method179_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4460,24 +4460,24 @@ class Class180_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { method179_2 } } object Object181_1 { - + def method179_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4496,24 +4496,24 @@ object Object181_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { method179_2 } // trigger } trait Trait182_1 { - + def method179_2 { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4532,24 +4532,24 @@ trait Trait182_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { method179_2 } } class Class184_1 { - + val fun183_2 = () => { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4568,24 +4568,24 @@ class Class184_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { fun183_2() } } object Object185_1 { - + val fun183_2 = () => { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4604,24 +4604,24 @@ object Object185_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { fun183_2() } // trigger } trait Trait186_1 { - + val fun183_2 = () => { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4640,25 +4640,25 @@ trait Trait186_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { fun183_2() } } class Class188_1 { - + class Class187_2 { - { // in primary constructor - + { // in primary constructor + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4677,26 +4677,26 @@ class Class188_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger - } + } } - + def run { (new Class187_2) } } object Object189_1 { - + class Class187_2 { - { // in primary constructor - + { // in primary constructor + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4715,26 +4715,26 @@ object Object189_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger - } + } } - + def run { (new Class187_2) } // trigger } trait Trait190_1 { - + class Class187_2 { - { // in primary constructor - + { // in primary constructor + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4753,25 +4753,25 @@ trait Trait190_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger - } + } } - + def run { (new Class187_2) } } class Class192_1 { - + lazy val lzvalue191_2 = { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4790,24 +4790,24 @@ class Class192_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { lzvalue191_2 } } object Object193_1 { - + lazy val lzvalue191_2 = { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4826,24 +4826,24 @@ object Object193_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { lzvalue191_2 } // trigger } trait Trait194_1 { - + lazy val lzvalue191_2 = { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4862,24 +4862,24 @@ trait Trait194_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { lzvalue191_2 } } class Class196_1 { - + val value195_2 = { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4898,24 +4898,24 @@ class Class196_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { value195_2 } } object Object197_1 { - + val value195_2 = { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4934,24 +4934,24 @@ object Object197_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { value195_2 } // trigger } trait Trait198_1 { - + val value195_2 = { - + class Class166_3 { - { // in primary constructor + { // in primary constructor var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -4970,23 +4970,23 @@ trait Trait198_1 { } runTest // trigger - } + } } - + (new Class166_3) // trigger } - + def run { value195_2 } } class Class201_1 { - + class Class200_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5006,21 +5006,21 @@ class Class201_1 { runTest // trigger } - + def run { lzvalue199_3 } } - + def run { (new Class200_2).run } } object Object202_1 { - + class Class200_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5040,21 +5040,21 @@ object Object202_1 { runTest // trigger } - + def run { lzvalue199_3 } } - + def run { (new Class200_2).run } // trigger } trait Trait203_1 { - + class Class200_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5074,21 +5074,21 @@ trait Trait203_1 { runTest // trigger } - + def run { lzvalue199_3 } } - + def run { (new Class200_2).run } } class Class205_1 { - + object Object204_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5108,21 +5108,21 @@ class Class205_1 { runTest // trigger } - + def run { lzvalue199_3 } // trigger } - + def run { Object204_2.run } } object Object206_1 { - + object Object204_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5142,21 +5142,21 @@ object Object206_1 { runTest // trigger } - + def run { lzvalue199_3 } // trigger } - + def run { Object204_2.run } // trigger } trait Trait207_1 { - + object Object204_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5176,21 +5176,21 @@ trait Trait207_1 { runTest // trigger } - + def run { lzvalue199_3 } // trigger } - + def run { Object204_2.run } } class Class209_1 { - + trait Trait208_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5210,21 +5210,21 @@ class Class209_1 { runTest // trigger } - + def run { lzvalue199_3 } } - + def run { (new Trait208_2 {}).run } } object Object210_1 { - + trait Trait208_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5244,21 +5244,21 @@ object Object210_1 { runTest // trigger } - + def run { lzvalue199_3 } } - + def run { (new Trait208_2 {}).run } // trigger } trait Trait211_1 { - + trait Trait208_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5278,21 +5278,21 @@ trait Trait211_1 { runTest // trigger } - + def run { lzvalue199_3 } } - + def run { (new Trait208_2 {}).run } } class Class213_1 { - + def method212_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5312,21 +5312,21 @@ class Class213_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { method212_2 } } object Object214_1 { - + def method212_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5346,21 +5346,21 @@ object Object214_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { method212_2 } // trigger } trait Trait215_1 { - + def method212_2 { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5380,21 +5380,21 @@ trait Trait215_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { method212_2 } } class Class217_1 { - + val fun216_2 = () => { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5414,21 +5414,21 @@ class Class217_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { fun216_2() } } object Object218_1 { - + val fun216_2 = () => { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5448,21 +5448,21 @@ object Object218_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { fun216_2() } // trigger } trait Trait219_1 { - + val fun216_2 = () => { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5482,22 +5482,22 @@ trait Trait219_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { fun216_2() } } class Class221_1 { - + class Class220_2 { - { // in primary constructor - + { // in primary constructor + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5517,23 +5517,23 @@ class Class221_1 { runTest // trigger } - + lzvalue199_3 // trigger - } + } } - + def run { (new Class220_2) } } object Object222_1 { - + class Class220_2 { - { // in primary constructor - + { // in primary constructor + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5553,23 +5553,23 @@ object Object222_1 { runTest // trigger } - + lzvalue199_3 // trigger - } + } } - + def run { (new Class220_2) } // trigger } trait Trait223_1 { - + class Class220_2 { - { // in primary constructor - + { // in primary constructor + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5589,22 +5589,22 @@ trait Trait223_1 { runTest // trigger } - + lzvalue199_3 // trigger - } + } } - + def run { (new Class220_2) } } class Class225_1 { - + lazy val lzvalue224_2 = { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5624,21 +5624,21 @@ class Class225_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { lzvalue224_2 } } object Object226_1 { - + lazy val lzvalue224_2 = { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5658,21 +5658,21 @@ object Object226_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { lzvalue224_2 } // trigger } trait Trait227_1 { - + lazy val lzvalue224_2 = { - + lazy val lzvalue199_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5692,22 +5692,22 @@ trait Trait227_1 { runTest // trigger } - + lzvalue199_3 // trigger } - + def run { lzvalue224_2 } } class Class234_1 { - + class Class233_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5727,21 +5727,21 @@ class Class234_1 { runTest // trigger } - + def run { value232_3 } } - + def run { (new Class233_2).run } } object Object235_1 { - + class Class233_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5761,21 +5761,21 @@ object Object235_1 { runTest // trigger } - + def run { value232_3 } } - + def run { (new Class233_2).run } // trigger } trait Trait236_1 { - + class Class233_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5795,21 +5795,21 @@ trait Trait236_1 { runTest // trigger } - + def run { value232_3 } } - + def run { (new Class233_2).run } } class Class238_1 { - + object Object237_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5829,21 +5829,21 @@ class Class238_1 { runTest // trigger } - + def run { value232_3 } // trigger } - + def run { Object237_2.run } } object Object239_1 { - + object Object237_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5863,21 +5863,21 @@ object Object239_1 { runTest // trigger } - + def run { value232_3 } // trigger } - + def run { Object237_2.run } // trigger } trait Trait240_1 { - + object Object237_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5897,21 +5897,21 @@ trait Trait240_1 { runTest // trigger } - + def run { value232_3 } // trigger } - + def run { Object237_2.run } } class Class242_1 { - + trait Trait241_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5931,21 +5931,21 @@ class Class242_1 { runTest // trigger } - + def run { value232_3 } } - + def run { (new Trait241_2 {}).run } } object Object243_1 { - + trait Trait241_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5965,21 +5965,21 @@ object Object243_1 { runTest // trigger } - + def run { value232_3 } } - + def run { (new Trait241_2 {}).run } // trigger } trait Trait244_1 { - + trait Trait241_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -5999,21 +5999,21 @@ trait Trait244_1 { runTest // trigger } - + def run { value232_3 } } - + def run { (new Trait241_2 {}).run } } class Class246_1 { - + def method245_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6033,21 +6033,21 @@ class Class246_1 { runTest // trigger } - + value232_3 // trigger } - + def run { method245_2 } } object Object247_1 { - + def method245_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6067,21 +6067,21 @@ object Object247_1 { runTest // trigger } - + value232_3 // trigger } - + def run { method245_2 } // trigger } trait Trait248_1 { - + def method245_2 { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6101,21 +6101,21 @@ trait Trait248_1 { runTest // trigger } - + value232_3 // trigger } - + def run { method245_2 } } class Class250_1 { - + val fun249_2 = () => { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6135,21 +6135,21 @@ class Class250_1 { runTest // trigger } - + value232_3 // trigger } - + def run { fun249_2() } } object Object251_1 { - + val fun249_2 = () => { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6169,21 +6169,21 @@ object Object251_1 { runTest // trigger } - + value232_3 // trigger } - + def run { fun249_2() } // trigger } trait Trait252_1 { - + val fun249_2 = () => { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6203,22 +6203,22 @@ trait Trait252_1 { runTest // trigger } - + value232_3 // trigger } - + def run { fun249_2() } } class Class254_1 { - + class Class253_2 { - { // in primary constructor - + { // in primary constructor + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6238,23 +6238,23 @@ class Class254_1 { runTest // trigger } - + value232_3 // trigger - } + } } - + def run { (new Class253_2) } } object Object255_1 { - + class Class253_2 { - { // in primary constructor - + { // in primary constructor + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6274,23 +6274,23 @@ object Object255_1 { runTest // trigger } - + value232_3 // trigger - } + } } - + def run { (new Class253_2) } // trigger } trait Trait256_1 { - + class Class253_2 { - { // in primary constructor - + { // in primary constructor + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6310,22 +6310,22 @@ trait Trait256_1 { runTest // trigger } - + value232_3 // trigger - } + } } - + def run { (new Class253_2) } } class Class258_1 { - + lazy val lzvalue257_2 = { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6345,21 +6345,21 @@ class Class258_1 { runTest // trigger } - + value232_3 // trigger } - + def run { lzvalue257_2 } } object Object259_1 { - + lazy val lzvalue257_2 = { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6379,21 +6379,21 @@ object Object259_1 { runTest // trigger } - + value232_3 // trigger } - + def run { lzvalue257_2 } // trigger } trait Trait260_1 { - + lazy val lzvalue257_2 = { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6413,21 +6413,21 @@ trait Trait260_1 { runTest // trigger } - + value232_3 // trigger } - + def run { lzvalue257_2 } } class Class262_1 { - + val value261_2 = { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6447,21 +6447,21 @@ class Class262_1 { runTest // trigger } - + value232_3 // trigger } - + def run { value261_2 } } object Object263_1 { - + val value261_2 = { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6481,21 +6481,21 @@ object Object263_1 { runTest // trigger } - + value232_3 // trigger } - + def run { value261_2 } // trigger } trait Trait264_1 { - + val value261_2 = { - + val value232_3 = { var ObjCounter = 0 - + object Obj { ObjCounter += 1} Obj // one @@ -6515,10 +6515,10 @@ trait Trait264_1 { runTest // trigger } - + value232_3 // trigger } - + def run { value261_2 } } diff --git a/test/files/run/t4608.scala b/test/files/run/t4608.scala index a25d2fea05..3601adc275 100644 --- a/test/files/run/t4608.scala +++ b/test/files/run/t4608.scala @@ -3,9 +3,9 @@ // #4608 object Test { - + def main(args: Array[String]) { ((1 to 100) sliding 10).toList.par.map{_.map{i => i * i}}.flatten } - + } diff --git a/test/files/run/tailcalls.scala b/test/files/run/tailcalls.scala index 333ec7c402..8830e7c9ae 100644 --- a/test/files/run/tailcalls.scala +++ b/test/files/run/tailcalls.scala @@ -194,10 +194,10 @@ object FancyTailCalls { } object PolyObject extends App { - def tramp[A](x: Int): Int = + def tramp[A](x: Int): Int = if (x > 0) tramp[A](x - 1) - else + else 0 } @@ -233,7 +233,7 @@ class NonTailCall { if (n == 0) 0 else f2(n - 1) } - + } //############################################################################ @@ -273,7 +273,7 @@ object Test { } println } - + def check_overflow(name: String, closure: => Int) { print("test " + name) try { @@ -367,7 +367,7 @@ object Test { check_success("TailCall.g3", TailCall.g3(max, max, Nil), 0) check_success("TailCall.h1", TailCall.h1(max, max ), 0) println - + val NonTailCall = new NonTailCall check_success("NonTailCall.f1", NonTailCall.f1(2), 0) check_overflow("NonTailCall.f2", NonTailCall.f2(max)) @@ -382,17 +382,17 @@ object Test { } // testing explicit tailcalls. - + import scala.util.control.TailCalls._ def isEven(xs: List[Int]): TailRec[Boolean] = if (xs.isEmpty) done(true) else tailcall(isOdd(xs.tail)) def isOdd(xs: List[Int]): TailRec[Boolean] = - if (xs.isEmpty) done(false) else tailcall(isEven(xs.tail)) + if (xs.isEmpty) done(false) else tailcall(isEven(xs.tail)) assert(isEven((1 to 100000).toList).result) - + } //############################################################################ diff --git a/test/files/run/takeAndDrop.scala b/test/files/run/takeAndDrop.scala index 8d2dff0bfa..6e87838e11 100644 --- a/test/files/run/takeAndDrop.scala +++ b/test/files/run/takeAndDrop.scala @@ -1,9 +1,9 @@ -object Test { +object Test { def main(args: Array[String]): Unit = { val range = 1 to 10 val target = (3 to 8).toList val confirm = (xs: Seq[Int]) => assert(xs.toList == target, xs) - + confirm(range drop 2 dropRight 2) confirm(range drop 1 dropRight 1 drop 1 dropRight 1) confirm(range take 8 drop 2) diff --git a/test/files/run/tcpoly_monads.scala b/test/files/run/tcpoly_monads.scala index e437010481..cffbcc963b 100644 --- a/test/files/run/tcpoly_monads.scala +++ b/test/files/run/tcpoly_monads.scala @@ -4,15 +4,15 @@ trait Monads { * (>>=) :: m a -> (a -> m b) -> m b * return :: a -> m a * - * MonadTC encodes the above Haskell type class, + * MonadTC encodes the above Haskell type class, * an instance of MonadTC corresponds to a method dictionary. * (see http://lampwww.epfl.ch/~odersky/talks/wg2.8-boston06.pdf) * * Note that the identity (`this') of the method dictionary does not really correspond - * to the instance of m[x] (`self') that is `wrapped': e.g., unit does not use `self' (which + * to the instance of m[x] (`self') that is `wrapped': e.g., unit does not use `self' (which * corresponds to the argument of the implicit conversion that encodes an instance of this type class) */ - trait MonadTC[m[x], a] { + trait MonadTC[m[x], a] { def unit[a](orig: a): m[a] // >>='s first argument comes from the implicit definition constructing this "method dictionary" @@ -27,7 +27,7 @@ trait Monads { */ trait OptionMonad extends Monads { // this implicit method encodes the Monad type class instance for Option - implicit def OptionInstOfMonad[a](self: Option[a]): MonadTC[Option, a] + implicit def OptionInstOfMonad[a](self: Option[a]): MonadTC[Option, a] = new MonadTC[Option, a] { def unit[a](orig: a) = Some(orig) def >>=[b](fun: a => Option[b]): Option[b] = self match { diff --git a/test/files/run/tcpoly_parseridioms.scala b/test/files/run/tcpoly_parseridioms.scala index 741be05af1..634240e44d 100644 --- a/test/files/run/tcpoly_parseridioms.scala +++ b/test/files/run/tcpoly_parseridioms.scala @@ -1,10 +1,10 @@ trait Parsers { type Input = List[Char] - + sealed class ParseResult[+t](val next: Input) - case class Success[+t](override val next: Input, result: t) extends ParseResult[t](next) + case class Success[+t](override val next: Input, result: t) extends ParseResult[t](next) case class Failure(override val next: Input, msg: String) extends ParseResult[Nothing](next) - + abstract class Parser[+t] { def apply(in: Input): ParseResult[t] } @@ -16,7 +16,7 @@ trait Parsers { case Success(next2, y) => Success(next2, Pair(x,y)) case Failure(_, msg) => Failure(in, msg) } - case Failure(_, msg) => Failure(in, msg) + case Failure(_, msg) => Failure(in, msg) } } @@ -38,20 +38,20 @@ trait Parsers { case Failure(n, msg) => Failure(n, msg) } } - + def accept[T](c: Char, r: T): Parser[T] = new Parser[T] { def apply(in: Input) = in match { case c2 :: n if c2 == c => Success(n, r) case n => Failure(n, "expected "+c+" at the head of "+n) } } - - def apply_++[s, tt](fun: Parser[s => tt], arg: Parser[s]): Parser[tt] = lift[Pair[s=>tt, s], tt]({case Pair(f, a) => f(a)})(sq(fun, arg)) - + + def apply_++[s, tt](fun: Parser[s => tt], arg: Parser[s]): Parser[tt] = lift[Pair[s=>tt, s], tt]({case Pair(f, a) => f(a)})(sq(fun, arg)) + def success[u](v: u): Parser[u] = new Parser[u] { def apply(in: Input) = Success(in, v) } - + } trait Idioms { @@ -61,21 +61,21 @@ trait Idioms { def pureMethod[a](name: String, x: a): idi[a] = pure(x) // hack for Mirrors: allow passing of method names } - class IdiomaticTarget[idi[x], idiom <: Idiom[idi], s](i: idiom, tgt: s) { + class IdiomaticTarget[idi[x], idiom <: Idiom[idi], s](i: idiom, tgt: s) { def dot [t](fun: s => t, name: String) = new IdiomaticApp2[idi, idiom, t](i, i.liftedApply(i.pureMethod(name, fun))(i.pure(tgt))) } // TODO: `.` --> java.lang.ClassFormatError: Illegal method name "." in class Idioms$Id$ - class IdiomaticFunction[idi[x], idiom <: Idiom[idi], s, t](i: idiom, fun: s => t) { + class IdiomaticFunction[idi[x], idiom <: Idiom[idi], s, t](i: idiom, fun: s => t) { def <| (a: idi[s]) = new IdiomaticApp[idi, idiom, t](i, i.liftedApply(i.pure(fun))(a)) } class IdiomaticApp[idi[x], idiom <: Idiom[idi], x](i: idiom, a: idi[x]) { // where x <: s=>t -- TODO can this be expressed without generalised constraints? def <> [s, t](b: idi[s]) = new IdiomaticApp[idi, idiom, t](i, i.liftedApply(a.asInstanceOf[idi[s=>t]])(b)) - + def |> : idi[x] = a } - + class IdiomaticApp2[idi[x], idiom <: Idiom[idi], x](i: idiom, a: idi[x]) extends IdiomaticApp[idi, idiom, x](i, a) { def <| [s, t](b: idi[s]) = <>[s,t](b) } @@ -86,22 +86,22 @@ trait ParserIdioms extends Parsers with Idioms { def liftedApply[s, t](fun: Parser[s => t])(arg: Parser[s]): Parser[t] = apply_++(fun, arg) def pure[a](x: a): Parser[a] = success(x) } - - implicit def parserIdiomFun[s, t](fun: s=>t): IdiomaticFunction[Parser, ParserIdiom.type, s, t] = + + implicit def parserIdiomFun[s, t](fun: s=>t): IdiomaticFunction[Parser, ParserIdiom.type, s, t] = new IdiomaticFunction[Parser, ParserIdiom.type, s, t](ParserIdiom, fun) - implicit def parserIdiomTgt[s](tgt: s): IdiomaticTarget[Parser, ParserIdiom.type, s] = + implicit def parserIdiomTgt[s](tgt: s): IdiomaticTarget[Parser, ParserIdiom.type, s] = new IdiomaticTarget[Parser, ParserIdiom.type, s](ParserIdiom, tgt) - + trait Expr case class Plus(a: Int, b: Int) extends Expr - + def num = or(accept('0', 0), or(accept('1', 1),accept('2', 2))) - - // TODO: how can parserIdiom(curry2(_)) be omitted? + + // TODO: how can parserIdiom(curry2(_)) be omitted? def expr: Parser[Expr] = parserIdiomFun(curry2(Plus)) <| num <> num |> - + implicit def curry2[s,t,u](fun: (s, t)=>u)(a: s)(b: t) = fun(a, b) - implicit def curry3[r,s,t,u](fun: (r,s, t)=>u)(a: r)(b: s)(c: t) = fun(a, b, c) + implicit def curry3[r,s,t,u](fun: (r,s, t)=>u)(a: r)(b: s)(c: t) = fun(a, b, c) } object Test extends ParserIdioms with App { diff --git a/test/files/run/transform.scala b/test/files/run/transform.scala index 250df95df0..5cc1c49d6f 100644 --- a/test/files/run/transform.scala +++ b/test/files/run/transform.scala @@ -1,6 +1,6 @@ object Test { val x = 1 to 10 toBuffer - + def main(args: Array[String]): Unit = { x transform (_ * 2) assert(x.sum == (1 to 10).sum * 2) diff --git a/test/files/run/transpose.scala b/test/files/run/transpose.scala index 2761a24ff5..3bea74b365 100644 --- a/test/files/run/transpose.scala +++ b/test/files/run/transpose.scala @@ -1,8 +1,8 @@ object Test { - def wrap[T >: Null](body: => T) = + def wrap[T >: Null](body: => T) = try body catch { case _: IllegalArgumentException => null } - + def main(args: Array[String]): Unit = { assert(wrap(Nil.transpose) == Nil) assert(wrap(List(List(1, 2), List(1)).transpose) == null) diff --git a/test/files/run/treePrint.scala b/test/files/run/treePrint.scala index 452aaf390d..745c2150c2 100644 --- a/test/files/run/treePrint.scala +++ b/test/files/run/treePrint.scala @@ -4,7 +4,7 @@ object Test { import scala.tools.nsc._ import interpreter._ import java.io.{ OutputStream, BufferedReader, StringReader, PrintWriter, Writer, OutputStreamWriter} - + val code = """ def foo = { var q: Boolean = false @@ -22,11 +22,11 @@ object Test { else 20 } else 30 - + (x == 5) || !q || true } - """ - + """ + class NullOutputStream extends OutputStream { def write(b: Int) { } } def main(args: Array[String]) { diff --git a/test/files/run/try-2.scala b/test/files/run/try-2.scala index 909a68bbd2..677f0b48eb 100644 --- a/test/files/run/try-2.scala +++ b/test/files/run/try-2.scala @@ -7,7 +7,7 @@ object Test { - def tryAllUnit: Unit = + def tryAllUnit: Unit = try { throw new Error(); } @@ -15,28 +15,28 @@ object Test { case _ => Console.println("exception happened\n"); } - def tryUnitAll: Unit = + def tryUnitAll: Unit = try { Console.println("Nothin"); } catch { case _ => error("Bad, bad, lama!"); } - def tryAllAll: Unit = + def tryAllAll: Unit = try { throw new Error(); } catch { case _ => error("Bad, bad, lama!"); } - def tryUnitUnit: Unit = + def tryUnitUnit: Unit = try { Console.println("Nothin"); } catch { case _ => Console.println("Nothin"); } - def tryIntUnit: Unit = + def tryIntUnit: Unit = try { 10; } catch { @@ -55,7 +55,7 @@ object Test { execute(tryAllUnit); execute(tryUnitAll); execute(tryAllAll); - execute(tryUnitUnit); + execute(tryUnitUnit); execute(tryIntUnit); } } diff --git a/test/files/run/try.scala b/test/files/run/try.scala index 5545bcbec1..ad3d606246 100644 --- a/test/files/run/try.scala +++ b/test/files/run/try.scala @@ -17,8 +17,8 @@ object Test extends AnyRef with App { Console.println( (try { x } catch { case _: Error => 1; - }) - + + }) + + (try { x } catch { case _: Error => 1; }) @@ -116,7 +116,7 @@ object Test extends AnyRef with App { } */ - + try1; try2; try3; diff --git a/test/files/run/tuple-match.scala b/test/files/run/tuple-match.scala index fcaefbff5b..57ba9cf6e1 100644 --- a/test/files/run/tuple-match.scala +++ b/test/files/run/tuple-match.scala @@ -1,7 +1,7 @@ object Test { val FOUR = (-1, -2, -3, "bingo donkey vegas") val THREE = (-1, -2, -3) - + def f(x: Any) = x match { case FOUR => "FOUR" case (_, _, 3, _) => "4, #3" @@ -13,7 +13,7 @@ object Test { case (_, 2) => "2, #2" case _ => "default" } - + def main(args: Array[String]): Unit = { println(f((1, 2, 3, 4))) println(f((1, 2, 30, 4))) diff --git a/test/files/run/tuple-zipped.scala b/test/files/run/tuple-zipped.scala index 8f482dc3bf..a9851346bc 100644 --- a/test/files/run/tuple-zipped.scala +++ b/test/files/run/tuple-zipped.scala @@ -8,32 +8,32 @@ object Test { val as1 = 1 to 100 toArray val as2 = as1.view val as3 = as1 take 10 - + def xss1 = List[Seq[Int]](xs1, xs2, xs3, ss1, ss2, ss3, as1, as2, as3) def xss2 = List[Seq[Int]](xs1, xs2, xs3, ss3, as1, as2, as3) // no infinities def xss3 = List[Seq[Int]](xs2, xs3, ss3, as1) // representative sampling - + def main(args: Array[String]): Unit = { for (cc1 <- xss1 ; cc2 <- xss2) { val sum1 = (cc1, cc2).zip map { case (x, y) => x + y } sum val sum2 = (cc1, cc2).zipped map (_ + _) sum - + assert(sum1 == sum2) } - + for (cc1 <- xss1 ; cc2 <- xss2 ; cc3 <- xss3) { val sum1 = (cc1, cc2, cc3).zip map { case (x, y, z) => x + y + z } sum val sum2 = (cc1, cc2, cc3).zipped map (_ + _ + _) sum - + assert(sum1 == sum2) } - + assert((ss1, ss1).zipped exists ((x, y) => true)) assert((ss1, ss1, ss1).zipped exists ((x, y, z) => true)) - + assert(!(ss1, ss2, 1 to 3).zipped.exists(_ + _ + _ > 100000)) assert((1 to 3, ss1, ss2).zipped.forall(_ + _ + _ > 0)) assert((ss1, 1 to 3, ss2).zipped.map(_ + _ + _).size == 3) } } - + diff --git a/test/files/run/typealias_overriding.scala b/test/files/run/typealias_overriding.scala index 4b6a0037ec..8a2d1312ab 100644 --- a/test/files/run/typealias_overriding.scala +++ b/test/files/run/typealias_overriding.scala @@ -1,21 +1,21 @@ // this bug (http://scala-webapps.epfl.ch/bugtracking/bugs/displayItem.do?id=1065) -// was caused by Uncurry not normalizing all the types +// was caused by Uncurry not normalizing all the types // (more specifically the argument/return types of an anonymous Function) object Test extends App { trait AddRemove { type TNode <: NodeImpl; trait NodeImpl; - + object removing { type TNode = AddRemove.this.TNode; def printNode(node: TNode, f: TNode => String) = Console.println(f(node)) } } - + class Linked extends AddRemove { type TNode = Node // can also directly write `class Node extends super.NodeImpl' -- doesn't change the bug class Node extends super.NodeImpl { override def toString = "LinkedNode" } - + removing.printNode(new Node, (x: removing.TNode) => x.toString) // make inference explicit, doesn't affect the bug } diff --git a/test/files/run/unapply.scala b/test/files/run/unapply.scala index 810616850d..9b60681dfa 100644 --- a/test/files/run/unapply.scala +++ b/test/files/run/unapply.scala @@ -23,7 +23,7 @@ object Faa { def unapply(x: Any): Option[String] = if(x.isInstanceOf[Bar]) Some(x.asInstanceOf[Bar].name) else None } object FaaPrecise { - def unapply(x: Bar): Option[String] = Some(x.name) + def unapply(x: Bar): Option[String] = Some(x.name) } object FaaPreciseSome { def unapply(x: Bar) = Some(x.name) // return type Some[String] @@ -94,7 +94,7 @@ object LisSeqArr extends TestCase("LisSeqArr") with Assert { //assertEquals((Array(1,2,3): Any) match { case Array(x,y,_*) => {x,y}}, {1,2}) // just compile, feature request #1196 -// (List(1,2,3): Any) match { +// (List(1,2,3): Any) match { // case a @ List(x,y,_*) => foo(a) // } @@ -120,14 +120,14 @@ object Test1256 extends TestCase("1256") { class Sync { def unapply(scrut: Any): Boolean = false } - + class Buffer { val Get = new Sync - + val jp: PartialFunction[Any, Any] = { case Get() => } } - + override def runTest { assertFalse((new Buffer).jp.isDefinedAt(42)) } } diff --git a/test/files/run/unittest_collection.scala b/test/files/run/unittest_collection.scala index d45c23d4b5..dd95540359 100644 --- a/test/files/run/unittest_collection.scala +++ b/test/files/run/unittest_collection.scala @@ -6,7 +6,7 @@ object Test { trait BufferTest extends Assert { def doTest(x:Buffer[String]) = { - // testing method += + // testing method += x += "one" assertEquals("retrieving 'one'", x(0), "one") assertEquals("length A ", x.length, 1) @@ -19,12 +19,12 @@ object Test { assertEquals("length C ", x.length, 1) - try { x(1); fail("no exception for removed element") } + try { x(1); fail("no exception for removed element") } catch { case i:IndexOutOfBoundsException => } - try { x.remove(1); fail("no exception for removed element") } + try { x.remove(1); fail("no exception for removed element") } catch { case i:IndexOutOfBoundsException => } - + x += "two2" assertEquals("length D ", x.length, 2) @@ -38,7 +38,7 @@ object Test { // clear x.clear assertEquals("length F ", x.length, 0) - + // copyToBuffer x += "a" x += "b" @@ -54,7 +54,7 @@ object Test { var x: ArrayBuffer[String] = _ override def runTest = { setUp; doTest(x); tearDown } - + override def setUp = { x = new scala.collection.mutable.ArrayBuffer } override def tearDown = { x.clear; x = null } @@ -90,8 +90,8 @@ object Test { def main(args:Array[String]) = { val ts = new TestSuite( - //new TArrayBuffer, - new TListBuffer//, + //new TArrayBuffer, + new TListBuffer//, //new TBufferProxy ) val tr = new TestResult() diff --git a/test/files/run/unittest_io.scala b/test/files/run/unittest_io.scala index 974dcff5b3..c2d95a3a7e 100644 --- a/test/files/run/unittest_io.scala +++ b/test/files/run/unittest_io.scala @@ -5,7 +5,7 @@ object Test extends TestConsoleMain { class UTF8Tests extends TestCase("UTF8Codec") { import io.UTF8Codec.encode - + def runTest { assertEquals(new String( encode(0x004D), "utf8"), new String(Array(0x004D.asInstanceOf[Char]))) assertEquals(new String( encode(0x0430), "utf8"), new String(Array(0x0430.asInstanceOf[Char]))) @@ -31,7 +31,7 @@ object Test extends TestConsoleMain { f.copyToBuffer(b) assertEquals(s, new String(b.toArray)) - /* todo: same factories for BufferedSource and Source + /* todo: same factories for BufferedSource and Source val g = io.BufferedSource.fromBytes(s.getBytes("utf-8")) val c = new collection.mutable.ArrayBuffer[Char]() g.copyToBuffer(c) diff --git a/test/files/run/unittest_iterator.scala b/test/files/run/unittest_iterator.scala index 21dc64c3c5..89ccdb9d58 100644 --- a/test/files/run/unittest_iterator.scala +++ b/test/files/run/unittest_iterator.scala @@ -1,5 +1,5 @@ // Some iterator grouped/sliding unit tests -object Test { +object Test { def it = (1 to 10).iterator def assertThat[T](expectedLength: Int, expectedLast: Seq[T])(it: Iterator[Seq[T]]) { val xs = it.toList @@ -7,15 +7,15 @@ object Test { assert(xs.size == expectedLength, fail("expected length " + expectedLength)) assert(xs.last == expectedLast, fail("expected last " + expectedLast)) } - + def main(args: Array[String]): Unit = { val itSum = it.toStream.sum for (i <- it) { // sum of the groups == sum of the original val thisSum = ((it grouped i) map (_.sum)).toStream.sum - assert(thisSum == itSum, thisSum + " != " + itSum) + assert(thisSum == itSum, thisSum + " != " + itSum) } - + // grouped assertThat(4, List(10)) { it grouped 3 } assertThat(3, List(7, 8, 9)) { it grouped 3 withPartial false } @@ -32,11 +32,11 @@ object Test { assertThat(1, (1 to 8).toList) { it.sliding(8, 8) withPartial false } assertThat(2, List(9, 10, -1, -1, -1)) { it.sliding(5, 8) withPadding -1 } assertThat(1, (1 to 5).toList) { it.sliding(5, 8) withPartial false } - + // larger step than window assertThat(5, List(9)) { it.sliding(1, 2) } assertThat(3, List(9, 10)) { it.sliding(2, 4) } - + // make sure it throws past the end val thrown = try { val it = List(1,2,3).sliding(2) diff --git a/test/files/run/vector1.scala b/test/files/run/vector1.scala index e8785e2b16..b37cfe82e8 100644 --- a/test/files/run/vector1.scala +++ b/test/files/run/vector1.scala @@ -9,7 +9,7 @@ import scala.collection.mutable.Builder object Test { - + def vector(label: String, n: Int): Vector[String] = { val a = new VectorBuilder[String] for (i <- 0 until n) @@ -67,7 +67,7 @@ object Test { def test1() = { println("===== test1 =====") - + val N = 150000 val a = vector("a", N) val b = vectorForward("b", N) @@ -81,22 +81,22 @@ object Test { println("===== test2 =====") var a: Vector[String] = Vector.empty - + val rand = new java.util.Random - + val N = 150000 var min = N/2//rand.nextInt(N) var max = min - + val chunkLimit = 11 - + def nextChunkSize = 3 //rand.nextInt(chunkLimit) - + def seqBack() = for (i <- 0 until Math.min(nextChunkSize, N-max)) { a = a :+ ("a"+max); max += 1 } def seqFront() = for (i <- 0 until Math.min(nextChunkSize, min)) { min -= 1; a = ("a"+min) +: a } - + try { - + while (min > 0 || max < N) { seqFront() seqBack() @@ -107,7 +107,7 @@ object Test { //a.debug throw ex } - + assertVector(a, "a", 0, N) } @@ -122,14 +122,14 @@ object Test { val pos = scala.util.Random.shuffle(scala.collection.mutable.WrappedArray.make[Int](Array.tabulate[Int](N)(i => i))) var b = a - + { var i = 0 while (i < N) { b = b.updated(pos(i), "b"+(pos(i))) i += 1 } - + assertVector(b, "b", 0, N) } diff --git a/test/files/run/view-headoption.scala b/test/files/run/view-headoption.scala index 659c7e6b82..629b974c19 100644 --- a/test/files/run/view-headoption.scala +++ b/test/files/run/view-headoption.scala @@ -2,13 +2,13 @@ object Test { val failer = () => { println("fail") ; None } val succeeder = () => { println("success") ; Some(5) } val fs = List(failer, succeeder, failer, failer, succeeder, failer, failer, failer, succeeder) - + def f0 = fs.view flatMap (f => f()) def f1 = f0.headOption def f2 = f0.head def f3 = f0.lastOption def f4 = f0.last - + def main(args: Array[String]): Unit = { println("f1: " + f1) println("f2: " + f2) diff --git a/test/files/run/view-iterator-stream.scala b/test/files/run/view-iterator-stream.scala index 5ac299a34d..f91407f92c 100644 --- a/test/files/run/view-iterator-stream.scala +++ b/test/files/run/view-iterator-stream.scala @@ -18,7 +18,7 @@ object Test { } def and(g: Perturber): Perturber = new Perturber(this.labels ++ g.labels, f andThen g.f) - + override def toString = labels mkString " -> " } object Perturber { @@ -39,14 +39,14 @@ object Test { "slice(%d, %d)".format(from, until), _.toTraversable.slice(from, until) ) - + val fns = List[Perturber](toV, toI, toS, toIS) def tds(n: Int): Perturber = p(drop(n), take(n / 2), slice(1, n / 4)) def dts(n: Int): Perturber = p(take(n), drop(n / 2), slice(1, n / 4)) def sdt(n: Int): Perturber = p(slice(n, n * 2), drop(n / 2), take(n / 4)) def std(n: Int): Perturber = p(slice(n, n * 2), take(n / 2), drop(n / 4)) - + val transforms = (fns.permutations map (xs => p(xs take 3: _*))).toList.distinct def mkOps(n: Int) = List[Perturber](tds(n), dts(n), sdt(n), std(n)) def runOps(n: Int) = { @@ -60,7 +60,7 @@ object Test { } () } - + def main(args: Array[String]): Unit = { runOps(20) } diff --git a/test/files/run/viewtest.scala b/test/files/run/viewtest.scala index 581958e9a6..bb2c28d68a 100755 --- a/test/files/run/viewtest.scala +++ b/test/files/run/viewtest.scala @@ -25,8 +25,8 @@ object Test extends App { 2.8 regression: CCE when zipping list projection with stream Reported by: szeiger Owned by: odersky Priority: normal Component: Standard Library -Keywords: collections, zip Cc: -Fixed in version: +Keywords: collections, zip Cc: +Fixed in version: Description Welcome to Scala version 2.8.0.r18784-b20090925021043 (Java HotSpot(TM) Client VM, Java 1.6.0_11). diff --git a/test/files/run/xml-loop-bug.scala b/test/files/run/xml-loop-bug.scala index 3894779f7c..378ae9bc2b 100644 --- a/test/files/run/xml-loop-bug.scala +++ b/test/files/run/xml-loop-bug.scala @@ -1,6 +1,6 @@ object Test { def main(args: Array[String]): Unit = { scala.tools.nsc.io.NullPrintStream.setOutAndErr() - scala.xml.parsing.ConstructingParser.fromSource(scala.io.Source.fromString("<!DOCTYPE xmeml SYSTEM> <xmeml> <sequence> </sequence> </xmeml> "), true).document.docElem + scala.xml.parsing.ConstructingParser.fromSource(scala.io.Source.fromString("<!DOCTYPE xmeml SYSTEM> <xmeml> <sequence> </sequence> </xmeml> "), true).document.docElem } } diff --git a/test/files/scalacheck/CheckEither.scala b/test/files/scalacheck/CheckEither.scala index 0651b90b2e..a7e50877a7 100644 --- a/test/files/scalacheck/CheckEither.scala +++ b/test/files/scalacheck/CheckEither.scala @@ -9,7 +9,7 @@ import org.scalacheck.ConsoleReporter.testStatsEx import Function.tupled object CheckEither extends Properties("Either") { - implicit def arbitraryEither[X, Y](implicit xa: Arbitrary[X], ya: Arbitrary[Y]): Arbitrary[Either[X, Y]] = + implicit def arbitraryEither[X, Y](implicit xa: Arbitrary[X], ya: Arbitrary[Y]): Arbitrary[Either[X, Y]] = Arbitrary[Either[X, Y]](oneOf(arbitrary[X].map(Left(_)), arbitrary[Y].map(Right(_)))) val prop_either1 = forAll((n: Int) => Left(n).fold(x => x, b => error("fail")) == n) @@ -20,7 +20,7 @@ object CheckEither extends Properties("Either") { case Left(a) => e.swap.right.get == a case Right(b) => e.swap.left.get == b }) - + val prop_isLeftRight = forAll((e: Either[Int, Int]) => e.isLeft != e.isRight) object CheckLeftProjection { @@ -36,7 +36,7 @@ object CheckEither extends Properties("Either") { val prop_exists = forAll((e: Either[Int, Int]) => e.left.exists(_ % 2 == 0) == (e.isLeft && e.left.get % 2 == 0)) - + val prop_flatMapLeftIdentity = forAll((e: Either[Int, Int], n: Int, s: String) => { def f(x: Int) = if(x % 2 == 0) Left(s) else Right(s) Left(n).left.flatMap(f(_)) == f(n)}) @@ -116,7 +116,7 @@ object CheckEither extends Properties("Either") { } val prop_Either_left = forAll((n: Int) => Left(n).left.get == n) - + val prop_Either_right = forAll((n: Int) => Right(n).right.get == n) val prop_Either_joinLeft = forAll((e: Either[Either[Int, Int], Int]) => e match { @@ -129,12 +129,12 @@ object CheckEither extends Properties("Either") { case Right(ee) => e.joinRight == ee }) - val prop_Either_reduce = forAll((e: Either[Int, Int]) => + val prop_Either_reduce = forAll((e: Either[Int, Int]) => e.merge == (e match { case Left(a) => a case Right(a) => a })) - + /** Hard to believe I'm "fixing" a test to reflect B before A ... */ val prop_Either_cond = forAll((c: Boolean, a: Int, b: Int) => Either.cond(c, a, b) == (if(c) Right(a) else Left(b))) @@ -169,19 +169,19 @@ object CheckEither extends Properties("Either") { ("Right.prop_seq", CheckRightProjection.prop_seq), ("Right.prop_option", CheckRightProjection.prop_option), ("prop_Either_left", prop_Either_left), - ("prop_Either_right", prop_Either_right), + ("prop_Either_right", prop_Either_right), ("prop_Either_joinLeft", prop_Either_joinLeft), - ("prop_Either_joinRight", prop_Either_joinRight), - ("prop_Either_reduce", prop_Either_reduce), + ("prop_Either_joinRight", prop_Either_joinRight), + ("prop_Either_reduce", prop_Either_reduce), ("prop_Either_cond", prop_Either_cond) ) - + for ((label, prop) <- tests) { property(label) = prop } - + import org.scalacheck.{ Test => STest } - + def runTests() = { STest.checkProperties(STest.Params(testCallback = ConsoleReporter(0)), this) } diff --git a/test/files/scalacheck/HashTrieSplit.scala b/test/files/scalacheck/HashTrieSplit.scala index e959a3d535..908c878f54 100644 --- a/test/files/scalacheck/HashTrieSplit.scala +++ b/test/files/scalacheck/HashTrieSplit.scala @@ -14,7 +14,7 @@ object Test { def main(args: Array[String]) { doesSplitOk } - + def doesSplitOk = { val sz = 2000 var ht = new parallel.immutable.ParHashMap[Int, Int] diff --git a/test/files/scalacheck/Unrolled.scala b/test/files/scalacheck/Unrolled.scala index 34604b8667..8067a44501 100644 --- a/test/files/scalacheck/Unrolled.scala +++ b/test/files/scalacheck/Unrolled.scala @@ -5,7 +5,7 @@ import Gen._ import collection.mutable.UnrolledBuffer object Test extends Properties("UnrolledBuffer") { - + property("concat size") = forAll { (l1: List[Int], l2: List[Int]) => val u1 = new UnrolledBuffer[Int] u1 ++= l1 @@ -15,12 +15,12 @@ object Test extends Properties("UnrolledBuffer") { u1 concat u2 totalsz == u1.size } - + property("adding") = forAll { (l: List[Int]) => val u = new UnrolledBuffer[Int] u ++= l u == l } - + } diff --git a/test/files/scalacheck/array.scala b/test/files/scalacheck/array.scala index 03c0217180..f262bc6320 100644 --- a/test/files/scalacheck/array.scala +++ b/test/files/scalacheck/array.scala @@ -11,7 +11,7 @@ object Test extends Properties("Array") { */ implicit def arbArray[T](implicit a: Arbitrary[T], m: Manifest[T]): Arbitrary[Array[T]] = Arbitrary(containerOf[List,T](arbitrary[T]) map (_.toArray)) - + val arrGen: Gen[Array[_]] = oneOf( arbitrary[Array[Int]], arbitrary[Array[Array[Int]]], @@ -20,7 +20,7 @@ object Test extends Properties("Array") { arbitrary[Array[Boolean]], arbitrary[Array[AnyVal]] ) - + // inspired by #1857 and #2352 property("eq/ne") = forAll(arrGen, arrGen) { (c1, c2) => (c1 eq c2) || (c1 ne c2) @@ -32,6 +32,6 @@ object Test extends Properties("Array") { val arr = Array.ofDim[String](i1, i2, i3) val flattened = arr flatMap (x => x) flatMap (x => x) flattened.length == i1 * i2 * i3 - } + } } diff --git a/test/files/scalacheck/list.scala b/test/files/scalacheck/list.scala index 5f6de95237..4e1cf1fc80 100644 --- a/test/files/scalacheck/list.scala +++ b/test/files/scalacheck/list.scala @@ -12,7 +12,7 @@ object Test extends Properties("List") { property("startsWith/take") = forAll { (xs: List[Int], count: Int) => xs startsWith (xs take count) } property("endsWith/takeRight") = forAll { (xs: List[Int], count: Int) => xs endsWith (xs takeRight count) } property("fill") = forAll(choose(1, 100)) { count => - forAll { (x: Int) => + forAll { (x: Int) => val xs = List.fill(count)(x) (xs.length == count) && (xs.distinct == List(x)) } diff --git a/test/files/scalacheck/parallel-collections/IntOperators.scala b/test/files/scalacheck/parallel-collections/IntOperators.scala index 4a74b91da8..5c997962ba 100644 --- a/test/files/scalacheck/parallel-collections/IntOperators.scala +++ b/test/files/scalacheck/parallel-collections/IntOperators.scala @@ -106,7 +106,7 @@ trait IntSeqOperators extends IntOperators with SeqOperators[Int] { List(4, 5, 6, 7, 8, 9, 10), List(4, 5, 6, 7, 8, 9, 0), List(-4, -3, -2, -1) - ) + ) } diff --git a/test/files/scalacheck/parallel-collections/PairOperators.scala b/test/files/scalacheck/parallel-collections/PairOperators.scala index fe851114be..4711e21c34 100644 --- a/test/files/scalacheck/parallel-collections/PairOperators.scala +++ b/test/files/scalacheck/parallel-collections/PairOperators.scala @@ -7,76 +7,76 @@ import scala.collection.parallel._ trait PairOperators[K, V] extends Operators[(K, V)] { def koperators: Operators[K] def voperators: Operators[V] - + private def zipPredicates(kps: List[K => Boolean], vps: List[V => Boolean]): List[((K, V)) => Boolean] = for { (kp, vp) <- koperators.countPredicates zip voperators.countPredicates } yield new Function1[(K, V), Boolean] { def apply(kv: (K, V)) = kp(kv._1) && vp(kv._2) } - + /* operators */ - + def reduceOperators = for { (kop, vop) <- koperators.reduceOperators zip voperators.reduceOperators } yield new Function2[(K, V), (K, V), (K, V)] { def apply(kv1: (K, V), kv2: (K, V)) = (kop(kv1._1, kv2._1), vop(kv1._2, kv2._2)) } - + def countPredicates = zipPredicates(koperators.countPredicates, voperators.countPredicates) - + def forallPredicates = zipPredicates(koperators.forallPredicates, voperators.forallPredicates) - + def existsPredicates = zipPredicates(koperators.existsPredicates, voperators.existsPredicates) - + def findPredicates = zipPredicates(koperators.findPredicates, voperators.findPredicates) - + def mapFunctions = for { (km, vm) <- koperators.mapFunctions zip voperators.mapFunctions } yield new Function1[(K, V), (K, V)] { def apply(kv: (K, V)) = (km(kv._1), vm(kv._2)) } - + def partialMapFunctions = for { (kpm, vpm) <- koperators.partialMapFunctions zip voperators.partialMapFunctions } yield new PartialFunction[(K, V), (K, V)] { def isDefinedAt(kv: (K, V)) = kpm.isDefinedAt(kv._1) && vpm.isDefinedAt(kv._2) def apply(kv: (K, V)) = (kpm(kv._1), vpm(kv._2)) } - + def flatMapFunctions = for { (kfm, vfm) <- koperators.flatMapFunctions zip voperators.flatMapFunctions } yield new Function1[(K, V), Traversable[(K, V)]] { def apply(kv: (K, V)) = kfm(kv._1).toIterable zip vfm(kv._2).toIterable } - + def filterPredicates = zipPredicates(koperators.filterPredicates, voperators.filterPredicates) - + def filterNotPredicates = filterPredicates - + def partitionPredicates = filterPredicates - + def takeWhilePredicates = zipPredicates(koperators.takeWhilePredicates, voperators.takeWhilePredicates) - + def dropWhilePredicates = takeWhilePredicates - + def spanPredicates = takeWhilePredicates - + def foldArguments = for { ((kinit, kop), (vinit, vop)) <- koperators.foldArguments zip voperators.foldArguments } yield ((kinit, vinit), new Function2[(K, V), (K, V), (K, V)] { def apply(kv1: (K, V), kv2: (K, V)) = (kop(kv1._1, kv2._1), vop(kv1._2, kv2._2)) }) - + def addAllTraversables = for { (kt, vt) <- koperators.addAllTraversables zip voperators.addAllTraversables } yield kt.toIterable zip vt.toIterable - + def newArray(sz: Int) = new Array[(K, V)](sz) - + def groupByFunctions = (koperators.groupByFunctions zip voperators.groupByFunctions) map { opt => { (p: (K, V)) => (opt._1(p._1), opt._2(p._2)) } } - + } diff --git a/test/files/scalacheck/parallel-collections/PairValues.scala b/test/files/scalacheck/parallel-collections/PairValues.scala index 864dad2425..5007c4598b 100644 --- a/test/files/scalacheck/parallel-collections/PairValues.scala +++ b/test/files/scalacheck/parallel-collections/PairValues.scala @@ -17,7 +17,7 @@ import org.scalacheck.Arbitrary._ trait PairValues[K, V] { def kvalues: Seq[Gen[K]] def vvalues: Seq[Gen[V]] - + def values = for { kg <- kvalues vg <- vvalues diff --git a/test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala b/test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala index 255c04498e..a01c8c7dbe 100644 --- a/test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelArrayCheck.scala @@ -17,11 +17,11 @@ import scala.collection.parallel.ops._ abstract class ParallelArrayCheck[T](tp: String) extends ParallelSeqCheck[T]("ParArray[" + tp + "]") { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + type CollType = ParArray[T] - + def isCheckingViews = false - + def hasStrictOrder = true def ofSize(vals: Seq[Gen[T]], sz: Int) = { @@ -30,7 +30,7 @@ abstract class ParallelArrayCheck[T](tp: String) extends ParallelSeqCheck[T]("Pa for (i <- 0 until sz) a += sample(gen) a } - + def fromSeq(a: Seq[T]) = { val pa = new ParArray[T](a.size) var i = 0 @@ -40,20 +40,20 @@ abstract class ParallelArrayCheck[T](tp: String) extends ParallelSeqCheck[T]("Pa } pa } - + property("array mappings must be equal") = forAll(collectionPairs) { case (t, coll) => val results = for ((f, ind) <- mapFunctions.zipWithIndex) yield ("op index: " + ind) |: t.map(f) == coll.map(f) results.reduceLeft(_ && _) } - + } object IntParallelArrayCheck extends ParallelArrayCheck[Int]("Int") with IntSeqOperators with IntValues { override def instances(vals: Seq[Gen[Int]]) = oneOf(super.instances(vals), sized { sz => (0 until sz).toArray.toSeq - }, sized { sz => + }, sized { sz => (-sz until 0).toArray.toSeq }) } diff --git a/test/files/scalacheck/parallel-collections/ParallelArrayTest.scala b/test/files/scalacheck/parallel-collections/ParallelArrayTest.scala index db2b1ea01e..680f6e1d28 100644 --- a/test/files/scalacheck/parallel-collections/ParallelArrayTest.scala +++ b/test/files/scalacheck/parallel-collections/ParallelArrayTest.scala @@ -15,7 +15,7 @@ // /** // * this currently passes, but do we want it to? -// * does it have meaning to have an empty parallel array? +// * does it have meaning to have an empty parallel array? // */ // new ParallelArray(0) // () diff --git a/test/files/scalacheck/parallel-collections/ParallelArrayViewCheck.scala b/test/files/scalacheck/parallel-collections/ParallelArrayViewCheck.scala index 9805e2644f..d2a8fa7c22 100644 --- a/test/files/scalacheck/parallel-collections/ParallelArrayViewCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelArrayViewCheck.scala @@ -24,18 +24,18 @@ // extends ParallelSeqCheck[T]("ParallelSeqView[" + tp + ", ParallelArray[" + tp + "]]") { // // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + // type CollType = ParallelSeqView[T, ParallelArray[T], ArraySeq[T]] - + // def isCheckingViews = true - + // def instances(vals: Seq[Gen[T]]): Gen[Seq[T]] = sized { sz => // val a = new ArrayBuffer[T](sz) // val gen = vals(rnd.nextInt(vals.size)) // for (i <- 0 until sz) a += sample(gen) // a // } - + // def fromSeq(a: Seq[T]) = { // val pa = new ParallelArray[T](a.size) // var i = 0 @@ -45,13 +45,13 @@ // } // pa.view // } - + // property("forces must be equal") = forAll(collectionPairs) { case (s, coll) => // val smodif = (s ++ s).reverse.take(s.length).reverse.zip(s).drop(s.length / 2) // val cmodif = (coll ++ s).reverse.take(s.length).reverse.zip(s).drop(s.length / 2).force // smodif == cmodif // } - + // } @@ -68,18 +68,18 @@ // extends ParallelSeqCheck[T]("ParallelSeqView[" + tp + "], ParallelArray[" + tp + "].++.patch.reverse.take.reverse") { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + // type CollType = collection.parallel.ParallelSeq[T] - + // def isCheckingViews = true - + // def instances(vals: Seq[Gen[T]]): Gen[Seq[T]] = sized { sz => // val a = new ArrayBuffer[T](sz) // val gen = vals(rnd.nextInt(vals.size)) // for (i <- 0 until sz) a += sample(gen) // a // } - + // def fromSeq(a: Seq[T]) = { // val pa = new ParallelArray[T](a.size) // var i = 0 @@ -91,7 +91,7 @@ // val original = modified.take(modified.length / 2).reverse // original // } - + // } diff --git a/test/files/scalacheck/parallel-collections/ParallelHashMapCheck.scala b/test/files/scalacheck/parallel-collections/ParallelHashMapCheck.scala index 9299a201a1..0152b1b435 100644 --- a/test/files/scalacheck/parallel-collections/ParallelHashMapCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelHashMapCheck.scala @@ -17,20 +17,20 @@ import scala.collection.parallel.ops._ abstract class ParallelHashMapCheck[K, V](tp: String) extends ParallelMapCheck[K, V]("mutable.ParHashMap[" + tp + "]") { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + type CollType = ParHashMap[K, V] - + def isCheckingViews = false - + def hasStrictOrder = false - def ofSize(vals: Seq[Gen[(K, V)]], sz: Int) = { + def ofSize(vals: Seq[Gen[(K, V)]], sz: Int) = { val hm = new mutable.HashMap[K, V] val gen = vals(rnd.nextInt(vals.size)) for (i <- 0 until sz) hm += sample(gen) hm } - + def fromTraversable(t: Traversable[(K, V)]) = { val phm = new ParHashMap[K, V] var i = 0 @@ -40,7 +40,7 @@ abstract class ParallelHashMapCheck[K, V](tp: String) extends ParallelMapCheck[K } phm } - + } @@ -51,22 +51,22 @@ with PairValues[Int, Int] def intvalues = new IntValues {} def kvalues = intvalues.values def vvalues = intvalues.values - + val intoperators = new IntOperators {} def voperators = intoperators def koperators = intoperators - + override def printDataStructureDebugInfo(ds: AnyRef) = ds match { case pm: ParHashMap[k, v] => println("Mutable parallel hash map\n" + pm.hashTableContents.debugInformation) case _ => println("could not match data structure type: " + ds.getClass) } - + override def checkDataStructureInvariants(orig: Traversable[(Int, Int)], ds: AnyRef) = ds match { // case pm: ParHashMap[k, v] if 1 == 0 => // disabled this to make tests faster // val invs = pm.brokenInvariants - + // val containsall = (for ((k, v) <- orig) yield { // if (pm.asInstanceOf[ParHashMap[Int, Int]].get(k) == Some(v)) true // else { @@ -74,8 +74,8 @@ with PairValues[Int, Int] // false // } // }).foldLeft(true)(_ && _) - - + + // if (invs.isEmpty) containsall // else { // println("Invariants broken:\n" + invs.mkString("\n")) @@ -83,7 +83,7 @@ with PairValues[Int, Int] // } case _ => true } - + } diff --git a/test/files/scalacheck/parallel-collections/ParallelHashSetCheck.scala b/test/files/scalacheck/parallel-collections/ParallelHashSetCheck.scala index 8b41908a26..a0a6d1ae5e 100644 --- a/test/files/scalacheck/parallel-collections/ParallelHashSetCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelHashSetCheck.scala @@ -17,20 +17,20 @@ import scala.collection.parallel.ops._ abstract class ParallelHashSetCheck[T](tp: String) extends ParallelSetCheck[T]("mutable.ParHashSet[" + tp + "]") { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + type CollType = ParHashSet[T] - + def isCheckingViews = false - + def hasStrictOrder = false - def ofSize(vals: Seq[Gen[T]], sz: Int) = { + def ofSize(vals: Seq[Gen[T]], sz: Int) = { val hm = new mutable.HashSet[T] val gen = vals(rnd.nextInt(vals.size)) for (i <- 0 until sz) hm += sample(gen) hm } - + def fromTraversable(t: Traversable[T]) = { val phm = new ParHashSet[T] var i = 0 @@ -40,7 +40,7 @@ abstract class ParallelHashSetCheck[T](tp: String) extends ParallelSetCheck[T](" } phm } - + } @@ -54,12 +54,12 @@ with IntValues case _ => println("could not match data structure type: " + ds.getClass) } - + override def checkDataStructureInvariants(orig: Traversable[Int], ds: AnyRef) = ds match { // case pm: ParHashSet[t] if 1 == 0 => // // for an example of how not to write code proceed below // val invs = pm.brokenInvariants - + // val containsall = (for (elem <- orig) yield { // if (pm.asInstanceOf[ParHashSet[Int]](elem) == true) true // else { @@ -69,8 +69,8 @@ with IntValues // false // } // }).foldLeft(true)(_ && _) - - + + // if (invs.isEmpty) { // if (!containsall) println(pm.debugInformation) // containsall @@ -80,7 +80,7 @@ with IntValues // } case _ => true } - + } diff --git a/test/files/scalacheck/parallel-collections/ParallelHashTrieCheck.scala b/test/files/scalacheck/parallel-collections/ParallelHashTrieCheck.scala index bbec52dc92..3a2893f48a 100644 --- a/test/files/scalacheck/parallel-collections/ParallelHashTrieCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelHashTrieCheck.scala @@ -17,20 +17,20 @@ import scala.collection.parallel.ops._ abstract class ParallelHashMapCheck[K, V](tp: String) extends ParallelMapCheck[K, V]("immutable.ParHashMap[" + tp + "]") { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + type CollType = ParHashMap[K, V] - + def isCheckingViews = false - + def hasStrictOrder = false - + def ofSize(vals: Seq[Gen[(K, V)]], sz: Int) = { var hm = new immutable.HashMap[K, V] val gen = vals(rnd.nextInt(vals.size)) for (i <- 0 until sz) hm += sample(gen) hm } - + def fromTraversable(t: Traversable[(K, V)]) = { var phm = new ParHashMap[K, V] var i = 0 @@ -40,7 +40,7 @@ abstract class ParallelHashMapCheck[K, V](tp: String) extends ParallelMapCheck[K } phm } - + } @@ -51,11 +51,11 @@ with PairValues[Int, Int] def intvalues = new IntValues {} def kvalues = intvalues.values def vvalues = intvalues.values - + val intoperators = new IntOperators {} def voperators = intoperators def koperators = intoperators - + override def printDataStructureDebugInfo(ds: AnyRef) = ds match { case pm: ParHashMap[k, v] => pm.printDebugInfo @@ -69,20 +69,20 @@ with PairValues[Int, Int] abstract class ParallelHashSetCheck[T](tp: String) extends ParallelSetCheck[T]("immutable.ParHashSet[" + tp + "]") { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + type CollType = ParHashSet[T] - + def isCheckingViews = false - + def hasStrictOrder = false - + def ofSize(vals: Seq[Gen[T]], sz: Int) = { var hm = new immutable.HashSet[T] val gen = vals(rnd.nextInt(vals.size)) for (i <- 0 until sz) hm += sample(gen) hm } - + def fromTraversable(t: Traversable[T]) = { var phm = new ParHashSet[T] var i = 0 @@ -92,14 +92,14 @@ abstract class ParallelHashSetCheck[T](tp: String) extends ParallelSetCheck[T](" } phm } - + override def printDataStructureDebugInfo(ds: AnyRef) = ds match { case pm: ParHashSet[t] => println("Parallel hash set") case _ => println("could not match data structure type: " + ds.getClass) } - + } @@ -110,7 +110,7 @@ with IntValues def intvalues = new IntValues {} def kvalues = intvalues.values def vvalues = intvalues.values - + override def printDataStructureDebugInfo(ds: AnyRef) = ds match { case pm: ParHashMap[k, v] => pm.printDebugInfo diff --git a/test/files/scalacheck/parallel-collections/ParallelIterableCheck.scala b/test/files/scalacheck/parallel-collections/ParallelIterableCheck.scala index ac3493e56c..fbacb9f45c 100644 --- a/test/files/scalacheck/parallel-collections/ParallelIterableCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelIterableCheck.scala @@ -16,14 +16,14 @@ import scala.collection.parallel._ abstract class ParallelIterableCheck[T](collName: String) extends Properties(collName) with Operators[T] { type CollType <: ParIterable[T] - + def values: Seq[Gen[T]] def ofSize(vals: Seq[Gen[T]], sz: Int): Iterable[T] def fromTraversable(t: Traversable[T]): CollType def isCheckingViews: Boolean def hasStrictOrder: Boolean - - + + def instances(vals: Seq[Gen[T]]): Gen[Iterable[T]] = oneOf( sized( sz => @@ -31,46 +31,46 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ), for (sz <- choose(1000, 2000)) yield ofSize(vals, sz), for (sz <- choose(4000, 4001)) yield ofSize(vals, sz), - for (sz <- choose(10000, 10001)) yield ofSize(vals, sz) + for (sz <- choose(10000, 10001)) yield ofSize(vals, sz) ) - + // used to check if constructed collection is valid def checkDataStructureInvariants(orig: Traversable[T], cf: AnyRef) = { // can be overriden in subclasses true } - + def printDataStructureDebugInfo(cf: AnyRef) { // can be overridden in subclasses } - + val rnd = new scala.util.Random - + def sample(gen: Gen[T]): T = { var s = gen.sample while (s == None) s = gen.sample s.get } - + def sampleValue: T = sample(values(rnd.nextInt(values.length))) - + def collectionPairs = for (inst <- instances(values)) yield (inst, fromTraversable(inst)) - + def collectionPairsWithLengths = for (inst <- instances(values); s <- choose(0, inst.size)) yield (inst, fromTraversable(inst), s) - + def collectionPairsWith2Indices = for ( inst <- instances(values); f <- choose(0, inst.size); s <- choose(0, inst.size)) yield (inst, fromTraversable(inst), f, s) - - def collectionTriplets = for (inst <- instances(values); + + def collectionTriplets = for (inst <- instances(values); updStart <- choose(0, inst.size); howMany <- choose(0, inst.size)) yield { val modif = inst.toSeq.patch(updStart, inst.toSeq, howMany) (inst, fromTraversable(inst), modif) } - + def areEqual(t1: GenTraversable[T], t2: GenTraversable[T]) = if (hasStrictOrder) { t1 == t2 && t2 == t1 } else (t1, t2) match { // it is slightly delicate what `equal` means if the order is not strict @@ -81,14 +81,14 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col i1s == i2s && i2s == i1s case _ => t1 == t2 && t2 == t1 } - + def printDebugInfo(coll: ParIterableLike[_, _, _]) { println("Collection debug info: ") coll.printDebugBuffer println("Task debug info: ") println(tasksupport.debugMessages.mkString("\n")) } - + def printComparison(t: Traversable[_], coll: ParIterable[_], tf: Traversable[_], cf: ParIterable[_], ind: Int) { printDebugInfo(coll) println("Operator: " + ind) @@ -108,7 +108,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col println("tf == cf - " + (tf == cf)) println("cf == tf - " + (cf == tf)) } - + property("reductions must be equal for assoc. operators") = forAll(collectionPairs) { case (t, coll) => if (t.size != 0) { val results = for ((op, ind) <- reduceOperators.zipWithIndex) yield { @@ -126,7 +126,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col results.reduceLeft(_ && _) } else "has size 0" |: true } - + property("counts must be equal") = forAll(collectionPairs) { case (t, coll) => val results = for ((pred, ind) <- countPredicates.zipWithIndex) yield { val tc = t.count(pred) @@ -142,19 +142,19 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col } results.reduceLeft(_ && _) } - + property("forall must be equal") = forAll(collectionPairs) { case (t, coll) => val results = for ((pred, ind) <- forallPredicates.zipWithIndex) yield ("op index: " + ind) |: t.forall(pred) == coll.forall(pred) results.reduceLeft(_ && _) } - + property("exists must be equal") = forAll(collectionPairs) { case (t, coll) => val results = for ((pred, ind) <- existsPredicates.zipWithIndex) yield ("op index: " + ind) |: t.exists(pred) == coll.exists(pred) results.reduceLeft(_ && _) } - + property("both must find or not find an element") = forAll(collectionPairs) { case (t, coll) => val results = for ((pred, ind) <- findPredicates.zipWithIndex) yield { val ft = t.find(pred) @@ -163,7 +163,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col } results.reduceLeft(_ && _) } - + property("mappings must be equal") = forAll(collectionPairs) { case (t, coll) => val results = for ((f, ind) <- mapFunctions.zipWithIndex) yield { val ms = t.map(f) @@ -184,7 +184,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col } results.reduceLeft(_ && _) } - + property("collects must be equal") = forAll(collectionPairs) { case (t, coll) => val results = for ((f, ind) <- partialMapFunctions.zipWithIndex) yield { val ps = t.collect(f) @@ -200,12 +200,12 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col } results.reduceLeft(_ && _) } - + property("flatMaps must be equal") = forAll(collectionPairs) { case (t, coll) => (for ((f, ind) <- flatMapFunctions.zipWithIndex) yield ("op index: " + ind) |: areEqual(t.flatMap(f), coll.flatMap(f))).reduceLeft(_ && _) } - + property("filters must be equal") = forAll(collectionPairs) { case (t, coll) => (for ((p, ind) <- filterPredicates.zipWithIndex) yield { val tf = t.filter(p) @@ -234,7 +234,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("op index: " + ind) |: tf == cf && cf == tf && invs }).reduceLeft(_ && _) } - + property("filterNots must be equal") = forAll(collectionPairs) { case (t, coll) => (for ((p, ind) <- filterNotPredicates.zipWithIndex) yield { val tf = t.filterNot(p) @@ -243,7 +243,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("op index: " + ind) |: tf == cf && cf == tf }).reduceLeft(_ && _) } - + if (!isCheckingViews) property("partitions must be equal") = forAll(collectionPairs) { case (t, coll) => (for ((p, ind) <- partitionPredicates.zipWithIndex) yield { val tpart = t.partition(p) @@ -257,15 +257,15 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("op index: " + ind) |: tpart == cpart }).reduceLeft(_ && _) } - + if (hasStrictOrder) property("takes must be equal") = forAll(collectionPairsWithLengths) { case (t, coll, n) => ("take " + n + " elements") |: t.take(n) == coll.take(n) } - + if (hasStrictOrder) property("drops must be equal") = forAll(collectionPairsWithLengths) { case (t, coll, n) => ("drop " + n + " elements") |: t.drop(n) == coll.drop(n) } - + if (hasStrictOrder) property("slices must be equal") = forAll(collectionPairsWith2Indices) { case (t, coll, fr, slicelength) => val from = if (fr < 0) 0 else fr @@ -289,7 +289,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col } ("slice from " + from + " until " + until) |: tsl == collsl } - + if (hasStrictOrder) property("splits must be equal") = forAll(collectionPairsWithLengths) { case (t, coll, n) => val tspl = t.splitAt(n) val cspl = coll.splitAt(n) @@ -302,7 +302,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col } ("splitAt " + n) |: tspl == cspl } - + if (hasStrictOrder) property("takeWhiles must be equal") = forAll(collectionPairs) { case (t, coll) => (for ((pred, ind) <- takeWhilePredicates.zipWithIndex) yield { val tt = t.takeWhile(pred) @@ -317,7 +317,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("operator " + ind) |: tt == ct }).reduceLeft(_ && _) } - + if (hasStrictOrder) property("spans must be equal") = forAll(collectionPairs) { case (t, coll) => (for ((pred, ind) <- spanPredicates.zipWithIndex) yield { val tsp = t.span(pred) @@ -335,13 +335,13 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("operator " + ind) |: tsp == csp }).reduceLeft(_ && _) } - + if (hasStrictOrder) property("dropWhiles must be equal") = forAll(collectionPairs) { case (t, coll) => (for ((pred, ind) <- dropWhilePredicates.zipWithIndex) yield { ("operator " + ind) |: t.dropWhile(pred) == coll.dropWhile(pred) }).reduceLeft(_ && _) } - + property("folds must be equal for assoc. operators") = forAll(collectionPairs) { case (t, coll) => (for (((first, op), ind) <- foldArguments.zipWithIndex) yield { val tres = t.foldLeft(first)(op) @@ -356,7 +356,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("operator " + ind) |: tres == cres }).reduceLeft(_ && _) } - + property("++s must be equal") = forAll(collectionTriplets) { case (t, coll, colltoadd) => val toadd = colltoadd val tr = t ++ toadd.iterator @@ -383,7 +383,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("traversable " + ind) |: areEqual(tadded, cadded) }).reduceLeft(_ && _) } - + if (hasStrictOrder) property("copies to array must be equal") = forAll(collectionPairs) { case (t, coll) => val tarr = newArray(t.size) val collarr = newArray(coll.size) @@ -397,7 +397,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col } tarr.toSeq == collarr.toSeq } - + if (hasStrictOrder) property("scans must be equal") = forAll(collectionPairs) { case (t, coll) => (for (((first, op), ind) <- foldArguments.zipWithIndex) yield { @@ -413,7 +413,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col ("operator " + ind) |: tscan == cscan && cscan == tscan }).reduceLeft(_ && _) } - + // property("groupBy must be equal") = forAll(collectionPairs) { // case (t, coll) => // (for ((f, ind) <- groupByFunctions.zipWithIndex) yield { @@ -429,7 +429,7 @@ abstract class ParallelIterableCheck[T](collName: String) extends Properties(col // ("operator " + ind) |: tgroup == cgroup && cgroup == tgroup // }).reduceLeft(_ && _) // } - + } diff --git a/test/files/scalacheck/parallel-collections/ParallelMapCheck1.scala b/test/files/scalacheck/parallel-collections/ParallelMapCheck1.scala index 53e56e9700..05237bace8 100644 --- a/test/files/scalacheck/parallel-collections/ParallelMapCheck1.scala +++ b/test/files/scalacheck/parallel-collections/ParallelMapCheck1.scala @@ -16,15 +16,15 @@ import scala.collection.parallel._ abstract class ParallelMapCheck[K, V](collname: String) extends ParallelIterableCheck[(K, V)](collname) { type CollType <: ParMap[K, V] - + property("gets iterated keys") = forAll(collectionPairs) { case (t, coll) => val containsT = for ((k, v) <- t) yield (coll.get(k) == Some(v)) val containsSelf = for ((k, v) <- coll) yield (coll.get(k) == Some(v)) ("Par contains elements of seq map" |: containsT.forall(_ == true)) && ("Par contains elements of itself" |: containsSelf.forall(_ == true)) - } - + } + } diff --git a/test/files/scalacheck/parallel-collections/ParallelRangeCheck.scala b/test/files/scalacheck/parallel-collections/ParallelRangeCheck.scala index 372d6b9fbd..3c6a35d8f1 100644 --- a/test/files/scalacheck/parallel-collections/ParallelRangeCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelRangeCheck.scala @@ -20,15 +20,15 @@ import scala.collection.parallel.ops._ object ParallelRangeCheck extends ParallelSeqCheck[Int]("ParallelRange[Int]") with ops.IntSeqOperators { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + type CollType = collection.parallel.ParSeq[Int] - + def hasStrictOrder = true - + def isCheckingViews = false - + def ofSize(vals: Seq[Gen[Int]], sz: Int) = unsupported - + override def instances(vals: Seq[Gen[Int]]): Gen[Seq[Int]] = sized { start => sized { end => sized { step => @@ -36,7 +36,7 @@ object ParallelRangeCheck extends ParallelSeqCheck[Int]("ParallelRange[Int]") wi } } } - + def fromSeq(a: Seq[Int]) = a match { case r: Range => ParRange(r.start, r.end, r.step, false) case _ => @@ -44,14 +44,14 @@ object ParallelRangeCheck extends ParallelSeqCheck[Int]("ParallelRange[Int]") wi for (i <- 0 until a.length) pa(i) = a(i) pa } - + override def traversable2Seq(t: Traversable[Int]): Seq[Int] = t match { case r: Range => r case _ => t.toSeq } - + def values = Seq(choose(-100, 100)) - + } diff --git a/test/files/scalacheck/parallel-collections/ParallelSeqCheck.scala b/test/files/scalacheck/parallel-collections/ParallelSeqCheck.scala index 3f8a8ad4f5..dd897412ae 100644 --- a/test/files/scalacheck/parallel-collections/ParallelSeqCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelSeqCheck.scala @@ -16,13 +16,13 @@ import scala.collection.parallel._ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableCheck[T](collName) with SeqOperators[T] { - + type CollType <: collection.parallel.ParSeq[T] - + def ofSize(vals: Seq[Gen[T]], sz: Int): Seq[T] def fromSeq(s: Seq[T]): CollType - + override def instances(vals: Seq[Gen[T]]): Gen[Seq[T]] = oneOf( sized( sz => @@ -31,17 +31,17 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe for (sz <- choose(1000, 2000)) yield ofSize(vals, sz) ) - + def fromTraversable(t: Traversable[T]) = fromSeq(traversable2Seq(t)) def traversable2Seq(t: Traversable[T]): Seq[T] = { if (t.isInstanceOf[Iterable[_]]) t.asInstanceOf[Iterable[T]].iterator.toList else t.toList } - + override def collectionPairs: Gen[(Seq[T], CollType)] = for (inst <- instances(values)) yield (inst, fromSeq(inst)) - + override def collectionPairsWithLengths: Gen[(Seq[T], CollType, Int)] = for (inst <- instances(values); s <- choose(0, inst.size)) yield (inst, fromSeq(inst), s); - + def collectionPairsWithModifiedWithLengths: Gen[(Seq[T], CollType, ParSeq[T], Int)] = for (inst <- instances(values); s <- choose(0, inst.size); updateStart <- choose(0, inst.size); howMany <- choose(0, inst.size)) yield { @@ -49,31 +49,31 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe val parcollmodif = fromSeq(modifySlightly(inst, updateStart, howMany)) (inst, parcoll, parcollmodif, s) } - + def collectionPairsWithModified: Gen[(Seq[T], CollType, ParSeq[T])] = for (inst <- instances(values); updateStart <- choose(0, inst.size); howMany <- choose(0, inst.size)) yield { val parcoll = fromSeq(inst) val parcollmodif = fromSeq(modifySlightly(inst, updateStart, howMany)) (inst, parcoll, parcollmodif) } - + def collectionPairsWithSliced: Gen[(Seq[T], CollType, ParSeq[T])] = for (inst <- instances(values); sliceStart <- choose(0, inst.size); howMany <- choose(0, inst.size)) yield { val parcoll = fromSeq(inst) val parcollsliced = fromSeq(inst.slice(sliceStart, sliceStart + howMany)) (inst, parcoll, parcollsliced) } - + def collectionTripletsWith2Indices: Gen[(Seq[T], CollType, Seq[T], Int, Int)] = for (inst <- instances(values); f <- choose(0, inst.size); s <- choose(0, inst.size - f); third <- instances(values); sliceStart <- choose(0, inst.size); howMany <- choose(0, inst.size)) yield { (inst, fromSeq(inst), inst.slice(sliceStart, sliceStart + howMany), f, s) } - + private def modifySlightly(coll: Seq[T], updateStart: Int, howMany: Int) = { coll.patch(updateStart, coll, howMany) } - + property("segmentLengths must be equal") = forAll(collectionPairsWithLengths) { case (s, coll, len) => (for ((pred, ind) <- segmentLengthPredicates.zipWithIndex) yield { val slen = s.segmentLength(pred, if (len < 0) 0 else len) @@ -87,13 +87,13 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("operator " + ind) |: slen == clen }).reduceLeft(_ && _) } - + property("prefixLengths must be equal") = forAll(collectionPairs) { case (s, coll) => (for ((pred, ind) <- segmentLengthPredicates.zipWithIndex) yield { ("operator " + ind) |: s.prefixLength(pred) == coll.prefixLength(pred) }).reduceLeft(_ && _) } - + property("indexWheres must be equal") = forAll(collectionPairsWithLengths) { case (s, coll, len) => (for ((pred, ind) <- indexWherePredicates.zipWithIndex) yield { val sind = s.indexWhere(pred, len) @@ -108,7 +108,7 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("operator " + ind) |: sind == cind }).reduceLeft(_ && _) } - + property("lastIndexWheres must be equal") = forAll(collectionPairsWithLengths) { case (s, coll, len) => (for ((pred, ind) <- lastIndexWherePredicates.zipWithIndex) yield { val end = if (len >= s.size) s.size - 1 else len @@ -117,7 +117,7 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("operator " + ind) |: sind == cind }).reduceLeft(_ && _) } - + property("reverses must be equal") = forAll(collectionPairs) { case (s, coll) => (s.length == 0 && s.getClass == classOf[collection.immutable.Range]) || { @@ -132,13 +132,13 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe sr == cr } } - + property("reverseMaps must be equal") = forAll(collectionPairs) { case (s, coll) => (for ((f, ind) <- reverseMapFunctions.zipWithIndex) yield { ("operator " + ind) |: s.reverseMap(f) == coll.reverseMap(f) }).reduceLeft(_ && _) } - + property("sameElements must be equal") = forAll(collectionPairsWithModifiedWithLengths) { case (s, coll, collmodif, len) => val pos = if (len < 0) 0 else len @@ -170,7 +170,7 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("collection " + ind) |: sres == pres }).reduceLeft(_ && _) } - + property("startsWiths must be equal") = forAll(collectionPairsWithModifiedWithLengths) { case (s, coll, collmodif, len) => val pos = if (len < 0) 0 else len @@ -194,7 +194,7 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("seq " + sq) |: ss == cs }).reduceLeft(_ && _) } - + property("endsWiths must be equal") = forAll(collectionPairsWithModified) { case (s, coll, collmodif) => ("ends with self" |: s.endsWith(s) == coll.endsWith(s)) && @@ -213,18 +213,18 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("seq " + sq) |: sew == cew }).reduceLeft(_ && _) } - + property("unions must be equal") = forAll(collectionPairsWithModified) { case (s, coll, collmodif) => ("modified" |: s.union(collmodif.seq) == coll.union(collmodif)) && ("empty" |: s.union(Nil) == coll.union(fromSeq(Nil))) } - + // This is failing with my views patch: array index out of bounds in the array iterator. // Couldn't see why this and only this was impacted, could use a second pair of eyes. - // + // // This was failing because some corner cases weren't added to the patch method in ParSeqLike. // Curiously, this wasn't detected before. - // + // if (!isCheckingViews) property("patches must be equal") = forAll(collectionTripletsWith2Indices) { case (s, coll, pat, from, repl) => ("with seq" |: s.patch(from, pat, repl) == coll.patch(from, pat, repl)) && @@ -232,7 +232,7 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("with empty" |: s.patch(from, Nil, repl) == coll.patch(from, fromSeq(Nil), repl)) && ("with one" |: (s.length == 0 || s.patch(from, List(s(0)), 1) == coll.patch(from, fromSeq(List(coll(0))), 1))) } - + if (!isCheckingViews) property("updates must be equal") = forAll(collectionPairsWithLengths) { case (s, coll, len) => val pos = if (len >= s.length) s.length - 1 else len if (s.length > 0) { @@ -247,15 +247,15 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe "from first" |: (supd == cupd) } else "trivially" |: true } - + property("prepends must be equal") = forAll(collectionPairs) { case (s, coll) => s.length == 0 || s(0) +: s == coll(0) +: coll } - + property("appends must be equal") = forAll(collectionPairs) { case (s, coll) => s.length == 0 || s :+ s(0) == coll :+ coll(0) } - + property("padTos must be equal") = forAll(collectionPairsWithLengths) { case (s, coll, len) => val someValue = sampleValue val sdoub = s.padTo(len * 2, someValue) @@ -269,14 +269,14 @@ abstract class ParallelSeqCheck[T](collName: String) extends ParallelIterableChe ("smaller" |: s.padTo(len / 2, someValue) == coll.padTo(len / 2, someValue)) && ("bigger" |: sdoub == cdoub) } - + property("corresponds must be equal") = forAll(collectionPairsWithModified) { case (s, coll, modified) => val modifcut = modified.toSeq.slice(0, modified.length) ("self" |: s.corresponds(s)(_ == _) == coll.corresponds(coll)(_ == _)) && ("modified" |: s.corresponds(modified.seq)(_ == _) == coll.corresponds(modified)(_ == _)) && ("modified2" |: s.corresponds(modifcut)(_ == _) == coll.corresponds(modifcut)(_ == _)) } - + } diff --git a/test/files/scalacheck/parallel-collections/ParallelSetCheck.scala b/test/files/scalacheck/parallel-collections/ParallelSetCheck.scala index 56f7832fed..4211abbd16 100644 --- a/test/files/scalacheck/parallel-collections/ParallelSetCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelSetCheck.scala @@ -16,15 +16,15 @@ import scala.collection.parallel._ abstract class ParallelSetCheck[T](collname: String) extends ParallelIterableCheck[T](collname) { type CollType <: ParSet[T] - + property("gets iterated keys") = forAll(collectionPairs) { case (t, coll) => val containsT = for (elem <- t) yield (coll.contains(elem)) val containsSelf = for (elem <- coll) yield (coll.contains(elem)) ("Par contains elements of seq map" |: containsT.forall(_ == true)) && ("Par contains elements of itself" |: containsSelf.forall(_ == true)) - } - + } + } diff --git a/test/files/scalacheck/parallel-collections/ParallelVectorCheck.scala b/test/files/scalacheck/parallel-collections/ParallelVectorCheck.scala index a2b6cef96d..e4bb588fa7 100644 --- a/test/files/scalacheck/parallel-collections/ParallelVectorCheck.scala +++ b/test/files/scalacheck/parallel-collections/ParallelVectorCheck.scala @@ -23,11 +23,11 @@ import immutable.VectorBuilder abstract class ParallelVectorCheck[T](tp: String) extends collection.parallel.ParallelSeqCheck[T]("ParVector[" + tp + "]") { // ForkJoinTasks.defaultForkJoinPool.setMaximumPoolSize(Runtime.getRuntime.availableProcessors * 2) // ForkJoinTasks.defaultForkJoinPool.setParallelism(Runtime.getRuntime.availableProcessors * 2) - + type CollType = ParVector[T] - + def isCheckingViews = false - + def hasStrictOrder = true def ofSize(vals: Seq[Gen[T]], sz: Int) = { @@ -36,13 +36,13 @@ abstract class ParallelVectorCheck[T](tp: String) extends collection.parallel.Pa for (i <- 0 until sz) vb += sample(gen) vb.result } - + def fromSeq(a: Seq[T]) = { val pa = ParVector.newCombiner[T] for (elem <- a.toList) pa += elem pa.result } - + } diff --git a/test/files/scalacheck/parallel-collections/pc.scala b/test/files/scalacheck/parallel-collections/pc.scala index 103b5e2993..cc0382303a 100644 --- a/test/files/scalacheck/parallel-collections/pc.scala +++ b/test/files/scalacheck/parallel-collections/pc.scala @@ -9,25 +9,25 @@ import scala.collection.parallel._ class ParCollProperties extends Properties("Parallel collections") { /* Collections */ - + // parallel arrays include(mutable.IntParallelArrayCheck) - + // parallel ranges include(immutable.ParallelRangeCheck) - + // parallel immutable hash maps (tries) include(immutable.IntIntParallelHashMapCheck) - + // parallel immutable hash sets (tries) include(immutable.IntParallelHashSetCheck) - + // parallel mutable hash maps (tables) include(mutable.IntIntParallelHashMapCheck) - + // parallel mutable hash sets (tables) include(mutable.IntParallelHashSetCheck) - + // parallel vectors include(immutable.IntParallelVectorCheck) } diff --git a/test/files/scalacheck/primitive-eqeq.scala b/test/files/scalacheck/primitive-eqeq.scala index 60fe63c207..a783805e46 100644 --- a/test/files/scalacheck/primitive-eqeq.scala +++ b/test/files/scalacheck/primitive-eqeq.scala @@ -4,7 +4,7 @@ import Gen._ object Test extends Properties("==") { def equalObjectsEqualHashcodes(x: Any, y: Any) = (x != y) || (x == y && x.## == y.##) - + // ticket #2087 property("short/char") = forAll { (x: Short) => { val ch: Char = x.toChar @@ -14,15 +14,15 @@ object Test extends Properties("==") { property("symmetry") = forAll { (x: AnyVal, y: AnyVal) => (x == y) == (y == x) } property("transitivity") = forAll { (x: AnyVal, y: AnyVal, z: AnyVal) => x != y || y != z || x == z } - - property("##") = forAll { + + property("##") = forAll { (x: Short) => { val anyvals = List(x.toByte, x.toChar, x, x.toInt, x.toLong, x.toFloat, x.toDouble, BigInt(x), BigDecimal(x)) val shortAndLarger = anyvals drop 2 val result = ( - ((anyvals, anyvals).zipped forall equalObjectsEqualHashcodes) && - ((shortAndLarger, shortAndLarger).zipped forall (_ == _)) && + ((anyvals, anyvals).zipped forall equalObjectsEqualHashcodes) && + ((shortAndLarger, shortAndLarger).zipped forall (_ == _)) && ((shortAndLarger, shortAndLarger).zipped forall ((x, y) => (x: Any) == (y: Any))) ) result diff --git a/test/files/scalacheck/range.scala b/test/files/scalacheck/range.scala index 56295f204c..3c1b1acd42 100644 --- a/test/files/scalacheck/range.scala +++ b/test/files/scalacheck/range.scala @@ -1,228 +1,228 @@ -import org.scalacheck._ -import Prop._ -import Gen._ -import Arbitrary._ - -class Counter(r: Range) { - var cnt = 0L - var last: Option[Int] = None - val str = "Range["+r.start+", "+r.end+", "+r.step+(if (r.isInclusive) "]" else ")") - def apply(x: Int) = { - cnt += 1L - if (cnt % 500000000L == 0L) { - println("Working: %s %d %d" format (str, cnt, x)) - } - if (cnt > (Int.MaxValue.toLong + 1) * 2) - error("Count exceeds maximum possible for an Int Range") - if ((r.step > 0 && last.exists(_ > x)) || (r.step < 0 && last.exists(_ < x))) - error("Range wrapped: %d %s" format (x, last.toString)) - last = Some(x) - } -} - -abstract class RangeTest(kind: String) extends Properties("Range "+kind) { - def myGen: Gen[Range] - - val genRange = for { - start <- arbitrary[Int] - end <- arbitrary[Int] - step <- Gen.choose(1, (start - end).abs + 1) - } yield if (start < end) Range(start, end, step) else Range(start, end, -step) - - val genReasonableSizeRange = for { - start <- choose(-Int.MinValue, Int.MaxValue) - end <- choose(-Int.MinValue, Int.MaxValue) - step <- choose(-Int.MaxValue, Int.MaxValue) - } yield Range(start, end, if (step == 0) 100 else step) - - val genSmallRange = for { - start <- choose(-100, 100) - end <- choose(-100, 100) - step <- choose(1, 1) - } yield if (start < end) Range(start, end, step) else Range(start, end, -step) - - val genRangeByOne = for { - start <- arbitrary[Int] - end <- arbitrary[Int] - if (end.toLong - start.toLong).abs <= 10000000L - } yield if (start < end) Range(start, end) else Range(end, start) - - def str(r: Range) = "Range["+r.start+", "+r.end+", "+r.step+(if (r.isInclusive) "]" else ")") - - def expectedSize(r: Range): Long = if (r.isInclusive) { - (r.end.toLong - r.start.toLong < 0, r.step < 0) match { - case (true, true) | (false, false) => (r.end.toLong - r.start.toLong).abs / r.step.abs.toLong + 1L - case _ => if (r.start == r.end) 1L else 0L - } - } else { - (r.end.toLong - r.start.toLong < 0, r.step < 0) match { - case (true, true) | (false, false) => ( - (r.end.toLong - r.start.toLong).abs / r.step.abs.toLong - + (if ((r.end.toLong - r.start.toLong).abs % r.step.abs.toLong > 0L) 1L else 0L) - ) - case _ => 0L - } - } - - def within(r: Range, x: Int) = if (r.step > 0) - r.start <= x && (if (r.isInclusive) x <= r.end else x < r.end) - else - r.start >= x && (if (r.isInclusive) x >= r.end else x > r.end) - - def multiple(r: Range, x: Int) = (x.toLong - r.start) % r.step == 0 - - property("foreach.step") = forAll(myGen) { r => - var allValid = true - val cnt = new Counter(r) -// println("--------------------") -// println(r) - r foreach { x => cnt(x) -// println(x + ", " + (x - r.start) + ", " + (x.toLong - r.start) + ", " + ((x.toLong - r.start) % r.step)) - allValid &&= multiple(r, x) - } - allValid :| str(r) - } - - property("foreach.inside.range") = forAll(myGen) { r => - var allValid = true - var last: Option[Int] = None - val cnt = new Counter(r) - r foreach { x => cnt(x) - allValid &&= within(r, x) - } - allValid :| str(r) - } - - property("foreach.visited.size") = forAll(myGen) { r => - var visited = 0L - val cnt = new Counter(r) - r foreach { x => cnt(x) - visited += 1L - } -// println("----------") -// println(str(r)) -// println("size: " + r.size) -// println("expected: " + expectedSize(r)) -// println("visited: " + visited) - (visited == expectedSize(r)) :| str(r) - } - - property("length") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r))) { r => - (r.length == expectedSize(r)) :| str(r) - } - - property("isEmpty") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r))) { r => - (r.isEmpty == (expectedSize(r) == 0L)) :| str(r) - } - - property("contains") = forAll(myGen, arbInt.arbitrary) { (r, x) => -// println("----------------") -// println(str(r)) -// println(x) -// println("within: " + within(r, x)) -// println("multiple: " + multiple(r, x)) -// println("contains: " + r.contains(x)) - ((within(r, x) && multiple(r, x)) == r.contains(x)) :| str(r)+": "+x - } - - property("take") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r)), arbInt.arbitrary) { (r, x) => - val t = r take x - (t.size == (0 max x min r.size) && t.start == r.start && t.step == r.step) :| str(r)+" / "+str(t)+": "+x - } - - property("init") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r))) { r => - (r.size == 0) || { - val t = r.init - (t.size + 1 == r.size) && (t.isEmpty || t.head == r.head) - } - } - - property("takeWhile") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r)), arbInt.arbitrary) { (r, x) => - val t = (if (r.step > 0) r takeWhile (_ <= x) else r takeWhile(_ >= x)) - if (r.size == 0) { - (t.size == 0) :| str(r)+" / "+str(t)+": "+x - } else { - val t2 = (if (r.step > 0) Range(r.start, x min r.last, r.step).inclusive else Range(r.start, x max r.last, r.step).inclusive) - (t.start == r.start && t.size == t2.size && t.step == r.step) :| str(r)+" / "+str(t)+" / "+str(t2)+": "+x - } - } - - property("reverse.toSet.equal") = forAll(myGen) { r => - val reversed = r.reverse - val aresame = r.toSet == reversed.toSet - if (!aresame) { - println(str(r)) - println(r) - println(reversed) - println(r.toSet) - println(reversed.toSet) - } - aresame - } -} - -object NormalRangeTest extends RangeTest("normal") { - override def myGen = genReasonableSizeRange - def genOne = for { - start <- arbitrary[Int] - end <- arbitrary[Int] - if (start.toLong - end.toLong).abs < Int.MaxValue.toLong - } yield Range(start, end, if (start < end) 1 else - 1) - property("by 1.size + 1 == inclusive.size") = forAll(genOne) { r => - (r.size + 1 == r.inclusive.size) :| str(r) - } -} - -object InclusiveRangeTest extends RangeTest("inclusive") { - override def myGen = for (r <- genReasonableSizeRange) yield r.inclusive -} - -object ByOneRangeTest extends RangeTest("byOne") { - override def myGen = genSmallRange -} - -object InclusiveByOneRangeTest extends RangeTest("inclusiveByOne") { - override def myGen = for (r <- genSmallRange) yield r.inclusive -} - -object SmallValuesRange extends RangeTest("smallValues") { - override def myGen = genSmallRange -} - -object TooLargeRange extends Properties("Too Large Range") { - val genTooLargeStart = for { - start <- choose(-Int.MinValue, 0) - } yield start - - property("Too large range throws exception") = forAll(genTooLargeStart) { start => - try { - val r = Range.inclusive(start, Int.MaxValue, 1) - println("how here? r = " + r.toString) - false - } - catch { case _: IllegalArgumentException => true } - } -} - -object Test extends Properties("Range") { - import org.scalacheck.{ Test => STest } - - List(NormalRangeTest, InclusiveRangeTest, ByOneRangeTest, InclusiveByOneRangeTest, TooLargeRange) foreach { ps => - STest.checkProperties(STest.Params(testCallback = ConsoleReporter(0)), ps) - } -} - -/* Mini-benchmark -def testRange(i: Int, j: Int, k: Int) = { - var count = 0 - for { - vi <- 0 to i - vj <- 0 to j - vk <- 0 to k - } { count += 1 } -} - -testRange(10, 1000, 10000) -testRange(10000, 1000, 10) -*/ - +import org.scalacheck._
+import Prop._
+import Gen._
+import Arbitrary._
+
+class Counter(r: Range) {
+ var cnt = 0L
+ var last: Option[Int] = None
+ val str = "Range["+r.start+", "+r.end+", "+r.step+(if (r.isInclusive) "]" else ")")
+ def apply(x: Int) = {
+ cnt += 1L
+ if (cnt % 500000000L == 0L) {
+ println("Working: %s %d %d" format (str, cnt, x))
+ }
+ if (cnt > (Int.MaxValue.toLong + 1) * 2)
+ error("Count exceeds maximum possible for an Int Range")
+ if ((r.step > 0 && last.exists(_ > x)) || (r.step < 0 && last.exists(_ < x)))
+ error("Range wrapped: %d %s" format (x, last.toString))
+ last = Some(x)
+ }
+}
+
+abstract class RangeTest(kind: String) extends Properties("Range "+kind) {
+ def myGen: Gen[Range]
+
+ val genRange = for {
+ start <- arbitrary[Int]
+ end <- arbitrary[Int]
+ step <- Gen.choose(1, (start - end).abs + 1)
+ } yield if (start < end) Range(start, end, step) else Range(start, end, -step)
+
+ val genReasonableSizeRange = for {
+ start <- choose(-Int.MinValue, Int.MaxValue)
+ end <- choose(-Int.MinValue, Int.MaxValue)
+ step <- choose(-Int.MaxValue, Int.MaxValue)
+ } yield Range(start, end, if (step == 0) 100 else step)
+
+ val genSmallRange = for {
+ start <- choose(-100, 100)
+ end <- choose(-100, 100)
+ step <- choose(1, 1)
+ } yield if (start < end) Range(start, end, step) else Range(start, end, -step)
+
+ val genRangeByOne = for {
+ start <- arbitrary[Int]
+ end <- arbitrary[Int]
+ if (end.toLong - start.toLong).abs <= 10000000L
+ } yield if (start < end) Range(start, end) else Range(end, start)
+
+ def str(r: Range) = "Range["+r.start+", "+r.end+", "+r.step+(if (r.isInclusive) "]" else ")")
+
+ def expectedSize(r: Range): Long = if (r.isInclusive) {
+ (r.end.toLong - r.start.toLong < 0, r.step < 0) match {
+ case (true, true) | (false, false) => (r.end.toLong - r.start.toLong).abs / r.step.abs.toLong + 1L
+ case _ => if (r.start == r.end) 1L else 0L
+ }
+ } else {
+ (r.end.toLong - r.start.toLong < 0, r.step < 0) match {
+ case (true, true) | (false, false) => (
+ (r.end.toLong - r.start.toLong).abs / r.step.abs.toLong
+ + (if ((r.end.toLong - r.start.toLong).abs % r.step.abs.toLong > 0L) 1L else 0L)
+ )
+ case _ => 0L
+ }
+ }
+
+ def within(r: Range, x: Int) = if (r.step > 0)
+ r.start <= x && (if (r.isInclusive) x <= r.end else x < r.end)
+ else
+ r.start >= x && (if (r.isInclusive) x >= r.end else x > r.end)
+
+ def multiple(r: Range, x: Int) = (x.toLong - r.start) % r.step == 0
+
+ property("foreach.step") = forAll(myGen) { r =>
+ var allValid = true
+ val cnt = new Counter(r)
+// println("--------------------")
+// println(r)
+ r foreach { x => cnt(x)
+// println(x + ", " + (x - r.start) + ", " + (x.toLong - r.start) + ", " + ((x.toLong - r.start) % r.step))
+ allValid &&= multiple(r, x)
+ }
+ allValid :| str(r)
+ }
+
+ property("foreach.inside.range") = forAll(myGen) { r =>
+ var allValid = true
+ var last: Option[Int] = None
+ val cnt = new Counter(r)
+ r foreach { x => cnt(x)
+ allValid &&= within(r, x)
+ }
+ allValid :| str(r)
+ }
+
+ property("foreach.visited.size") = forAll(myGen) { r =>
+ var visited = 0L
+ val cnt = new Counter(r)
+ r foreach { x => cnt(x)
+ visited += 1L
+ }
+// println("----------")
+// println(str(r))
+// println("size: " + r.size)
+// println("expected: " + expectedSize(r))
+// println("visited: " + visited)
+ (visited == expectedSize(r)) :| str(r)
+ }
+
+ property("length") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r))) { r =>
+ (r.length == expectedSize(r)) :| str(r)
+ }
+
+ property("isEmpty") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r))) { r =>
+ (r.isEmpty == (expectedSize(r) == 0L)) :| str(r)
+ }
+
+ property("contains") = forAll(myGen, arbInt.arbitrary) { (r, x) =>
+// println("----------------")
+// println(str(r))
+// println(x)
+// println("within: " + within(r, x))
+// println("multiple: " + multiple(r, x))
+// println("contains: " + r.contains(x))
+ ((within(r, x) && multiple(r, x)) == r.contains(x)) :| str(r)+": "+x
+ }
+
+ property("take") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r)), arbInt.arbitrary) { (r, x) =>
+ val t = r take x
+ (t.size == (0 max x min r.size) && t.start == r.start && t.step == r.step) :| str(r)+" / "+str(t)+": "+x
+ }
+
+ property("init") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r))) { r =>
+ (r.size == 0) || {
+ val t = r.init
+ (t.size + 1 == r.size) && (t.isEmpty || t.head == r.head)
+ }
+ }
+
+ property("takeWhile") = forAll(myGen suchThat (r => expectedSize(r).toInt == expectedSize(r)), arbInt.arbitrary) { (r, x) =>
+ val t = (if (r.step > 0) r takeWhile (_ <= x) else r takeWhile(_ >= x))
+ if (r.size == 0) {
+ (t.size == 0) :| str(r)+" / "+str(t)+": "+x
+ } else {
+ val t2 = (if (r.step > 0) Range(r.start, x min r.last, r.step).inclusive else Range(r.start, x max r.last, r.step).inclusive)
+ (t.start == r.start && t.size == t2.size && t.step == r.step) :| str(r)+" / "+str(t)+" / "+str(t2)+": "+x
+ }
+ }
+
+ property("reverse.toSet.equal") = forAll(myGen) { r =>
+ val reversed = r.reverse
+ val aresame = r.toSet == reversed.toSet
+ if (!aresame) {
+ println(str(r))
+ println(r)
+ println(reversed)
+ println(r.toSet)
+ println(reversed.toSet)
+ }
+ aresame
+ }
+}
+
+object NormalRangeTest extends RangeTest("normal") {
+ override def myGen = genReasonableSizeRange
+ def genOne = for {
+ start <- arbitrary[Int]
+ end <- arbitrary[Int]
+ if (start.toLong - end.toLong).abs < Int.MaxValue.toLong
+ } yield Range(start, end, if (start < end) 1 else - 1)
+ property("by 1.size + 1 == inclusive.size") = forAll(genOne) { r =>
+ (r.size + 1 == r.inclusive.size) :| str(r)
+ }
+}
+
+object InclusiveRangeTest extends RangeTest("inclusive") {
+ override def myGen = for (r <- genReasonableSizeRange) yield r.inclusive
+}
+
+object ByOneRangeTest extends RangeTest("byOne") {
+ override def myGen = genSmallRange
+}
+
+object InclusiveByOneRangeTest extends RangeTest("inclusiveByOne") {
+ override def myGen = for (r <- genSmallRange) yield r.inclusive
+}
+
+object SmallValuesRange extends RangeTest("smallValues") {
+ override def myGen = genSmallRange
+}
+
+object TooLargeRange extends Properties("Too Large Range") {
+ val genTooLargeStart = for {
+ start <- choose(-Int.MinValue, 0)
+ } yield start
+
+ property("Too large range throws exception") = forAll(genTooLargeStart) { start =>
+ try {
+ val r = Range.inclusive(start, Int.MaxValue, 1)
+ println("how here? r = " + r.toString)
+ false
+ }
+ catch { case _: IllegalArgumentException => true }
+ }
+}
+
+object Test extends Properties("Range") {
+ import org.scalacheck.{ Test => STest }
+
+ List(NormalRangeTest, InclusiveRangeTest, ByOneRangeTest, InclusiveByOneRangeTest, TooLargeRange) foreach { ps =>
+ STest.checkProperties(STest.Params(testCallback = ConsoleReporter(0)), ps)
+ }
+}
+
+/* Mini-benchmark
+def testRange(i: Int, j: Int, k: Int) = {
+ var count = 0
+ for {
+ vi <- 0 to i
+ vj <- 0 to j
+ vk <- 0 to k
+ } { count += 1 }
+}
+
+testRange(10, 1000, 10000)
+testRange(10000, 1000, 10)
+*/
+
diff --git a/test/files/scalacheck/substringTests.scala b/test/files/scalacheck/substringTests.scala index 76260b9dd2..a48356e1fa 100644 --- a/test/files/scalacheck/substringTests.scala +++ b/test/files/scalacheck/substringTests.scala @@ -6,11 +6,11 @@ object Test extends Properties("String") { property("endsWith") = Prop.forAll((a: String, b: String) => (a+b).endsWith(b)) - property("concat") = Prop.forAll((a: String, b: String) => + property("concat") = Prop.forAll((a: String, b: String) => (a+b).length >= a.length && (a+b).length >= b.length ) - property("substring") = Prop.forAll((a: String, b: String) => + property("substring") = Prop.forAll((a: String, b: String) => (a+b).substring(a.length) == b ) diff --git a/test/files/scalap/caseClass/A.scala b/test/files/scalap/caseClass/A.scala index be86714898..95f9984519 100644 --- a/test/files/scalap/caseClass/A.scala +++ b/test/files/scalap/caseClass/A.scala @@ -1,3 +1,3 @@ case class CaseClass[A <: Seq[Int]](i: A, s: String) { - def foo = 239 + def foo = 239 } diff --git a/test/files/scalap/caseObject/A.scala b/test/files/scalap/caseObject/A.scala index 809341ade9..6a3ff10d75 100644 --- a/test/files/scalap/caseObject/A.scala +++ b/test/files/scalap/caseObject/A.scala @@ -1,3 +1,3 @@ case object CaseObject { - def bar = 239 + def bar = 239 } diff --git a/test/files/scalap/cbnParam/A.scala b/test/files/scalap/cbnParam/A.scala index 978a718032..2f366df64a 100644 --- a/test/files/scalap/cbnParam/A.scala +++ b/test/files/scalap/cbnParam/A.scala @@ -1 +1 @@ -class CbnParam(s: => String) +class CbnParam(s: => String) diff --git a/test/files/specialized/arrays-traits.scala b/test/files/specialized/arrays-traits.scala index ee62622635..de54d22d18 100644 --- a/test/files/specialized/arrays-traits.scala +++ b/test/files/specialized/arrays-traits.scala @@ -28,19 +28,19 @@ class BaseG[T](val arr: Array[T]) extends SuperG[T] { object Test { - + def main(args: Array[String]) { (new BaseS(new Array[String](1)): SuperS[String]).foo println(arrayApplyCount) (new BaseS(new Array[String](1)): SuperS[String]).bar(new Array[String](1)) println(arrayApplyCount) println(arrayUpdateCount) - + (new BaseG(new Array[String](1)): SuperG[String]).foo println(arrayApplyCount) (new BaseG(new Array[String](1)): SuperG[String]).bar(new Array[String](1)) println(arrayApplyCount) println(arrayUpdateCount) } - + } diff --git a/test/files/specialized/arrays.scala b/test/files/specialized/arrays.scala index 505f482486..c946a8fc55 100644 --- a/test/files/specialized/arrays.scala +++ b/test/files/specialized/arrays.scala @@ -15,23 +15,23 @@ class Spec[@specialized(AnyRef) T](a: Array[T]) { object Test { - + def main(args: Array[String]) { val len = 50 - + testSpec(new Array[String](len)) println(arrayApplyCount) - + (new Spec(new Array[String](len)))() println(arrayApplyCount) - + testGeneric(new Array[String](len)) println(arrayApplyCount) - + (new Generic(new Array[String](len)))() println(arrayApplyCount) } - + def testGeneric[T](a: Array[T]) = { var i = 0 var sum = 0 @@ -41,7 +41,7 @@ object Test { } sum } - + def testSpec[@specialized(AnyRef) T](a: Array[T]) = { var i = 0 var sum = 0 @@ -51,5 +51,5 @@ object Test { } sum } - + } diff --git a/test/files/specialized/fft.scala b/test/files/specialized/fft.scala index 76029832a9..62a6a2abb9 100644 --- a/test/files/specialized/fft.scala +++ b/test/files/specialized/fft.scala @@ -1,13 +1,13 @@ /* * http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/ - Modification of Paul Bourkes FFT code by Peter Cusack + Modification of Paul Bourkes FFT code by Peter Cusack to utilise the Microsoft complex type. - This computes an in-place complex-to-complex FFT + This computes an in-place complex-to-complex FFT x and y are the real and imaginary arrays of 2^m points. dir = 1 gives forward transform - dir = -1 gives reverse transform + dir = -1 gives reverse transform */ import Math.{sqrt, pow} @@ -24,19 +24,19 @@ object Test { x(j) = tmp } - def times(x: Complex, y: Complex): Complex = + def times(x: Complex, y: Complex): Complex = (x._1 * y._1 - x._2 * y._2, x._1 * y._2 + x._2 * y._1) - + def div(x: Complex, y: Complex): Complex = { val num = pow(y._1, 2) + pow(y._2, 2) ((x._1 * y._1 + x._2 * y._2)/num, (x._2 * y._1 - x._1 * y._2)/num) } - def div(x: Complex, y: Long) = + def div(x: Complex, y: Long) = (x._1 / y, x._2 / y) - def add(x: Complex, y: Complex) = + def add(x: Complex, y: Complex) = (x._1 + y._1, x._2 + y._2) def minus(x: Complex, y: Complex) = @@ -49,8 +49,8 @@ object Test { /*Calculate the number of points */ n = 1 - for (i <- 0l until m) - n <<= 1 + for (i <- 0l until m) + n <<= 1 /* Do the bit reversal */ i2 = n >> 1 @@ -86,7 +86,7 @@ object Test { for (i <- j.until(n, l2)) { i1 = i + l1; t1 = times(u, x(i1.toInt)) - x(i1.toInt) = minus(x(i.toInt), t1) + x(i1.toInt) = minus(x(i.toInt), t1) x(i.toInt) = add(x(i.toInt), t1) } @@ -97,7 +97,7 @@ object Test { c = (c._1, sqrt( (1.0 - c._1) / 2.0 )) // if (dir == 1) // c.imag(-c.imag()); - if (dir == 1) + if (dir == 1) c = (c._1, -c._2) // c.real(sqrt((1.0 + c.real()) / 2.0)); @@ -107,8 +107,8 @@ object Test { /* Scaling for forward transform */ if (dir == 1) { for (i <- 0l until n) - x(i.toInt) = div(x(i.toInt), n) - } + x(i.toInt) = div(x(i.toInt), n) + } } def run() { diff --git a/test/files/specialized/spec-ame.scala b/test/files/specialized/spec-ame.scala index 45e88266eb..79ee4217ed 100644 --- a/test/files/specialized/spec-ame.scala +++ b/test/files/specialized/spec-ame.scala @@ -1,13 +1,13 @@ // ticket #3432 object Test { trait B[@specialized(Int) T] { - def value: T + def value: T } - class A[@specialized(Int) T](x: T) { - def foo: B[T] = new B[T] { - def value = x - } + class A[@specialized(Int) T](x: T) { + def foo: B[T] = new B[T] { + def value = x + } } def main(args: Array[String]) { diff --git a/test/files/specialized/spec-init.scala b/test/files/specialized/spec-init.scala index 94cd0ee82b..5f27062ed2 100644 --- a/test/files/specialized/spec-init.scala +++ b/test/files/specialized/spec-init.scala @@ -36,7 +36,7 @@ object Test { (new TouchGlobal(new Object)) Global.msg = "ok" // reset the value (new TouchGlobal(42)) - + println(runtime.BoxesRunTime.integerBoxCount) } } diff --git a/test/files/specialized/spec-matrix.scala b/test/files/specialized/spec-matrix.scala index fb3ac91481..9e04019446 100644 --- a/test/files/specialized/spec-matrix.scala +++ b/test/files/specialized/spec-matrix.scala @@ -3,7 +3,7 @@ class Matrix[@specialized A: ClassManifest](val rows: Int, val cols: Int) { private val arr: Array[Array[A]] = new Array[Array[A]](rows, cols) - + def apply(i: Int, j: Int): A = { if (i < 0 || i >= rows || j < 0 || j >= cols) throw new NoSuchElementException("Indexes out of bounds: " + (i, j)) @@ -29,7 +29,7 @@ object Test { def main(args: Array[String]) { val m = randomMatrix(200, 100) val n = randomMatrix(100, 200) - + val p = mult(m, n) println(p(0, 0)) println("Boxed doubles: " + runtime.BoxesRunTime.doubleBoxCount) @@ -38,7 +38,7 @@ object Test { def randomMatrix(n: Int, m: Int) = { val r = new util.Random(10) - val x = new Matrix[Double](n, m) + val x = new Matrix[Double](n, m) for (i <- 0 until n; j <- 0 until m) x(i, j) = (r.nextInt % 1000).toDouble x @@ -46,7 +46,7 @@ object Test { def printMatrix[Double](m: Matrix[Double]) { for (i <- 0 until m.rows) { - for (j <- 0 until m.cols) + for (j <- 0 until m.cols) print("%5.3f ".format(m(i, j))) println } @@ -56,7 +56,7 @@ object Test { val p = new Matrix[T](m.rows, n.cols) import num._ - for (i <- 0 until m.rows) + for (i <- 0 until m.rows) for (j <- 0 until n.cols) { var sum = num.zero for (k <- 0 until n.rows) @@ -68,7 +68,7 @@ object Test { def mult(m: Matrix[Double], n: Matrix[Double]) = { val p = new Matrix[Double](m.rows, n.cols) - for (i <- 0 until m.rows) + for (i <- 0 until m.rows) for (j <- 0 until n.cols) { var sum = 0.0 for (k <- 0 until n.rows) diff --git a/test/files/specialized/spec-overrides.scala b/test/files/specialized/spec-overrides.scala index 994dd9d245..90dd5a4e72 100644 --- a/test/files/specialized/spec-overrides.scala +++ b/test/files/specialized/spec-overrides.scala @@ -17,6 +17,6 @@ object Test extends App { assert(d2.default == 1.0, d2.default) assert((d2: Base[_]).default == 1.0, (d2: Base[_]).default) assert((d2: D1).default == 1.0, (d2: D1).default) - + println(runtime.BoxesRunTime.integerBoxCount) } diff --git a/test/files/specialized/spec-patmatch.scala b/test/files/specialized/spec-patmatch.scala index 909629455d..979d143fe2 100644 --- a/test/files/specialized/spec-patmatch.scala +++ b/test/files/specialized/spec-patmatch.scala @@ -46,7 +46,7 @@ object Test { (new Foo).test(42.0) (new Foo).test(42.0f) (new Foo).test(new Object) - + println(runtime.BoxesRunTime.integerBoxCount) } diff --git a/test/files/specialized/spec-super.scala b/test/files/specialized/spec-super.scala index 056a7712f0..a77f65b2cf 100644 --- a/test/files/specialized/spec-super.scala +++ b/test/files/specialized/spec-super.scala @@ -7,13 +7,13 @@ object Test { val i = new Extended(1) println(i.foo) //infinite loop with StackOverflowError - + println(runtime.BoxesRunTime.integerBoxCount) } } -class Base[@specialized(Int) T](val t: T) { - def foo() :T = t +class Base[@specialized(Int) T](val t: T) { + def foo() :T = t } class Extended [@specialized(Int) T](t: T) extends Base[T](t) { override def foo() :T = super.foo diff --git a/test/files/specialized/spec-t3896.scala b/test/files/specialized/spec-t3896.scala index 89326b4284..605ed0df9d 100644 --- a/test/files/specialized/spec-t3896.scala +++ b/test/files/specialized/spec-t3896.scala @@ -1,7 +1,7 @@ // see ticket #3896. Tests interaction between overloading, specialization and default params trait Atomic[@specialized(Boolean) T] { def x: T - + // crash depends on the overloading: if second method is "g", no crash. def f(fn: T => T): Boolean = f(fn(x)) def f[R](a: T, b: R = true) = b @@ -14,7 +14,7 @@ object Test { val x = e.f( (a : Boolean) => !a ) // ok println( e.f( (a : Boolean) => !a ) toString ) // ok println( e.f( (a : Boolean) => !a) ) // compiler crash - + println(runtime.BoxesRunTime.integerBoxCount) } } diff --git a/test/files/specialized/td3651.scala b/test/files/specialized/td3651.scala index 117710b6dc..19a4ab616c 100644 --- a/test/files/specialized/td3651.scala +++ b/test/files/specialized/td3651.scala @@ -11,7 +11,7 @@ object Test { val b: Base[Double] = new Derived(10) b.a println(runtime.BoxesRunTime.doubleBoxCount) - + val der = new Derived(10) der.a println(runtime.BoxesRunTime.doubleBoxCount) diff --git a/test/instrumented/library/scala/runtime/BoxesRunTime.java b/test/instrumented/library/scala/runtime/BoxesRunTime.java index 9df2f81bc9..797e9f89dd 100644 --- a/test/instrumented/library/scala/runtime/BoxesRunTime.java +++ b/test/instrumented/library/scala/runtime/BoxesRunTime.java @@ -30,9 +30,9 @@ import scala.math.ScalaNumber; * @contributor Stepan Koltsov * @version 2.0 */ public final class BoxesRunTime -{ +{ private static final int CHAR = 0, BYTE = 1, SHORT = 2, INT = 3, LONG = 4, FLOAT = 5, DOUBLE = 6, OTHER = 7; - + private static int typeCode(Object a) { if (a instanceof java.lang.Integer) return INT; if (a instanceof java.lang.Byte) return BYTE; @@ -43,13 +43,13 @@ public final class BoxesRunTime if (a instanceof java.lang.Float) return FLOAT; return OTHER; } - + private static String boxDescription(Object a) { return "" + a.getClass().getSimpleName() + "(" + a + ")"; } - + /* BOXING ... BOXING ... BOXING ... BOXING ... BOXING ... BOXING ... BOXING ... BOXING */ - + public static int booleanBoxCount = 0; public static int characterBoxCount = 0; public static int byteBoxCount = 0; @@ -58,63 +58,63 @@ public final class BoxesRunTime public static int longBoxCount = 0; public static int floatBoxCount = 0; public static int doubleBoxCount = 0; - + public static java.lang.Boolean boxToBoolean(boolean b) { booleanBoxCount++; return java.lang.Boolean.valueOf(b); } - + public static java.lang.Character boxToCharacter(char c) { characterBoxCount++; return java.lang.Character.valueOf(c); } - + public static java.lang.Byte boxToByte(byte b) { byteBoxCount++; return java.lang.Byte.valueOf(b); } - + public static java.lang.Short boxToShort(short s) { shortBoxCount++; return java.lang.Short.valueOf(s); } - + public static java.lang.Integer boxToInteger(int i) { integerBoxCount++; return java.lang.Integer.valueOf(i); } - + public static java.lang.Long boxToLong(long l) { longBoxCount++; return java.lang.Long.valueOf(l); } - + public static java.lang.Float boxToFloat(float f) { floatBoxCount++; return java.lang.Float.valueOf(f); } - + public static java.lang.Double boxToDouble(double d) { doubleBoxCount++; // System.out.println("box " + d); // (new Throwable()).printStackTrace(); return java.lang.Double.valueOf(d); } - + /* UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING */ - + public static boolean unboxToBoolean(Object b) { return b == null ? false : ((java.lang.Boolean)b).booleanValue(); } - + public static char unboxToChar(Object c) { return c == null ? 0 : ((java.lang.Character)c).charValue(); } - + public static byte unboxToByte(Object b) { return b == null ? 0 : ((java.lang.Byte)b).byteValue(); } - + public static short unboxToShort(Object s) { return s == null ? 0 : ((java.lang.Short)s).shortValue(); } @@ -122,22 +122,22 @@ public final class BoxesRunTime public static int unboxToInt(Object i) { return i == null ? 0 : ((java.lang.Integer)i).intValue(); } - + public static long unboxToLong(Object l) { return l == null ? 0 : ((java.lang.Long)l).longValue(); } - + public static float unboxToFloat(Object f) { return f == null ? 0.0f : ((java.lang.Float)f).floatValue(); } - + public static double unboxToDouble(Object d) { // System.out.println("unbox " + d); return d == null ? 0.0d : ((java.lang.Double)d).doubleValue(); } /* COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON */ - + private static int eqTypeCode(Number a) { if ((a instanceof java.lang.Integer) || (a instanceof java.lang.Byte)) return INT; if (a instanceof java.lang.Long) return LONG; @@ -146,8 +146,8 @@ public final class BoxesRunTime if (a instanceof java.lang.Float) return FLOAT; return OTHER; } - - public static boolean equals(Object x, Object y) { + + public static boolean equals(Object x, Object y) { if (x == y) return true; return equals2(x, y); } @@ -162,10 +162,10 @@ public final class BoxesRunTime return equalsCharObject((java.lang.Character)x, y); if (x == null) return y == null; - + return x.equals(y); } - + public static boolean equalsNumObject(java.lang.Number xn, Object y) { if (y instanceof java.lang.Number) return equalsNumNum(xn, (java.lang.Number)y); @@ -173,10 +173,10 @@ public final class BoxesRunTime return equalsNumChar(xn, (java.lang.Character)y); if (xn == null) return y == null; - + return xn.equals(y); } - + public static boolean equalsNumNum(java.lang.Number xn, java.lang.Number yn) { int xcode = eqTypeCode(xn); int ycode = eqTypeCode(yn); @@ -195,10 +195,10 @@ public final class BoxesRunTime } if (xn == null) return yn == null; - + return xn.equals(yn); } - + public static boolean equalsCharObject(java.lang.Character xc, Object y) { if (y instanceof java.lang.Character) return xc.charValue() == ((java.lang.Character)y).charValue(); @@ -206,7 +206,7 @@ public final class BoxesRunTime return equalsNumChar((java.lang.Number)y, xc); if (xc == null) return y == null; - + return xc.equals(y); } @@ -224,11 +224,11 @@ public final class BoxesRunTime default: if (xn == null) return yc == null; - + return xn.equals(yc); } } - + /** Hashcode algorithm is driven by the requirements imposed * by primitive equality semantics, namely that equal objects * have equal hashCodes. The first priority are the integral/char @@ -262,16 +262,16 @@ public final class BoxesRunTime else return n.hashCode(); } public static int hashFromDouble(java.lang.Double n) { - int iv = n.intValue(); + int iv = n.intValue(); double dv = n.doubleValue(); if (iv == dv) return iv; - + long lv = n.longValue(); if (lv == dv) return java.lang.Long.valueOf(lv).hashCode(); else return n.hashCode(); } public static int hashFromFloat(java.lang.Float n) { - int iv = n.intValue(); + int iv = n.intValue(); float fv = n.floatValue(); if (iv == fv) return iv; @@ -289,9 +289,9 @@ public final class BoxesRunTime if (a instanceof Number) return hashFromNumber((Number)a); else return a.hashCode(); } - + /* OPERATORS ... OPERATORS ... OPERATORS ... OPERATORS ... OPERATORS ... OPERATORS ... OPERATORS ... OPERATORS */ - + /** arg1 + arg2 */ public static Object add(Object arg1, Object arg2) throws NoSuchMethodException { int code1 = typeCode(arg1); @@ -518,7 +518,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + /** -arg */ public static Object negate(Object arg) throws NoSuchMethodException { int code = typeCode(arg); @@ -540,7 +540,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + /** +arg */ public static Object positive(Object arg) throws NoSuchMethodException { int code = typeCode(arg); @@ -650,7 +650,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + /** ~arg */ public static Object complement(Object arg) throws NoSuchMethodException { int code = typeCode(arg); @@ -664,7 +664,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + /** !arg */ public static Object takeNot(Object arg) throws NoSuchMethodException { if (arg instanceof Boolean) { @@ -672,15 +672,15 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + public static Object testEqual(Object arg1, Object arg2) throws NoSuchMethodException { return boxToBoolean(arg1 == arg2); } - + public static Object testNotEqual(Object arg1, Object arg2) throws NoSuchMethodException { return boxToBoolean(arg1 != arg2); } - + public static Object testLessThan(Object arg1, Object arg2) throws NoSuchMethodException { int code1 = typeCode(arg1); int code2 = typeCode(arg2); @@ -707,7 +707,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + public static Object testLessOrEqualThan(Object arg1, Object arg2) throws NoSuchMethodException { int code1 = typeCode(arg1); int code2 = typeCode(arg2); @@ -734,7 +734,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + public static Object testGreaterOrEqualThan(Object arg1, Object arg2) throws NoSuchMethodException { int code1 = typeCode(arg1); int code2 = typeCode(arg2); @@ -761,7 +761,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + public static Object testGreaterThan(Object arg1, Object arg2) throws NoSuchMethodException { int code1 = typeCode(arg1); int code2 = typeCode(arg2); @@ -788,7 +788,7 @@ public final class BoxesRunTime } throw new NoSuchMethodException(); } - + /** arg.toChar */ public static java.lang.Character toCharacter(Object arg) throws NoSuchMethodException { if (arg instanceof java.lang.Integer) return boxToCharacter((char)unboxToInt(arg)); @@ -872,5 +872,5 @@ public final class BoxesRunTime if (arg instanceof java.lang.Short) return boxToDouble((double)unboxToShort(arg)); throw new NoSuchMethodException(); } - + } diff --git a/test/instrumented/library/scala/runtime/ScalaRunTime.scala b/test/instrumented/library/scala/runtime/ScalaRunTime.scala index 7c89beca61..a8a74dd8ab 100644 --- a/test/instrumented/library/scala/runtime/ScalaRunTime.scala +++ b/test/instrumented/library/scala/runtime/ScalaRunTime.scala @@ -25,17 +25,17 @@ import java.lang.reflect.{ Modifier, Method => JMethod } */ object ScalaRunTime { def isArray(x: AnyRef): Boolean = isArray(x, 1) - def isArray(x: Any, atLevel: Int): Boolean = + def isArray(x: Any, atLevel: Int): Boolean = x != null && isArrayClass(x.asInstanceOf[AnyRef].getClass, atLevel) private def isArrayClass(clazz: Class[_], atLevel: Int): Boolean = clazz.isArray && (atLevel == 1 || isArrayClass(clazz.getComponentType, atLevel - 1)) - def isValueClass(clazz: Class[_]) = clazz.isPrimitive() - + def isValueClass(clazz: Class[_]) = clazz.isPrimitive() + var arrayApplyCount = 0 var arrayUpdateCount = 0 - + /** Retrieve generic array element */ def array_apply(xs: AnyRef, idx: Int): Any = { arrayApplyCount += 1 @@ -85,7 +85,7 @@ object ScalaRunTime { case x: Array[Boolean] => x.length case x: Array[Unit] => x.length case null => throw new NullPointerException - } + } def array_clone(xs: AnyRef): AnyRef = xs match { case x: Array[AnyRef] => ArrayRuntime.cloneArray(x) @@ -122,7 +122,7 @@ object ScalaRunTime { } arr } - + // Java bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4071957 // More background at ticket #2318. def ensureAccessible(m: JMethod): JMethod = { @@ -130,10 +130,10 @@ object ScalaRunTime { try m setAccessible true catch { case _: SecurityException => () } } - m + m } - def checkInitialized[T <: AnyRef](x: T): T = + def checkInitialized[T <: AnyRef](x: T): T = if (x == null) throw new UninitializedError else x abstract class Try[+A] { @@ -143,9 +143,9 @@ object ScalaRunTime { def Try[A](block: => A): Try[A] = new Try[A] with Runnable { private var result: A = _ - private var exception: Throwable = + private var exception: Throwable = try { run() ; null } - catch { + catch { case e: ControlThrowable => throw e // don't catch non-local returns etc case e: Throwable => e } @@ -167,7 +167,7 @@ object ScalaRunTime { def _toString(x: Product): String = x.productIterator.mkString(x.productPrefix + "(", ",", ")") - + def _hashCode(x: Product): Int = { import scala.util.MurmurHash._ val arr = x.productArity @@ -187,7 +187,7 @@ object ScalaRunTime { /** Fast path equality method for inlining; used when -optimise is set. */ - @inline def inlinedEquals(x: Object, y: Object): Boolean = + @inline def inlinedEquals(x: Object, y: Object): Boolean = if (x eq y) true else if (x eq null) false else if (x.isInstanceOf[java.lang.Number]) BoxesRunTime.equalsNumObject(x.asInstanceOf[java.lang.Number], y) @@ -198,20 +198,20 @@ object ScalaRunTime { case y: Product if x.productArity == y.productArity => x.productIterator sameElements y.productIterator case _ => false } - + // hashcode ----------------------------------------------------------- // // Note that these are the implementations called by ##, so they // must not call ## themselves. - + @inline def hash(x: Any): Int = if (x.isInstanceOf[java.lang.Number]) BoxesRunTime.hashFromNumber(x.asInstanceOf[java.lang.Number]) else x.hashCode - + @inline def hash(dv: Double): Int = { val iv = dv.toInt if (iv == dv) return iv - + val lv = dv.toLong if (lv == dv) return lv.hashCode @@ -221,7 +221,7 @@ object ScalaRunTime { @inline def hash(fv: Float): Int = { val iv = fv.toInt if (iv == fv) return iv - + val lv = fv.toLong if (lv == fv) return lv.hashCode else fv.hashCode @@ -236,9 +236,9 @@ object ScalaRunTime { @inline def hash(x: Char): Int = x.toInt @inline def hash(x: Boolean): Int = x.hashCode @inline def hash(x: Unit): Int = 0 - + @inline def hash(x: Number): Int = runtime.BoxesRunTime.hashFromNumber(x) - + /** XXX Why is there one boxed implementation in here? It would seem * we should have all the numbers or none of them. */ @@ -263,15 +263,15 @@ object ScalaRunTime { * called on null and (b) depending on the apparent type of an * array, toString may or may not print it in a human-readable form. * - * @param arg the value to stringify + * @param arg the value to stringify * @return a string representation of <code>arg</code> * - */ + */ def stringOf(arg: Any): String = stringOf(arg, scala.Int.MaxValue) - def stringOf(arg: Any, maxElements: Int): String = { + def stringOf(arg: Any, maxElements: Int): String = { def isScalaClass(x: AnyRef) = Option(x.getClass.getPackage) exists (_.getName startsWith "scala.") - + def isTuple(x: AnyRef) = x.getClass.getName matches """^scala\.Tuple(\d+).*""" @@ -315,13 +315,13 @@ object ScalaRunTime { // The try/catch is defense against iterables which aren't actually designed // to be iterated, such as some scala.tools.nsc.io.AbstractFile derived classes. - val s = + val s = try inner(arg) - catch { + catch { case _: StackOverflowError | _: UnsupportedOperationException => arg.toString } - + val nl = if (s contains "\n") "\n" else "" - nl + s + "\n" + nl + s + "\n" } } diff --git a/test/pending/continuations-neg/t3628.scala b/test/pending/continuations-neg/t3628.scala index c56e7752c4..3fdd32a034 100644 --- a/test/pending/continuations-neg/t3628.scala +++ b/test/pending/continuations-neg/t3628.scala @@ -3,7 +3,7 @@ import scala.actors.Actor._ object Test { val impl: Actor = actor { loop { - react { + react { case 1 => impl ! 2 } } diff --git a/test/pending/continuations-run/example0.scala b/test/pending/continuations-run/example0.scala index 44b1331339..de5ea54e9d 100644 --- a/test/pending/continuations-run/example0.scala +++ b/test/pending/continuations-run/example0.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test0.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example1.scala b/test/pending/continuations-run/example1.scala index 195a98e59f..e31d6af88c 100644 --- a/test/pending/continuations-run/example1.scala +++ b/test/pending/continuations-run/example1.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test1.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example16.scala b/test/pending/continuations-run/example16.scala index 5eb64046ed..561f0ab0eb 100644 --- a/test/pending/continuations-run/example16.scala +++ b/test/pending/continuations-run/example16.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test16Printf.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example2.scala b/test/pending/continuations-run/example2.scala index 0d96257c40..730f7cc63e 100644 --- a/test/pending/continuations-run/example2.scala +++ b/test/pending/continuations-run/example2.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test2.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example3.scala b/test/pending/continuations-run/example3.scala index 3f5052a4ad..41cf1cce0c 100644 --- a/test/pending/continuations-run/example3.scala +++ b/test/pending/continuations-run/example3.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test3.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example4.scala b/test/pending/continuations-run/example4.scala index 66c6774791..adcc7aa90e 100644 --- a/test/pending/continuations-run/example4.scala +++ b/test/pending/continuations-run/example4.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test4.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example5.scala b/test/pending/continuations-run/example5.scala index 0994bdee8a..241e8cd069 100644 --- a/test/pending/continuations-run/example5.scala +++ b/test/pending/continuations-run/example5.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test5.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example6.scala b/test/pending/continuations-run/example6.scala index 5207e3fc68..00f84fcd6c 100644 --- a/test/pending/continuations-run/example6.scala +++ b/test/pending/continuations-run/example6.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test6.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example7.scala b/test/pending/continuations-run/example7.scala index fb22387dac..64abc6d9a6 100644 --- a/test/pending/continuations-run/example7.scala +++ b/test/pending/continuations-run/example7.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test7.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example8.scala b/test/pending/continuations-run/example8.scala index 8e21e6c674..a5f953d3fc 100644 --- a/test/pending/continuations-run/example8.scala +++ b/test/pending/continuations-run/example8.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test8.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/example9.scala b/test/pending/continuations-run/example9.scala index 0f27c686f7..09d792c427 100644 --- a/test/pending/continuations-run/example9.scala +++ b/test/pending/continuations-run/example9.scala @@ -1,9 +1,9 @@ // $Id$ object Test { - + def main(args: Array[String]): Any = { examples.continuations.Test9Monads.main(args) } - + }
\ No newline at end of file diff --git a/test/pending/continuations-run/foreach.scala b/test/pending/continuations-run/foreach.scala index 4daade452c..76823e7604 100644 --- a/test/pending/continuations-run/foreach.scala +++ b/test/pending/continuations-run/foreach.scala @@ -5,16 +5,16 @@ import scala.util.continuations._ import scala.util.continuations.Loops._ object Test { - + def main(args: Array[String]): Any = { - - + + reset { - + val list = List(1,2,3,4,5) - + for (x <- list.suspendable) { - + shift { k: (Unit => Unit) => println(x) if (x < 3) @@ -22,12 +22,12 @@ object Test { else println("enough is enough") } - + } - + } - - + + } - + }
\ No newline at end of file diff --git a/test/pending/jvm/actorgc_leak.scala b/test/pending/jvm/actorgc_leak.scala index 5e2b9d51e1..de3e04f1e8 100644 --- a/test/pending/jvm/actorgc_leak.scala +++ b/test/pending/jvm/actorgc_leak.scala @@ -14,7 +14,7 @@ object Test { } } } - + class FatActor extends Actor { def act() { fat = new Array[Int](fatness) diff --git a/test/pending/jvm/cf-attributes.scala b/test/pending/jvm/cf-attributes.scala index b5dd7eb386..9e0e9d95de 100644 --- a/test/pending/jvm/cf-attributes.scala +++ b/test/pending/jvm/cf-attributes.scala @@ -52,14 +52,14 @@ object anonymousFunctions { } object anonymousClasses { - //InnerClass: + //InnerClass: // public abstract #_= #_ of #_; //Foo=class anonymousClasses$Foo of class anonymousClasses$ // public abstract #_= #_ of #_; //Foo$class=class anonymousClasses$Foo$class of class anonymousClasses$ trait Foo { def foo() { println("foo"); } override def toString = getClass.getName } - //InnerClass: + //InnerClass: // public final #_; //class anonymousClasses$$anon$1 of class anonymousClasses$ val x = new Foo() { override def foo() { println("foo (overriden)"); } @@ -105,7 +105,7 @@ trait Test2 { def printClass(cls: Class[_]) { println("\n[[ "+cls.getName+" ]]"); try { printInnerClasses(cls) } - catch { case e: Exception => println(e) } + catch { case e: Exception => println(e) } } } diff --git a/test/pending/jvm/interpreter.scala b/test/pending/jvm/interpreter.scala index 752a129950..f0bc8b5818 100644 --- a/test/pending/jvm/interpreter.scala +++ b/test/pending/jvm/interpreter.scala @@ -29,7 +29,7 @@ val atom = new scala.xml.Atom() class S(override val toString : String) val fish = new S("fish") // Test that arrays pretty print nicely. -val arr = Array("What's", "up", "doc?") +val arr = Array("What's", "up", "doc?") // Test that arrays pretty print nicely, even when we give them type Any val arrInt : Any = Array(1,2,3) // Test that nested arrays are pretty-printed correctly @@ -132,8 +132,8 @@ there // defining and using quoted names should work (ticket #323) -def `match` = 1 -val x = `match` +def `match` = 1 +val x = `match` // multiple classes defined on one line sealed class Exp; class Fact extends Exp; class Term extends Exp @@ -153,6 +153,6 @@ def f(e: Exp) = e match {{ // non-exhaustive warning here interp.interpret("\"after reset\"") interp.interpret("plusOne(5) // should be undefined now") } - + appendix() } diff --git a/test/pending/jvm/javasigs.scala b/test/pending/jvm/javasigs.scala index 48fa37119a..8da59ab0a0 100644 --- a/test/pending/jvm/javasigs.scala +++ b/test/pending/jvm/javasigs.scala @@ -30,7 +30,7 @@ object Scalatest { s.start() s } - + /** Execute cmd, wait for the process to end and pipe it's output to stdout */ def exec(cmd: String) { @@ -50,12 +50,12 @@ object Scalatest { // Test correct java signatures for anonymous classes. Enclosing method attributes should // allow javac to see the type parameters in foo. See #3249. -class A[U] { +class A[U] { def bar[B](x : => B) = x def foo[C](c : C) : C = bar(c) } -object B { +object B { def bar[B](x : => B) = x def foo[C](c : C) : C = { class InnerB(x: C) diff --git a/test/pending/jvm/timeout.scala b/test/pending/jvm/timeout.scala index 3005beab2c..22b3647dce 100644 --- a/test/pending/jvm/timeout.scala +++ b/test/pending/jvm/timeout.scala @@ -16,7 +16,7 @@ object Test extends Application { case 'doTiming => val s = sender reactWithin(500) { - case TIMEOUT => + case TIMEOUT => s ! Timing(System.currentTimeMillis) } } diff --git a/test/pending/neg/bug963.scala b/test/pending/neg/bug963.scala index 430ef090e4..3be0be1b84 100644 --- a/test/pending/neg/bug963.scala +++ b/test/pending/neg/bug963.scala @@ -5,8 +5,8 @@ trait A { } object B { - def f(x : { val y : A }) { x.y.v = x.y.v } - + def f(x : { val y : A }) { x.y.v = x.y.v } + var a : A = _ var b : Boolean = false def y : A = { diff --git a/test/pending/neg/plugin-after-terminal/src/ThePlugin.scala b/test/pending/neg/plugin-after-terminal/src/ThePlugin.scala index f3c913086e..2a4607392f 100644 --- a/test/pending/neg/plugin-after-terminal/src/ThePlugin.scala +++ b/test/pending/neg/plugin-after-terminal/src/ThePlugin.scala @@ -12,7 +12,7 @@ class ThePlugin(val global: Global) extends Plugin { val name = "afterterminal" val description = "Declares one plugin that wants to be after the terminal phase" val components = List[PluginComponent](thePhase) - + private object thePhase extends PluginComponent { val global = ThePlugin.this.global @@ -20,9 +20,9 @@ class ThePlugin(val global: Global) extends Plugin { val phaseName = ThePlugin.this.name - def newPhase(prev: Phase) = new ThePhase(prev) + def newPhase(prev: Phase) = new ThePhase(prev) } - + private class ThePhase(prev: Phase) extends Phase(prev) { def name = ThePlugin.this.name def run {} diff --git a/test/pending/neg/plugin-before-parser/src/ThePlugin.scala b/test/pending/neg/plugin-before-parser/src/ThePlugin.scala index 8714a55dc4..7ca896650d 100644 --- a/test/pending/neg/plugin-before-parser/src/ThePlugin.scala +++ b/test/pending/neg/plugin-before-parser/src/ThePlugin.scala @@ -12,7 +12,7 @@ class ThePlugin(val global: Global) extends Plugin { val name = "beforeparser" val description = "Declares one plugin that wants to be before the parser phase" val components = List[PluginComponent](thePhase) - + private object thePhase extends PluginComponent { val global = ThePlugin.this.global @@ -21,9 +21,9 @@ class ThePlugin(val global: Global) extends Plugin { val phaseName = ThePlugin.this.name - def newPhase(prev: Phase) = new ThePhase(prev) + def newPhase(prev: Phase) = new ThePhase(prev) } - + private class ThePhase(prev: Phase) extends Phase(prev) { def name = ThePlugin.this.name def run {} diff --git a/test/pending/neg/plugin-cyclic-dependency/src/ThePlugin.scala b/test/pending/neg/plugin-cyclic-dependency/src/ThePlugin.scala index 1dfc15cb28..bd94ce60d7 100644 --- a/test/pending/neg/plugin-cyclic-dependency/src/ThePlugin.scala +++ b/test/pending/neg/plugin-cyclic-dependency/src/ThePlugin.scala @@ -12,7 +12,7 @@ class ThePlugin(val global: Global) extends Plugin { val name = "cyclicdependency" val description = "Declares two phases that have a cyclic dependency" val components = List[PluginComponent](thePhase1,thePhase2) - + private object thePhase1 extends PluginComponent { val global = ThePlugin.this.global @@ -20,9 +20,9 @@ class ThePlugin(val global: Global) extends Plugin { val phaseName = ThePlugin.this.name + "1" - def newPhase(prev: Phase) = new ThePhase(prev) + def newPhase(prev: Phase) = new ThePhase(prev) } - + private object thePhase2 extends PluginComponent { val global = ThePlugin.this.global @@ -30,9 +30,9 @@ class ThePlugin(val global: Global) extends Plugin { val phaseName = ThePlugin.this.name + "2" - def newPhase(prev: Phase) = new ThePhase(prev) + def newPhase(prev: Phase) = new ThePhase(prev) } - + private class ThePhase(prev: Phase) extends Phase(prev) { def name = ThePlugin.this.name def run {} diff --git a/test/pending/neg/plugin-multiple-rafter/src/ThePlugin.scala b/test/pending/neg/plugin-multiple-rafter/src/ThePlugin.scala index 4c761517c1..819176fa88 100644 --- a/test/pending/neg/plugin-multiple-rafter/src/ThePlugin.scala +++ b/test/pending/neg/plugin-multiple-rafter/src/ThePlugin.scala @@ -12,7 +12,7 @@ class ThePlugin(val global: Global) extends Plugin { val name = "multi-rafter" val description = "" val components = List[PluginComponent](thePhase) - + private object thePhase extends PluginComponent { val global = ThePlugin.this.global @@ -20,9 +20,9 @@ class ThePlugin(val global: Global) extends Plugin { override val runsRightAfter = Some("explicitouter") val phaseName = ThePlugin.this.name - def newPhase(prev: Phase) = new ThePhase(prev) + def newPhase(prev: Phase) = new ThePhase(prev) } - + private class ThePhase(prev: Phase) extends Phase(prev) { def name = ThePlugin.this.name def run {} diff --git a/test/pending/neg/plugin-rafter-before-1/src/ThePlugin.scala b/test/pending/neg/plugin-rafter-before-1/src/ThePlugin.scala index c42a914066..81ba85ae80 100644 --- a/test/pending/neg/plugin-rafter-before-1/src/ThePlugin.scala +++ b/test/pending/neg/plugin-rafter-before-1/src/ThePlugin.scala @@ -12,7 +12,7 @@ class ThePlugin(val global: Global) extends Plugin { val name = "rafter-before-1" val description = "" val components = List[PluginComponent](thePhase1) - + private object thePhase1 extends PluginComponent { val global = ThePlugin.this.global @@ -20,9 +20,9 @@ class ThePlugin(val global: Global) extends Plugin { override val runsBefore = List[String]("erasure") val phaseName = ThePlugin.this.name - def newPhase(prev: Phase) = new ThePhase(prev) + def newPhase(prev: Phase) = new ThePhase(prev) } - + private class ThePhase(prev: Phase) extends Phase(prev) { def name = ThePlugin.this.name def run {} diff --git a/test/pending/neg/plugin-rightafter-terminal/src/ThePlugin.scala b/test/pending/neg/plugin-rightafter-terminal/src/ThePlugin.scala index 47dd06ec8a..9d6d30b327 100644 --- a/test/pending/neg/plugin-rightafter-terminal/src/ThePlugin.scala +++ b/test/pending/neg/plugin-rightafter-terminal/src/ThePlugin.scala @@ -12,18 +12,18 @@ class ThePlugin(val global: Global) extends Plugin { val name = "rightafterterminal" val description = "Declares one plugin that wants to be right after the terminal phase" val components = List[PluginComponent](thePhase) - + private object thePhase extends PluginComponent { val global = ThePlugin.this.global val runsAfter = List[String]() override val runsRightAfter = Some("terminal") - + val phaseName = ThePlugin.this.name - def newPhase(prev: Phase) = new ThePhase(prev) + def newPhase(prev: Phase) = new ThePhase(prev) } - + private class ThePhase(prev: Phase) extends Phase(prev) { def name = ThePlugin.this.name def run {} diff --git a/test/pending/neg/t0653.scala b/test/pending/neg/t0653.scala index 48f39447ba..26204a8b40 100644 --- a/test/pending/neg/t0653.scala +++ b/test/pending/neg/t0653.scala @@ -7,11 +7,11 @@ class Fix[Op[A]](x : Op[Fix[Op]]) class FixTest { // works // val zero = new Fix[One](new One) - + // don't work: val two = new Fix(new Two) // this was what I found here val zero = new Fix(new One) // this seems like something which could plausibly work - + // neg/t0653.scala:12: error: no type parameters for constructor Fix: (x: Op[Fix[Op[A]]])Fix[Op[A]] exist so that it can be applied to arguments (Two[Nothing,Nothing]) // --- because --- // argument expression's type is not compatible with formal parameter type; @@ -24,7 +24,7 @@ class FixTest { // argument expression's type is not compatible with formal parameter type; // found : One[Nothing] // required: ?Op[ Fix[?Op[ A ]] ] - // val zero = new Fix(new One) // this seems like something which could plausibly work + // val zero = new Fix(new One) // this seems like something which could plausibly work // ^ - // two errors found + // two errors found } diff --git a/test/pending/neg/t2080.scala b/test/pending/neg/t2080.scala index 0880a40faa..3f4306c091 100644 --- a/test/pending/neg/t2080.scala +++ b/test/pending/neg/t2080.scala @@ -14,4 +14,4 @@ object C extends B { } override def f(x : T) : T = { x.g; x } } -//It compiles without errors, but T in B and T in C are completely unrelated types. +//It compiles without errors, but T in B and T in C are completely unrelated types. diff --git a/test/pending/neg/t3152.scala b/test/pending/neg/t3152.scala index 27a314c484..3abc772076 100644 --- a/test/pending/neg/t3152.scala +++ b/test/pending/neg/t3152.scala @@ -3,6 +3,6 @@ package test object NotEnclosing { def main(args : Array[String]) : Unit = {} def compare[T](x: Ordered[T], y: Ordered[T]) = error("") - def mkEx: Ordered[_] = error("") - compare(mkEx, mkEx) + def mkEx: Ordered[_] = error("") + compare(mkEx, mkEx) } diff --git a/test/pending/neg/tcpoly_typealias_eta.scala b/test/pending/neg/tcpoly_typealias_eta.scala index 0fb2c2d33e..033c911f7c 100644 --- a/test/pending/neg/tcpoly_typealias_eta.scala +++ b/test/pending/neg/tcpoly_typealias_eta.scala @@ -12,7 +12,7 @@ trait A3 { trait FooCov[+x] trait FooCon[-x] -trait FooBound[+x <: String] +trait FooBound[+x <: String] trait BOk1 extends A { type m/*[+x]*/ = FooCov/*[x]*/ @@ -30,8 +30,8 @@ trait BOk4 extends A3 { type m/*[+x]*/ = FooCov/*[x]*/ // weaker variance } -// there are two aspects to check: - // does type alias signature (not considering RHS) correspond to abstract type member in super class +// there are two aspects to check: + // does type alias signature (not considering RHS) correspond to abstract type member in super class // does RHS correspond to the type alias sig trait BInv extends A{ type m/*[x]*/ = FooCov/*[x]*/ // error: invariant x in alias def diff --git a/test/pending/neg/tcpoly_variance_enforce_getter_setter.scala b/test/pending/neg/tcpoly_variance_enforce_getter_setter.scala index 321d392cc4..deafba8d8a 100644 --- a/test/pending/neg/tcpoly_variance_enforce_getter_setter.scala +++ b/test/pending/neg/tcpoly_variance_enforce_getter_setter.scala @@ -1,12 +1,12 @@ trait coll[+m[+x]] -class FooInvar[x] +class FooInvar[x] class FooContra[-x] class FooCov[+x] object test { var ok: coll[FooCov] = _ - + var x: coll[FooInvar] = _ // TODO: error should be reported only once instead of separately for getter and setter var y: coll[FooContra] = _ } diff --git a/test/pending/neg/type-diagnostics.scala b/test/pending/neg/type-diagnostics.scala index 7f9a151dcd..a3a9172bb2 100644 --- a/test/pending/neg/type-diagnostics.scala +++ b/test/pending/neg/type-diagnostics.scala @@ -7,5 +7,5 @@ object TooManyParens { // Unspecified value parameter elem. // def f = Map(1 -> 2).keySet() // ^ - + } diff --git a/test/pending/pos/bug1357.scala b/test/pending/pos/bug1357.scala index fcdecb3ad3..7bc6d45034 100644 --- a/test/pending/pos/bug1357.scala +++ b/test/pending/pos/bug1357.scala @@ -6,7 +6,7 @@ object NonEmptyCons { object Main { type BT[+H, +T <: Tuple2[Tuple2[H, T], Tuple2[H, T]]] = Tuple2[H, T] - + // type T = Tuple2[String,String] type BinaryTree[+E] = BT[E, T forSome { type T <: Tuple2[BT[E, T], BT[E, T]] }] diff --git a/test/pending/pos/misc/B.scala b/test/pending/pos/misc/B.scala index 3a080e4712..afc30944f5 100644 --- a/test/pending/pos/misc/B.scala +++ b/test/pending/pos/misc/B.scala @@ -1,7 +1,7 @@ package test class B { - + def myA = new A() } diff --git a/test/pending/pos/no-widen-locals.scala b/test/pending/pos/no-widen-locals.scala index ba568f64eb..013e63f0a2 100644 --- a/test/pending/pos/no-widen-locals.scala +++ b/test/pending/pos/no-widen-locals.scala @@ -8,7 +8,7 @@ object Test { val X2 = 10 val X3 = 15 val X4 = 20 - + (x: @switch) match { case X1 => 1 case X2 => 2 diff --git a/test/pending/pos/sig/sigs.scala b/test/pending/pos/sig/sigs.scala index 72a293d0e6..bdb72a09bb 100644 --- a/test/pending/pos/sig/sigs.scala +++ b/test/pending/pos/sig/sigs.scala @@ -1,5 +1,5 @@ package test -class T { +class T { def foo[T <: String](x: T): T = x def bar[T](x: T): T = x class Inner { diff --git a/test/pending/pos/t0621.scala b/test/pending/pos/t0621.scala index d178bed0fb..1d2531c4bd 100644 --- a/test/pending/pos/t0621.scala +++ b/test/pending/pos/t0621.scala @@ -1,7 +1,7 @@ object Test { val x1 : List[T] forSome { type T } = List(42) val w1 = x1 match { case y : List[u] => ((z : u) => z)(y.head) } - + val x2 : T forSome { type T } = 42 val w2 = x2 match { case y : u => ((z : u) => z)(y) } } diff --git a/test/pending/pos/t1380/hallo.scala b/test/pending/pos/t1380/hallo.scala index 27ecd9fb8b..bb8fff2333 100644 --- a/test/pending/pos/t1380/hallo.scala +++ b/test/pending/pos/t1380/hallo.scala @@ -1,3 +1,3 @@ object hallo { - def main(args:Array[String]) = println("hallo") + def main(args:Array[String]) = println("hallo") } diff --git a/test/pending/pos/t1786.scala b/test/pending/pos/t1786.scala index d0cf8c7bac..dca2edaab4 100644 --- a/test/pending/pos/t1786.scala +++ b/test/pending/pos/t1786.scala @@ -1,10 +1,10 @@ /** This a consequence of the current type checking algorithm, where bounds * are checked only after variables are instantiated. I believe this will change once we go to contraint-based type inference. Assigning low priority until then. - * + * * */ class SomeClass(val intValue:Int) -class MyClass[T <: SomeClass](val myValue:T) +class MyClass[T <: SomeClass](val myValue:T) object Test extends Application { def myMethod(i:MyClass[_]) { diff --git a/test/pending/pos/t2173.scala b/test/pending/pos/t2173.scala index bbcca39826..cf1913d88b 100644 --- a/test/pending/pos/t2173.scala +++ b/test/pending/pos/t2173.scala @@ -4,9 +4,9 @@ class A[+U >: Null] { } // with the following error: -// +// // type arguments [A.this.R[X]] do not conform to class A's type parameter bounds [+U >: Null] -// +// // However, because type R[+X>:Null] is identical to X, it should carry X bounds and R[X] lower bound should be known to be X's lower bound, i.e. Null. -// +// // The same problem occurs with upper bounds. diff --git a/test/pending/pos/those-kinds-are-high.scala b/test/pending/pos/those-kinds-are-high.scala index d3ee2bf308..3012e72d7e 100644 --- a/test/pending/pos/those-kinds-are-high.scala +++ b/test/pending/pos/those-kinds-are-high.scala @@ -4,18 +4,18 @@ class A { class C1[T] extends Template[C1] with Container[T] class C2[T] extends Template[C2] with Container[T] - + /** Target expression: * List(new C1[String], new C2[String]) */ - + // Here's what would ideally be inferred. // // scala> :type List[Template[Container] with Container[String]](new C1[String], new C2[String]) // List[Template[Container] with Container[java.lang.String]] // // Here's what it does infer. - // + // // scala> :type List(new C1[String], new C2[String]) // <console>:8: error: type mismatch; // found : C1[String] @@ -27,11 +27,11 @@ class A { // // List[Container[String] with Template[Container[Any] with Template[Container[Any] with Template[Any]]] // - + /** Working version explicitly typed. */ def fExplicit = List[Template[Container] with Container[String]](new C1[String], new C2[String]) - + // nope // def fFail = List(new C1[String], new C2[String]) } diff --git a/test/pending/pos/unappgadteval.scala b/test/pending/pos/unappgadteval.scala index fce54723a1..89f6cabc43 100644 --- a/test/pending/pos/unappgadteval.scala +++ b/test/pending/pos/unappgadteval.scala @@ -21,30 +21,30 @@ object Suc { def unapply(a: Suc) = true } class Suc() extends Term[Int => Int] // Environments : -abstract class Env { +abstract class Env { def apply[a](v: Var[a]): a def extend[a](v: Var[a], x : a) = new Env { - def apply[b](w: Var[b]): b = w match { + def apply[b](w: Var[b]): b = w match { case _ : v.type => x // v eq w, hence a = b case _ => Env.this.apply(w) }} } -object empty extends Env { - def apply[a](x: Var[a]): a = throw new Error("not found : "+x.name) +object empty extends Env { + def apply[a](x: Var[a]): a = throw new Error("not found : "+x.name) } object Test { val v1 = new Var[util.Random]("random") val v2 = new Var[Int]("Int") val v3 = new Var[List[String]]("list") - + val anEnv = (empty .extend(v1, new util.Random) .extend(v2, 58) .extend(v3, Nil) ) - + def eval[a](t: Term[a], env : Env): a = t match { // First three work case v : Var[b] => env(v) // a = b @@ -54,9 +54,9 @@ object Test { // Next one fails like: // // found : (Int) => Int - // required: a + // required: a case i @ Suc() => { (y: Int) => y + 1 } // a = Int => Int - + // Next one fails like: // // error: '=>' expected but '[' found. @@ -64,11 +64,11 @@ object Test { // ^ case f @ Lam[b,c](x, e) => { (y: b) => eval(e, env.extend(x, y)) } // a = b=>c } - + val f1 = () => eval(v1, anEnv) val f2 = () => eval(v2, anEnv) val f3 = () => eval(v3, anEnv) - + def main(args: Array[String]): Unit = { println(f1()) println(f2()) diff --git a/test/pending/pos/virt.scala b/test/pending/pos/virt.scala index 6fe21246b0..99dcd747b2 100644 --- a/test/pending/pos/virt.scala +++ b/test/pending/pos/virt.scala @@ -1,9 +1,9 @@ object Virt extends Application { - class Foo { + class Foo { trait Inner <: { val x : Int = 3 } } - class Bar extends Foo { + class Bar extends Foo { trait Inner <: { val y : Int = x } } } diff --git a/test/pending/run/TestFlatMap.scala b/test/pending/run/TestFlatMap.scala index e6fb696aa2..dd5a0a0c2f 100644 --- a/test/pending/run/TestFlatMap.scala +++ b/test/pending/run/TestFlatMap.scala @@ -4,7 +4,7 @@ import scala.util.Random import scala.collection.parallel.CompositeThrowable object Test { - + def main(args: Array[String]) { val N = 1500 val M = 1500 @@ -12,7 +12,7 @@ object Test { var unmatchedRight = new PMHashSet[Int] Range(0, N).foreach{ x => unmatchedLeft += x} Range(0, M).foreach{ x => unmatchedRight += x} - + try { val matches = unmatchedLeft.flatMap{ lind: Int => val dists = unmatchedRight.seq.map{ rind: Int => @@ -25,5 +25,5 @@ object Test { case c: CompositeThrowable => for (t <- c.throwables) println("\n%s\n%s".format(t, t.getStackTrace.mkString("\n"))) } } - + } diff --git a/test/pending/run/bug2318.scala b/test/pending/run/bug2318.scala index cb524471d6..cf81bab1fd 100644 --- a/test/pending/run/bug2318.scala +++ b/test/pending/run/bug2318.scala @@ -2,7 +2,7 @@ import java.security._ object Test { trait Bar { def bar: Unit } - + object Mgr extends SecurityManager { override def checkPermission(perm: Permission) = perm match { case _: java.lang.RuntimePermission => () @@ -11,11 +11,11 @@ object Test { case _ => super.checkPermission(perm) } } - + def bug1() = { val p = Runtime.getRuntime().exec("ls"); type Destroyable = { def destroy() : Unit } - def doDestroy( obj : Destroyable ) : Unit = obj.destroy(); + def doDestroy( obj : Destroyable ) : Unit = obj.destroy(); doDestroy( p ); } def bug2() = { @@ -27,12 +27,12 @@ object Test { val structural = b.asInstanceOf[{ def bar: Unit }] structural.bar } - + def main(args: Array[String]) { // figuring this will otherwise break on windows try bug1() catch { case _: java.io.IOException => () } - + bug2() } } diff --git a/test/pending/run/instanceOfAndTypeMatching.scala b/test/pending/run/instanceOfAndTypeMatching.scala index 60b11ef0c1..e04ae13585 100644 --- a/test/pending/run/instanceOfAndTypeMatching.scala +++ b/test/pending/run/instanceOfAndTypeMatching.scala @@ -6,9 +6,9 @@ object Summary { class Inner { } def f() = { class MethodInner ; new MethodInner } } - + // 1 static issue: - // + // // Given method in MethodInner: def g(other: MethodInner) = () // method1.g(method1) fails to compile with type error. // @@ -20,7 +20,7 @@ object Summary { // traverse a method. // // 4 runtime issues: - // + // // From the outside: inner1.isInstanceOf[outer2.Inner] is true, should (maybe) be false // From inside inner1: inner2.isInstanceOf[Outer.this.Inner] is true, should (maybe) be false // From the outside: inner1 match { case _: outer2.Inner => true ... } is true, should definitely be false @@ -44,13 +44,13 @@ class Outer { def passInner(other: Inner) = () // pass only Inners from this Outer instance def passInner2(other: Outer.this.Inner) = () // same as above def passInnerSharp(other: Outer#Inner) = () // pass any Inner - + def compareSimpleWithTypeMatch(other: Any) = other match { case _: Inner => true case _ => false } def compareSimpleWithInstanceOf(other: Any) = other.isInstanceOf[Inner] - + def compareSharpWithTypeMatch(other: Any) = { other match { case _: Outer#Inner => true @@ -58,16 +58,16 @@ class Outer { } } def compareSharpWithInstanceOf(other: Any) = other.isInstanceOf[Outer#Inner] - + def comparePathWithTypeMatch(other: Any) = other match { case _: Outer.this.Inner => true case _ => false } - def comparePathWithInstanceOf(other: Any) = other.isInstanceOf[Outer.this.Inner] + def comparePathWithInstanceOf(other: Any) = other.isInstanceOf[Outer.this.Inner] } - + def f() = { - class MethodInner { + class MethodInner { def passOuter(other: Outer) = () // pass any Outer def passThisType(other: Outer.this.type) = () // pass only this Outer instance def passInner(other: Inner) = () // pass only Inners from this Outer instance @@ -75,14 +75,14 @@ class Outer { def passInnerSharp(other: Outer#Inner) = () // pass any Inner def passMethodInner(other: MethodInner) = () // pass only MethodInners from this Outer instance // is there any way to refer to Outer#MethodInner? Not that there should be. - + def compareWithInstanceOf(other: Any) = other.isInstanceOf[MethodInner] def compareWithTypeMatch(other: Any) = other match { case _: MethodInner => true case _ => false } } - + new MethodInner } } @@ -94,7 +94,7 @@ object Test { val inner2 = new outer2.Inner val method1 = outer1.f() val method2 = outer2.f() - + def testInnerStatic = { // these should all work inner1.passOuter(outer1) @@ -104,7 +104,7 @@ object Test { inner1.passInner2(inner1) inner1.passInnerSharp(inner1) inner1.passInnerSharp(inner2) - + // these should all fail to compile, and do // // inner1.passThisType(outer2) @@ -113,30 +113,30 @@ object Test { } def testInnerRuntime = { println("testInnerRuntime\n") - + List("These should be true under any scenario: ", - inner1.isInstanceOf[outer1.Inner] , + inner1.isInstanceOf[outer1.Inner] , inner1.isInstanceOf[Outer#Inner] , (inner1: Any) match { case _: Outer#Inner => true ; case _ => false } , (inner1: Any) match { case _: outer1.Inner => true ; case _ => false } , inner1.compareSharpWithTypeMatch(inner2) , inner1.compareSharpWithInstanceOf(inner2) ) foreach println - + List("These should be true under current proposal: ", - inner1.compareSimpleWithInstanceOf(inner2) + inner1.compareSimpleWithInstanceOf(inner2) ) foreach println - + List("These should be false under current proposal: ", inner1.compareSimpleWithTypeMatch(inner2) , - inner1.comparePathWithTypeMatch(inner2) + inner1.comparePathWithTypeMatch(inner2) ) foreach println - - List("These return true but I think should return false: ", + + List("These return true but I think should return false: ", inner1.isInstanceOf[outer2.Inner] , // true inner1.comparePathWithInstanceOf(inner2) // true ) foreach println - + List("These are doing the wrong thing under current proposal", (inner1: Any) match { case _: outer2.Inner => true ; case _ => false } // should be false ) foreach println @@ -159,7 +159,7 @@ object Test { // method1.passMethodInner(method1) // ^ method1.passMethodInner(method1) - + // these should all fail to compile, and do // // method1.passThisType(outer2) @@ -167,24 +167,24 @@ object Test { // method1.passInner2(inner2) // method1.passMethodInner(method2) } - + def testMethodInnerRuntime = { println("\ntestMethodInnerRuntime\n") - + List("These should be true under any scenario: ", method1.compareWithInstanceOf(method1) , - method1.compareWithTypeMatch(method1) + method1.compareWithTypeMatch(method1) ) foreach println - + List("These should be true under current proposal: ", method1.compareWithInstanceOf(method2) ) foreach println - + List("These are doing the wrong thing under current proposal", method1.compareWithTypeMatch(method2) // should be false ) foreach println } - + def main(args: Array[String]): Unit = { testInnerRuntime testMethodInnerRuntime diff --git a/test/pending/run/sigtp.scala b/test/pending/run/sigtp.scala index 3e162cfdba..f8e050dbdc 100644 --- a/test/pending/run/sigtp.scala +++ b/test/pending/run/sigtp.scala @@ -12,6 +12,6 @@ final class Bug[A, B](val key: A) extends BugBase[A, Bug[A, B]] { object Test extends SigTest { def main(args: Array[String]): Unit = { show[BugBase[_, _]]() - show[Bug[_, _]]() + show[Bug[_, _]]() } } diff --git a/test/pending/run/string-reverse.scala b/test/pending/run/string-reverse.scala index 51b16bcd6a..976a970dec 100644 --- a/test/pending/run/string-reverse.scala +++ b/test/pending/run/string-reverse.scala @@ -6,13 +6,13 @@ object Test { val ys = "Les Misérables" val xs2 = new StringBuilder(xs) val ys2 = new StringBuilder(ys) - + def main(args: Array[String]): Unit = { val out = new java.io.PrintStream(System.out, true, "UTF-8") - + out.println("Strings") List(xs, xs.reverse, ys, ys.reverse) foreach (out println _) - + out.println("StringBuilder") out.println(xs2.toString) out.println(xs2.reverseContents().toString) diff --git a/test/pending/run/t0508x.scala b/test/pending/run/t0508x.scala index 0c1ffde3ed..12d3d09711 100644 --- a/test/pending/run/t0508x.scala +++ b/test/pending/run/t0508x.scala @@ -4,12 +4,12 @@ }; def foo[A >: Nothing <: Any, B >: Nothing <: Any, C >: Nothing <: Any] - (unapply1: (A) => Option[(B, C)], v: A): Unit = + (unapply1: (A) => Option[(B, C)], v: A): Unit = unapply1.apply(v) match { - case Some((fst @ _, snd @ _)) => + case Some((fst @ _, snd @ _)) => scala.Predef.println(scala.Tuple2.apply[java.lang.String, java.lang.String]("first: ".+(fst), " second: ".+(snd))) case _ => scala.Predef.println(":(") - } + } Test.this.foo[Test.Foo, String, Int]({ ((eta$0$1: Test.Foo) => Test.this.Foo.unapply(eta$0$1)) }, Test.this.Foo.apply("this might be fun", 10)); diff --git a/test/pending/run/t1980.scala b/test/pending/run/t1980.scala index 38353c6270..71c178d634 100644 --- a/test/pending/run/t1980.scala +++ b/test/pending/run/t1980.scala @@ -2,7 +2,7 @@ // Reported by: extempore Owned by: odersky // Priority: normal Component: Compiler // Keywords: Cc: paulp@… -// Fixed in version: +// Fixed in version: // Description scala> def foo() = { println("foo") ; 5 } diff --git a/test/pending/run/t3609.scala b/test/pending/run/t3609.scala index 030b417044..eb25afd667 100755 --- a/test/pending/run/t3609.scala +++ b/test/pending/run/t3609.scala @@ -11,7 +11,7 @@ object Test extends Application { } // This code prints 1. If we remove comment, then it will print 4. -// Moreover following code prints 3 (which is most strange thing): +// Moreover following code prints 3 (which is most strange thing): object Test2 extends Application { class A diff --git a/test/pending/run/t3857.scala b/test/pending/run/t3857.scala index 94f52f72fe..62bdc39da9 100644 --- a/test/pending/run/t3857.scala +++ b/test/pending/run/t3857.scala @@ -8,6 +8,6 @@ object Test extends SigTest { def main(args: Array[String]): Unit = { show[ScalaGeneric]() show[ScalaGeneric2Trait]() - show[ScalaGeneric2]() + show[ScalaGeneric2]() } } diff --git a/test/pending/run/t4283/IllegalAccess.scala b/test/pending/run/t4283/IllegalAccess.scala index 12de7e4649..33039c9350 100644 --- a/test/pending/run/t4283/IllegalAccess.scala +++ b/test/pending/run/t4283/IllegalAccess.scala @@ -2,7 +2,7 @@ package other object IllegalAccess { def main(args: Array[String]) { - val x = (new test.ScalaBipp).make.get.asInstanceOf[test.ScalaBipp].f() + val x = (new test.ScalaBipp).make.get.asInstanceOf[test.ScalaBipp].f() println(x) val y = (new test.ScalaBipp).make.get.f() println(y) diff --git a/test/pending/scalacheck/process.scala b/test/pending/scalacheck/process.scala index 1e06c4669e..f3aa872361 100644 --- a/test/pending/scalacheck/process.scala +++ b/test/pending/scalacheck/process.scala @@ -1,4 +1,4 @@ -/** process tests. +/** process tests. */ import java.io.{ File, FileNotFoundException, IOException, InputStream, OutputStream, FileInputStream } @@ -11,7 +11,7 @@ import scala.tools.nsc.io.{ File => SFile } /** This has scrounged bits of sbt to flesh it out enough to run. */ package processtest { - + object exit { def fn(code: Int) = System.exit(code) @@ -77,7 +77,7 @@ object IO { class ProcessSpecification extends Properties("Process I/O") { implicit val exitCodeArb: Arbitrary[Array[Byte]] = Arbitrary(Gen.choose(0, 10) flatMap { size => - Gen.resize(size, Arbitrary.arbArray[Byte].arbitrary) + Gen.resize(size, Arbitrary.arbArray[Byte].arbitrary) }) /*property("Correct exit code") = forAll( (exitCode: Byte) => checkExit(exitCode)) diff --git a/test/pending/script/bug2365/Test.scala b/test/pending/script/bug2365/Test.scala index 53581d256b..110dea2ab6 100644 --- a/test/pending/script/bug2365/Test.scala +++ b/test/pending/script/bug2365/Test.scala @@ -17,17 +17,17 @@ object Test for(i <- 0 until 150) println(i + " " + test(A.apply) + " " + test(A2.apply) + " " + test(A3.apply) + " " + test(A3.apply)) } - + def test(withF0: StructF0 => Int): Int = { // Some large jar val jar = File("../../../../lib/scalacheck.jar").toURL // load a class in a separate loader that will be passed to A val loader = new java.net.URLClassLoader(Array(File(".").toURL, jar)) // load a real class to fill perm gen space - Class.forName("org.scalacheck.Properties", true, loader).newInstance + Class.forName("org.scalacheck.Properties", true, loader).newInstance // create a class from another class loader with an apply: Int method val b = Class.forName("B", true, loader).newInstance - + // pass instance to a, which will call apply using structural type reflection. // This should hold on to the class for B, which means bLoader will not get collected withF0(b.asInstanceOf[StructF0]) diff --git a/test/pending/shootout/fasta.check b/test/pending/shootout/fasta.check new file mode 100644 index 0000000000..f1caba0d62 --- /dev/null +++ b/test/pending/shootout/fasta.check @@ -0,0 +1,171 @@ +>ONE Homo sapiens alu +GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA +TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT +AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG +GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG +CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT +GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA +GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA +TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG +AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA +GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT +AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC +AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG +GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC +CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG +AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT +TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA +TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT +GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG +TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT +CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG +CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG +TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA +CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG +AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG +GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC +TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA +TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA +GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT +GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC +ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT +TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC +CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG +CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG +GGCGACAGAGCGAGACTCCG +>TWO IUB ambiguity codes +cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg +tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa +NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt +cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga +gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa +HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca +tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt +tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt +acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct +tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt +gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa +accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt +RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt +tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag +cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg +ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat +actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg +YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa +KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata +aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa +aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg +gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc +tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK +tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt +ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg +ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa +BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt +aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc +tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc +cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac +aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga +tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga +aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD +gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg +ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV +taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa +ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat +gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg +gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa +tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt +tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt +taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca +cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag +aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt +cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt +ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW +attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag +ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa +attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc +tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta +>THREE Homo sapiens frequency +aacacttcaccaggtatcgtgaaggctcaagattacccagagaacctttgcaatataaga +atatgtatgcagcattaccctaagtaattatattctttttctgactcaaagtgacaagcc +ctagtgtatattaaatcggtatatttgggaaattcctcaaactatcctaatcaggtagcc +atgaaagtgatcaaaaaagttcgtacttataccatacatgaattctggccaagtaaaaaa +tagattgcgcaaaattcgtaccttaagtctctcgccaagatattaggatcctattactca +tatcgtgtttttctttattgccgccatccccggagtatctcacccatccttctcttaaag +gcctaatattacctatgcaaataaacatatattgttgaaaattgagaacctgatcgtgat +tcttatgtgtaccatatgtatagtaatcacgcgactatatagtgctttagtatcgcccgt +gggtgagtgaatattctgggctagcgtgagatagtttcttgtcctaatatttttcagatc +gaatagcttctatttttgtgtttattgacatatgtcgaaactccttactcagtgaaagtc +atgaccagatccacgaacaatcttcggaatcagtctcgttttacggcggaatcttgagtc +taacttatatcccgtcgcttactttctaacaccccttatgtatttttaaaattacgttta +ttcgaacgtacttggcggaagcgttattttttgaagtaagttacattgggcagactcttg +acattttcgatacgactttctttcatccatcacaggactcgttcgtattgatatcagaag +ctcgtgatgattagttgtcttctttaccaatactttgaggcctattctgcgaaatttttg +ttgccctgcgaacttcacataccaaggaacacctcgcaacatgccttcatatccatcgtt +cattgtaattcttacacaatgaatcctaagtaattacatccctgcgtaaaagatggtagg +ggcactgaggatatattaccaagcatttagttatgagtaatcagcaatgtttcttgtatt +aagttctctaaaatagttacatcgtaatgttatctcgggttccgcgaataaacgagatag +attcattatatatggccctaagcaaaaacctcctcgtattctgttggtaattagaatcac +acaatacgggttgagatattaattatttgtagtacgaagagatataaaaagatgaacaat +tactcaagtcaagatgtatacgggatttataataaaaatcgggtagagatctgctttgca +attcagacgtgccactaaatcgtaatatgtcgcgttacatcagaaagggtaactattatt +aattaataaagggcttaatcactacatattagatcttatccgatagtcttatctattcgt +tgtatttttaagcggttctaattcagtcattatatcagtgctccgagttctttattattg +ttttaaggatgacaaaatgcctcttgttataacgctgggagaagcagactaagagtcgga +gcagttggtagaatgaggctgcaaaagacggtctcgacgaatggacagactttactaaac +caatgaaagacagaagtagagcaaagtctgaagtggtatcagcttaattatgacaaccct +taatacttccctttcgccgaatactggcgtggaaaggttttaaaagtcgaagtagttaga +ggcatctctcgctcataaataggtagactactcgcaatccaatgtgactatgtaatactg +ggaacatcagtccgcgatgcagcgtgtttatcaaccgtccccactcgcctggggagacat +gagaccacccccgtggggattattagtccgcagtaatcgactcttgacaatccttttcga +ttatgtcatagcaatttacgacagttcagcgaagtgactactcggcgaaatggtattact +aaagcattcgaacccacatgaatgtgattcttggcaatttctaatccactaaagcttttc +cgttgaatctggttgtagatatttatataagttcactaattaagatcacggtagtatatt +gatagtgatgtctttgcaagaggttggccgaggaatttacggattctctattgatacaat +ttgtctggcttataactcttaaggctgaaccaggcgtttttagacgacttgatcagctgt +tagaatggtttggactccctctttcatgtcagtaacatttcagccgttattgttacgata +tgcttgaacaatattgatctaccacacacccatagtatattttataggtcatgctgttac +ctacgagcatggtattccacttcccattcaatgagtattcaacatcactagcctcagaga +tgatgacccacctctaataacgtcacgttgcggccatgtgaaacctgaacttgagtagac +gatatcaagcgctttaaattgcatataacatttgagggtaaagctaagcggatgctttat +ataatcaatactcaataataagatttgattgcattttagagttatgacacgacatagttc +actaacgagttactattcccagatctagactgaagtactgatcgagacgatccttacgtc +gatgatcgttagttatcgacttaggtcgggtctctagcggtattggtacttaaccggaca +ctatactaataacccatgatcaaagcataacagaatacagacgataatttcgccaacata +tatgtacagaccccaagcatgagaagctcattgaaagctatcattgaagtcccgctcaca +atgtgtcttttccagacggtttaactggttcccgggagtcctggagtttcgacttacata +aatggaaacaatgtattttgctaatttatctatagcgtcatttggaccaatacagaatat +tatgttgcctagtaatccactataacccgcaagtgctgatagaaaatttttagacgattt +ataaatgccccaagtatccctcccgtgaatcctccgttatactaattagtattcgttcat +acgtataccgcgcatatatgaacatttggcgataaggcgcgtgaattgttacgtgacaga +gatagcagtttcttgtgatatggttaacagacgtacatgaagggaaactttatatctata +gtgatgcttccgtagaaataccgccactggtctgccaatgatgaagtatgtagctttagg +tttgtactatgaggctttcgtttgtttgcagagtataacagttgcgagtgaaaaaccgac +gaatttatactaatacgctttcactattggctacaaaatagggaagagtttcaatcatga +gagggagtatatggatgctttgtagctaaaggtagaacgtatgtatatgctgccgttcat +tcttgaaagatacataagcgataagttacgacaattataagcaacatccctaccttcgta +acgatttcactgttactgcgcttgaaatacactatggggctattggcggagagaagcaga +tcgcgccgagcatatacgagacctataatgttgatgatagagaaggcgtctgaattgata +catcgaagtacactttctttcgtagtatctctcgtcctctttctatctccggacacaaga +attaagttatatatatagagtcttaccaatcatgttgaatcctgattctcagagttcttt +ggcgggccttgtgatgactgagaaacaatgcaatattgctccaaatttcctaagcaaatt +ctcggttatgttatgttatcagcaaagcgttacgttatgttatttaaatctggaatgacg +gagcgaagttcttatgtcggtgtgggaataattcttttgaagacagcactccttaaataa +tatcgctccgtgtttgtatttatcgaatgggtctgtaaccttgcacaagcaaatcggtgg +tgtatatatcggataacaattaatacgatgttcatagtgacagtatactgatcgagtcct +ctaaagtcaattacctcacttaacaatctcattgatgttgtgtcattcccggtatcgccc +gtagtatgtgctctgattgaccgagtgtgaaccaaggaacatctactaatgcctttgtta +ggtaagatctctctgaattccttcgtgccaacttaaaacattatcaaaatttcttctact +tggattaactacttttacgagcatggcaaattcccctgtggaagacggttcattattatc +ggaaaccttatagaaattgcgtgttgactgaaattagatttttattgtaagagttgcatc +tttgcgattcctctggtctagcttccaatgaacagtcctcccttctattcgacatcgggt +ccttcgtacatgtctttgcgatgtaataattaggttcggagtgtggccttaatgggtgca +actaggaatacaacgcaaatttgctgacatgatagcaaatcggtatgccggcaccaaaac +gtgctccttgcttagcttgtgaatgagactcagtagttaaataaatccatatctgcaatc +gattccacaggtattgtccactatctttgaactactctaagagatacaagcttagctgag +accgaggtgtatatgactacgctgatatctgtaaggtaccaatgcaggcaaagtatgcga +gaagctaataccggctgtttccagctttataagattaaaatttggctgtcctggcggcct +cagaattgttctatcgtaatcagttggttcattaattagctaagtacgaggtacaactta +tctgtcccagaacagctccacaagtttttttacagccgaaacccctgtgtgaatcttaat +atccaagcgcgttatctgattagagtttacaactcagtattttatcagtacgttttgttt +ccaacattacccggtatgacaaaatgacgccacgtgtcgaataatggtctgaccaatgta +ggaagtgaaaagataaatat diff --git a/test/pending/shootout/fasta.scala b/test/pending/shootout/fasta.scala new file mode 100644 index 0000000000..8b711083a5 --- /dev/null +++ b/test/pending/shootout/fasta.scala @@ -0,0 +1,162 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +import java.io._ + +object fasta { + def main(args: Array[String]) = { + + val ALU = + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" + + "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" + + "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" + + "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" + + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" + + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" + + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA" + + val _IUB = Array( + Pair('a', 0.27), + Pair('c', 0.12), + Pair('g', 0.12), + Pair('t', 0.27), + + Pair('B', 0.02), + Pair('D', 0.02), + Pair('H', 0.02), + Pair('K', 0.02), + Pair('M', 0.02), + Pair('N', 0.02), + Pair('R', 0.02), + Pair('S', 0.02), + Pair('V', 0.02), + Pair('W', 0.02), + Pair('Y', 0.02) + ) + + val IUB = makeCumulative(_IUB) + + val _HomoSapiens = Array( + Pair('a', 0.3029549426680), + Pair('c', 0.1979883004921), + Pair('g', 0.1975473066391), + Pair('t', 0.3015094502008) + ) + + val HomoSapiens = makeCumulative(_HomoSapiens) + + + val n = Integer parseInt(args(0)) + val s = new FastaOutputStream(System.out) + + s.writeDescription("ONE Homo sapiens alu") + s.writeRepeatingSequence(ALU,n*2) + + s.writeDescription("TWO IUB ambiguity codes") + s.writeRandomSequence(IUB,n*3) + + s.writeDescription("THREE Homo sapiens frequency") + s.writeRandomSequence(HomoSapiens,n*5) + + s.close + } + + def makeCumulative(a: Array[Pair[Char,Double]]) = { + var cp = 0.0 + a map (frequency => + frequency match { + case Pair(code,percent) => + cp = cp + percent; new Frequency(code.toByte,cp) + } + ) + } + +} + + +// We could use instances of Pair or Tuple2 but specific labels +// make the code more readable than index numbers + +class Frequency(_code: Byte, _percent: Double){ + var code = _code; var percent = _percent; +} + + +// extend the Java BufferedOutputStream class + +class FastaOutputStream(out: OutputStream) extends BufferedOutputStream(out) { + + private val LineLength = 60 + private val nl = '\n'.toByte + + def writeDescription(desc: String) = { write( (">" + desc + "\n").getBytes ) } + + def writeRepeatingSequence(_alu: String, length: Int) = { + val alu = _alu.getBytes + var n = length; var k = 0; val kn = alu.length; + + while (n > 0) { + val m = if (n < LineLength) n else LineLength + + var i = 0 + while (i < m){ + if (k == kn) k = 0 + val b = alu(k) + if (count < buf.length){ buf(count) = b; count = count + 1 } + else { write(b) } // flush buffer + k = k+1 + i = i+1 + } + + write(nl) + n = n - LineLength + } + + } + + def writeRandomSequence(distribution: Array[Frequency], length: Int) = { + var n = length + while (n > 0) { + val m = if (n < LineLength) n else LineLength + + var i = 0 + while (i < m){ + val b = selectRandom(distribution) + if (count < buf.length){ buf(count) = b; count = count + 1 } + else { write(b) } // flush buffer + i = i+1 + } + + if (count < buf.length){ buf(count) = nl; count = count + 1 } + else { write(nl) } // flush buffer + n = n - LineLength + } + } + + private def selectRandom(distribution: Array[Frequency]): Byte = { + val n = distribution.length + val r = RandomNumber scaledTo(1.0) + + var i = 0 + while (i < n) { + if (r < distribution(i).percent) return distribution(i).code + i = i+1 + } + return distribution(n-1).code + } +} + + +object RandomNumber { + private val IM = 139968 + private val IA = 3877 + private val IC = 29573 + private var seed = 42 + + def scaledTo(max: Double) = { + seed = (seed * IA + IC) % IM + max * seed / IM + } +} diff --git a/test/pending/shootout/fasta.scala.runner b/test/pending/shootout/fasta.scala.runner new file mode 100644 index 0000000000..e95a749cf2 --- /dev/null +++ b/test/pending/shootout/fasta.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(25000,250000,2500000)) fasta.main(Array(n.toString)) +} diff --git a/test/pending/shootout/harmonic.scala-2.scala b/test/pending/shootout/harmonic.scala-2.scala new file mode 100644 index 0000000000..a55e164e50 --- /dev/null +++ b/test/pending/shootout/harmonic.scala-2.scala @@ -0,0 +1,14 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object harmonic { + def main(args: Array[String]) = { + val n = Integer.parseInt(args(0)); + var partialSum = 0.0; + + for (i <- Iterator.range(1,n+1)) partialSum = partialSum + 1.0/i; + Console.printf("{0,number,#.000000000}\n")(partialSum); + } +} diff --git a/test/pending/shootout/harmonic.scala-2.scala.runner b/test/pending/shootout/harmonic.scala-2.scala.runner new file mode 100644 index 0000000000..d0ea85742a --- /dev/null +++ b/test/pending/shootout/harmonic.scala-2.scala.runner @@ -0,0 +1,16 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ +object Test extends Application { + for(n <- List(6000000,8000000,10000000)) harmonic.main(Array(n.toString)) +} +object harmonic { + def main(args: Array[String]) = { + val n = Integer.parseInt(args(0)); + var partialSum = 0.0; + + for (i <- Iterator.range(1,n+1)) partialSum = partialSum + 1.0/i; + Console.printf("{0,number,#.000000000}\n")(partialSum); + } +} diff --git a/test/pending/shootout/harmonic.scala-3.scala b/test/pending/shootout/harmonic.scala-3.scala new file mode 100644 index 0000000000..dc631fcf12 --- /dev/null +++ b/test/pending/shootout/harmonic.scala-3.scala @@ -0,0 +1,15 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object harmonic { + def main(args: Array[String]) = { + val n = Integer.parseInt(args(0)); + var partialSum = 0.0; + var i = 1; + + while (i < n){ partialSum = partialSum + 1.0/i; i = i + 1; } + Console.printf("{0,number,#.000000000}\n", partialSum); + } +} diff --git a/test/pending/shootout/harmonic.scala-3.scala.runner b/test/pending/shootout/harmonic.scala-3.scala.runner new file mode 100644 index 0000000000..b5eda3f034 --- /dev/null +++ b/test/pending/shootout/harmonic.scala-3.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(6000000,8000000,10000000)) harmonic.main(Array(n.toString)) +} diff --git a/test/pending/shootout/heapsort.scala b/test/pending/shootout/heapsort.scala new file mode 100644 index 0000000000..59b1fe27cb --- /dev/null +++ b/test/pending/shootout/heapsort.scala @@ -0,0 +1,72 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object heapsort { + def main(args: Array[String]) = { + val n = toPositiveInt(args); + + val numbers = new Array[Double](n+1); + for (i <- Iterator.range(1,n+1)) + numbers(i) = generate(100.0); + + heapsort(n, numbers); + + Console.printf("{0,number,#.000000000}\n", numbers(n)); + } + + + def heapsort(n: Int, ra: Array[Double]): Unit = { + var l = 0; var j = 0; var ir = 0; var i = 0; + var rra = 0.0d; + + if (n < 2) return; + l = (n >> 1) + 1; + ir = n; + while (true) { + if (l > 1) { l = l-1; rra = ra(l); } + else { + rra = ra(ir); + ra(ir) = ra(1); + ir = ir-1; + if (ir == 1) { + ra(1) = rra; + return; + } + } + i = l; + j = l << 1; + while (j <= ir) { + if (j < ir && ra(j) < ra(j+1)) { j = j+1; } + if (rra < ra(j)) { + ra(i) = ra(j); + i = j; + j = j + i; + } + else j = ir + 1; + } + ra(i) = rra; + } + } + + + private val IM = 139968; + private val IA = 3877; + private val IC = 29573; + private var seed = 42; + + private def generate(max: Double) = { + seed = (seed * IA + IC) % IM; + max * seed / IM; + } + + + private def toPositiveInt(s: Array[String]) = { + val i = + try { Integer.parseInt(s(0)); } + catch { case _ => 1 } + if (i>0) i; else 1; + } + +} diff --git a/test/pending/shootout/heapsort.scala.runner b/test/pending/shootout/heapsort.scala.runner new file mode 100644 index 0000000000..07e4ec7fbd --- /dev/null +++ b/test/pending/shootout/heapsort.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(20000,40000,60000,80000,100000)) heapsort.main(Array(n.toString)) +} diff --git a/test/pending/shootout/mandelbrot.scala-2.check b/test/pending/shootout/mandelbrot.scala-2.check Binary files differnew file mode 100644 index 0000000000..2f7bbbc6b0 --- /dev/null +++ b/test/pending/shootout/mandelbrot.scala-2.check diff --git a/test/pending/shootout/mandelbrot.scala-2.scala b/test/pending/shootout/mandelbrot.scala-2.scala new file mode 100644 index 0000000000..dffdc354a0 --- /dev/null +++ b/test/pending/shootout/mandelbrot.scala-2.scala @@ -0,0 +1,79 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +// This test is in pending because it fails on windows only, +// but partest's output and the fact that this test outputs in +// binary makes it a challenge to debug remotely. However, +// it's easy to guess that it has to do with the BufferedOutputStream +// and some kind of windows-specific damage that requires an extra +// flush, or different line-ending characters, or any of the various +// write-once-know-quirks-everywhere aspects of java i/o. +// +// [partest] testing: [...]\files\shootout\mandelbrot.scala-2.scala [FAILED] +// [partest] P4 +// [partest] 200 200 +// [partest] +// ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +// ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +// [etc] + +import java.io.BufferedOutputStream + +object mandelbrot { + def main(args: Array[String]) = { + val side = Integer.parseInt(args(0)) + val limitSquared = 4.0 + val max = 50 + var bits = 0 + var bitnum = 0 + val w = new BufferedOutputStream(System.out) + + Console.println("P4\n" + side + " " + side) + + var y = 0 + while (y < side){ + + var x = 0 + while (x < side){ + + val cr = 2.0 * x / side - 1.5 + val ci = 2.0 * y / side - 1.0 + + var zr = 0.0; var zi = 0.0 + var tr = 0.0; var ti = 0.0 + + var j = max + do { + zi = 2.0 * zr * zi + ci + zr = tr - ti + cr + ti = zi*zi + tr = zr*zr + + j = j - 1 + } while (!(tr + ti > limitSquared) && j > 0) + + + bits = bits << 1 + if (!(tr + ti > limitSquared)) bits = bits + 1 + bitnum = bitnum + 1 + + if (x == side - 1){ + bits = bits << (8 - bitnum) + bitnum = 8 + } + + if (bitnum == 8){ + w.write(bits.toByte) + bits = 0 + bitnum = 0 + } + + x = x + 1 + } + y = y + 1 + } + w.close + } +} diff --git a/test/pending/shootout/mandelbrot.scala-2.scala.runner b/test/pending/shootout/mandelbrot.scala-2.scala.runner new file mode 100644 index 0000000000..27f69f6aec --- /dev/null +++ b/test/pending/shootout/mandelbrot.scala-2.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(200,400,600)) mandelbrot.main(Array(n.toString)) +} diff --git a/test/pending/shootout/message.check b/test/pending/shootout/message.check new file mode 100644 index 0000000000..354b2529b2 --- /dev/null +++ b/test/pending/shootout/message.check @@ -0,0 +1 @@ +500000 diff --git a/test/pending/shootout/message.javaopts b/test/pending/shootout/message.javaopts new file mode 100644 index 0000000000..1879c77427 --- /dev/null +++ b/test/pending/shootout/message.javaopts @@ -0,0 +1 @@ +-Xss128k diff --git a/test/pending/shootout/message.scala b/test/pending/shootout/message.scala new file mode 100644 index 0000000000..a7a1dacc9d --- /dev/null +++ b/test/pending/shootout/message.scala @@ -0,0 +1,47 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + + +import scala.concurrent._ + +object message { + def main(args: Array[String]) = { + val n = Integer.parseInt(args(0)) + val nActors = 500 + val finalSum = n * nActors + + case class Message(value: Int) + + class Incrementor(next: Pid) extends Actor { + var sum = 0 + + override def run() = { + while (true) { + receive { + case Message(value) => + val j = value + 1 + if (null != next){ + next ! Message(j) + } else { + sum = sum + j + if (sum >= finalSum){ + Console.println(sum); + System.exit(0) // exit without cleaning up + } + } + } + } + } + + def pid() = { this.start; this.self } + } + + def actorChain(i: Int, a: Pid): Pid = + if (i > 0) actorChain(i-1, new Incrementor(a).pid ) else a + + val firstActor = actorChain(nActors, null) + var i = n; while (i > 0){ firstActor ! Message(0); i = i-1 } + } +} diff --git a/test/pending/shootout/message.scala.runner b/test/pending/shootout/message.scala.runner new file mode 100644 index 0000000000..ffbee1640b --- /dev/null +++ b/test/pending/shootout/message.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(1000,2000,3000)) message.main(Array(n.toString)) +} diff --git a/test/pending/shootout/meteor.scala b/test/pending/shootout/meteor.scala new file mode 100644 index 0000000000..2fd702753a --- /dev/null +++ b/test/pending/shootout/meteor.scala @@ -0,0 +1,496 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +// This is an un-optimised example implementation + + +import scala.collection.mutable._ + +object meteor { + def main(args: Array[String]) = { + val solver = new Solver( Integer.parseInt(args(0)) ) + solver.findSolutions + solver.printSolutions + } +} + + + + +// Solver.scala +// import scala.collection.mutable._ + +final class Solver (n: Int) { + private var countdown = n + private var first: String = _ + private var last: String = _ + + private val board = new Board() + + val pieces = Array( + new Piece(0), new Piece(1), new Piece(2), new Piece(3), new Piece(4), + new Piece(5), new Piece(6), new Piece(7), new Piece(8), new Piece(9) ) + + val unplaced = new BitSet(pieces.length) + + { unplaced ++= (0 until pieces.length) } + + + def findSolutions(): Unit = { + if (countdown == 0) return + + if (unplaced.size > 0){ + val emptyCellIndex = board.firstEmptyCellIndex + + for (k <- Iterator.range(0,pieces.length)){ + if (unplaced.contains(k)){ + unplaced -= k + + for (i <- Iterator.range(0,Piece.orientations)){ + val piece = pieces(k).nextOrientation + + for (j <- Iterator.range(0,Piece.size)){ + if (board.add(j,emptyCellIndex,piece)) { + + if (!shouldPrune) findSolutions + + board.remove(piece) + } + } + } + unplaced += k + } + } + } + else { + puzzleSolved + } + } + + private def puzzleSolved() = { + val b = board.asString + if (first == null){ + first = b; last = b + } else { + if (b < first){ first = b } else { if (b > last){ last = b } } + } + countdown = countdown - 1 + } + + private def shouldPrune() = { + board.unmark + !board.cells.forall(c => c.contiguousEmptyCells % Piece.size == 0) + } + + + def printSolutions() = { + + def printBoard(s: String) = { + var indent = false + var i = 0 + while (i < s.length){ + if (indent) Console.print(' ') + for (j <- Iterator.range(0,Board.cols)){ + Console.print(s.charAt(i)); Console.print(' ') + i = i + 1 + } + Console.print('\n') + indent = !indent + } + Console.print('\n') + } + + Console.print(n + " solutions found\n\n") + printBoard(first) + printBoard(last) + } + +/* + def printPieces() = + for (i <- Iterator.range(0,Board.pieces)) pieces(i).print +*/ + +} + + + + +// Board.scala +// import scala.collection.mutable._ + +object Board { + val cols = 5 + val rows = 10 + val size = rows * cols +} + +final class Board { + val cells = boardCells() + + val cellsPieceWillFill = new Array[BoardCell](Piece.size) + var cellCount = 0 + + def unmark() = for (c <- cells) c.unmark + + def asString() = + new String( cells map( + c => if (c.piece == null) '-'.toByte + else (c.piece.number + 48).toByte )) + + def firstEmptyCellIndex() = cells.findIndexOf(c => c.isEmpty) + + def add(pieceIndex: Int, boardIndex: Int, p: Piece) = { + cellCount = 0 + p.unmark + + find( p.cells(pieceIndex), cells(boardIndex)) + + val boardHasSpace = cellCount == Piece.size && + cellsPieceWillFill.forall(c => c.isEmpty) + + if (boardHasSpace) cellsPieceWillFill.foreach(c => c.piece = p) + + boardHasSpace + } + + def remove(piece: Piece) = for (c <- cells; if c.piece == piece) c.empty + + + private def find(p: PieceCell, b: BoardCell): Unit = { + if (p != null && !p.marked && b != null){ + cellsPieceWillFill(cellCount) = b + cellCount = cellCount + 1 + p.mark + for (i <- Iterator.range(0,Cell.sides)) find(p.next(i), b.next(i)) + } + } + + + private def boardCells() = { + val a = for (i <- Array.range(0,Board.size)) yield new BoardCell(i) + val m = (Board.size / Board.cols) - 1 + + for (i <- Iterator.range(0,a.length)){ + val row = i / Board.cols + val isFirst = i % Board.cols == 0 + val isLast = (i+1) % Board.cols == 0 + val c = a(i) + + if (row % 2 == 1) { + if (!isLast) c.next(Cell.NE) = a(i-(Board.cols-1)) + c.next(Cell.NW) = a(i-Board.cols) + if (row != m) { + if (!isLast) c.next(Cell.SE) = a(i+(Board.cols+1)) + c.next(Cell.SW) = a(i+Board.cols) + } + } else { + if (row != 0) { + if (!isFirst) c.next(Cell.NW) = a(i-(Board.cols+1)) + c.next(Cell.NE) = a(i-Board.cols) + } + if (row != m) { + if (!isFirst) c.next(Cell.SW) = a(i+(Board.cols-1)) + c.next(Cell.SE) = a(i+Board.cols) + } + } + if (!isFirst) c.next(Cell.W) = a(i-1) + if (!isLast) c.next(Cell.E) = a(i+1) + } + a + } + + +/* +// Printing all the board cells and their neighbours +// helps check that they are connected properly + + def printBoardCellsAndNeighbours() = { + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Board.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + Console.printf("{0,number,00} ")(c.number) + } + Console.println("") + } + Console.println("") + } +*/ + +} + + + + +// Piece.scala + +object Piece { + val size = 5 + val rotations = Cell.sides + val flips = 2 + val orientations = rotations * flips +} + +final class Piece(_number: Int) { + val number = _number + val cells = for (i <- Array.range(0,Piece.size)) yield new PieceCell() + + { + number match { + case 0 => make0 + case 1 => make1 + case 2 => make2 + case 3 => make3 + case 4 => make4 + case 5 => make5 + case 6 => make6 + case 7 => make7 + case 8 => make8 + case 9 => make9 + } + } + + def flip() = for (c <- cells) c.flip + def rotate() = for (c <- cells) c.rotate + def unmark() = for (c <- cells) c.unmark + + + private var orientation = 0 + + def nextOrientation() = { + if (orientation == Piece.orientations) orientation = 0 + if (orientation % Piece.rotations == 0) flip else rotate + orientation = orientation + 1 + this + } + + + private def make0() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.E) = cells(3) + cells(3).next(Cell.W) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make1() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(2).next(Cell.W) = cells(3) + cells(3).next(Cell.E) = cells(2) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make2() = { + cells(0).next(Cell.W) = cells(1) + cells(1).next(Cell.E) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(2).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make3() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(1).next(Cell.W) = cells(2) + cells(2).next(Cell.E) = cells(1) + cells(1).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(1) + cells(2).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make4() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(1).next(Cell.E) = cells(3) + cells(3).next(Cell.W) = cells(1) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make5() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(0).next(Cell.SE) = cells(2) + cells(2).next(Cell.NW) = cells(0) + cells(1).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(1) + cells(2).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(2) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make6() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(2).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(2) + cells(1).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(1) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make7() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(0).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(0) + cells(2).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make8() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.NE) = cells(3) + cells(3).next(Cell.SW) = cells(2) + cells(3).next(Cell.E) = cells(4) + cells(4).next(Cell.W) = cells(3) + } + + private def make9() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.NE) = cells(3) + cells(3).next(Cell.SW) = cells(2) + cells(2).next(Cell.E) = cells(4) + cells(4).next(Cell.W) = cells(2) + cells(4).next(Cell.NW) = cells(3) + cells(3).next(Cell.SE) = cells(4) + } + +/* + def print() = { + Console.println("Piece # " + number) + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Piece.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + for (k <- Iterator.range(0,Piece.size)){ + if (cells(k) == c) Console.printf(" {0,number,0} ")(k) + } + } + Console.println("") + } + Console.println("") + } +*/ + +} + + + + +// Cell.scala + +object Cell { + val NW = 0; val NE = 1 + val W = 2; val E = 3 + val SW = 4; val SE = 5 + + val sides = 6 +} + +abstract class Cell { + implicit def m: Manifest[T] + type T + val next = new Array[T](Cell.sides) + var marked = false + + def mark() = marked = true + def unmark() = marked = false +} + +// BoardCell.scala + +final class BoardCell(_number: Int) extends { + type T = BoardCell + implicit val m = manifest[BoardCell] +} with Cell { + val number = _number + var piece: Piece = _ + + def isEmpty() = piece == null + def empty() = piece = null + + def contiguousEmptyCells(): Int = { + if (!marked && isEmpty){ + mark + var count = 1 + + for (neighbour <- next) + if (neighbour != null && neighbour.isEmpty) + count = count + neighbour.contiguousEmptyCells + + count } else { 0 } + } +} + + + + +// PieceCell.scala + +final class PieceCell extends Cell { + type T = PieceCell + + def flip = { + var swap = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = swap + + swap = next(Cell.E) + next(Cell.E) = next(Cell.W) + next(Cell.W) = swap + + swap = next(Cell.SE) + next(Cell.SE) = next(Cell.SW) + next(Cell.SW) = swap + } + + def rotate = { + var swap = next(Cell.E) + next(Cell.E) = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = next(Cell.W) + next(Cell.W) = next(Cell.SW) + next(Cell.SW) = next(Cell.SE) + next(Cell.SE) = swap + } +} + + + + diff --git a/test/pending/shootout/meteor.scala-2.scala b/test/pending/shootout/meteor.scala-2.scala new file mode 100644 index 0000000000..2b42c19260 --- /dev/null +++ b/test/pending/shootout/meteor.scala-2.scala @@ -0,0 +1,496 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +// This is an un-optimised example implementation +// classes BoardCell and PieceCell have Array + + +import scala.collection.mutable._ + +object meteor { + def main(args: Array[String]) = { + val solver = new Solver( Integer.parseInt(args(0)) ) + solver.findSolutions + solver.printSolutions + } +} + + + + +// Solver.scala +// import scala.collection.mutable._ + +final class Solver (n: Int) { + private var countdown = n + private var first: String = _ + private var last: String = _ + + private val board = new Board() + + val pieces = Array( + new Piece(0), new Piece(1), new Piece(2), new Piece(3), new Piece(4), + new Piece(5), new Piece(6), new Piece(7), new Piece(8), new Piece(9) ) + + val unplaced = new BitSet(pieces.length) + + { unplaced ++= (0 until pieces.length) } + + + def findSolutions(): Unit = { + if (countdown == 0) return + + if (unplaced.size > 0){ + val emptyCellIndex = board.firstEmptyCellIndex + + for (k <- Iterator.range(0,pieces.length)){ + if (unplaced.contains(k)){ + unplaced -= k + + for (i <- Iterator.range(0,Piece.orientations)){ + val piece = pieces(k).nextOrientation + + for (j <- Iterator.range(0,Piece.size)){ + if (board.add(j,emptyCellIndex,piece)) { + + if (!shouldPrune) findSolutions + + board.remove(piece) + } + } + } + unplaced += k + } + } + } + else { + puzzleSolved + } + } + + private def puzzleSolved() = { + val b = board.asString + if (first == null){ + first = b; last = b + } else { + if (b < first){ first = b } else { if (b > last){ last = b } } + } + countdown = countdown - 1 + } + + private def shouldPrune() = { + board.unmark + !board.cells.forall(c => c.contiguousEmptyCells % Piece.size == 0) + } + + + def printSolutions() = { + + def printBoard(s: String) = { + var indent = false + var i = 0 + while (i < s.length){ + if (indent) Console.print(' ') + for (j <- Iterator.range(0,Board.cols)){ + Console.print(s.charAt(i)); Console.print(' ') + i = i + 1 + } + Console.print('\n') + indent = !indent + } + Console.print('\n') + } + + Console.print(n + " solutions found\n\n") + printBoard(first) + printBoard(last) + } + +/* + def printPieces() = + for (i <- Iterator.range(0,Board.pieces)) pieces(i).print +*/ + +} + + + + +// Board.scala +// import scala.collection.mutable._ + +object Board { + val cols = 5 + val rows = 10 + val size = rows * cols +} + +final class Board { + val cells = boardCells() + + val cellsPieceWillFill = new Array[BoardCell](Piece.size) + var cellCount = 0 + + def unmark() = for (c <- cells) c.unmark + + def asString() = + new String( cells map( + c => if (c.piece == null) '-'.toByte + else (c.piece.number + 48).toByte )) + + def firstEmptyCellIndex() = cells.findIndexOf(c => c.isEmpty) + + + def add(pieceIndex: Int, boardIndex: Int, p: Piece) = { + cellCount = 0 + p.unmark + + find( p.cells(pieceIndex), cells(boardIndex)) + + val boardHasSpace = cellCount == Piece.size && + cellsPieceWillFill.forall(c => c.isEmpty) + + if (boardHasSpace) cellsPieceWillFill.foreach(c => c.piece = p) + + boardHasSpace + } + + def remove(piece: Piece) = for (c <- cells; if c.piece == piece) c.empty + + + private def find(p: PieceCell, b: BoardCell): Unit = { + if (p != null && !p.marked && b != null){ + cellsPieceWillFill(cellCount) = b + cellCount = cellCount + 1 + p.mark + for (i <- Iterator.range(0,Cell.sides)) find(p.next(i), b.next(i)) + } + } + + + private def boardCells() = { + val a = for (i <- Array.range(0,Board.size)) yield new BoardCell(i) + val m = (Board.size / Board.cols) - 1 + + for (i <- Iterator.range(0,a.length)){ + val row = i / Board.cols + val isFirst = i % Board.cols == 0 + val isLast = (i+1) % Board.cols == 0 + val c = a(i) + + if (row % 2 == 1) { + if (!isLast) c.next(Cell.NE) = a(i-(Board.cols-1)) + c.next(Cell.NW) = a(i-Board.cols) + if (row != m) { + if (!isLast) c.next(Cell.SE) = a(i+(Board.cols+1)) + c.next(Cell.SW) = a(i+Board.cols) + } + } else { + if (row != 0) { + if (!isFirst) c.next(Cell.NW) = a(i-(Board.cols+1)) + c.next(Cell.NE) = a(i-Board.cols) + } + if (row != m) { + if (!isFirst) c.next(Cell.SW) = a(i+(Board.cols-1)) + c.next(Cell.SE) = a(i+Board.cols) + } + } + if (!isFirst) c.next(Cell.W) = a(i-1) + if (!isLast) c.next(Cell.E) = a(i+1) + } + a + } + + +/* +// Printing all the board cells and their neighbours +// helps check that they are connected properly + + def printBoardCellsAndNeighbours() = { + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Board.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + Console.printf("{0,number,00} ")(c.number) + } + Console.println("") + } + Console.println("") + } +*/ + +} + + + + +// Piece.scala + +object Piece { + val size = 5 + val rotations = Cell.sides + val flips = 2 + val orientations = rotations * flips +} + +final class Piece(_number: Int) { + val number = _number + val cells = for (i <- Array.range(0,Piece.size)) yield new PieceCell() + + { + number match { + case 0 => make0 + case 1 => make1 + case 2 => make2 + case 3 => make3 + case 4 => make4 + case 5 => make5 + case 6 => make6 + case 7 => make7 + case 8 => make8 + case 9 => make9 + } + } + + def flip() = for (c <- cells) c.flip + def rotate() = for (c <- cells) c.rotate + def unmark() = for (c <- cells) c.unmark + + + private var orientation = 0 + + def nextOrientation() = { + if (orientation == Piece.orientations) orientation = 0 + if (orientation % Piece.rotations == 0) flip else rotate + orientation = orientation + 1 + this + } + + + private def make0() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.E) = cells(3) + cells(3).next(Cell.W) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make1() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(2).next(Cell.W) = cells(3) + cells(3).next(Cell.E) = cells(2) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make2() = { + cells(0).next(Cell.W) = cells(1) + cells(1).next(Cell.E) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(2).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make3() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(1).next(Cell.W) = cells(2) + cells(2).next(Cell.E) = cells(1) + cells(1).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(1) + cells(2).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make4() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(1).next(Cell.E) = cells(3) + cells(3).next(Cell.W) = cells(1) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make5() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(0).next(Cell.SE) = cells(2) + cells(2).next(Cell.NW) = cells(0) + cells(1).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(1) + cells(2).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(2) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make6() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(2).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(2) + cells(1).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(1) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make7() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(0).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(0) + cells(2).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make8() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.NE) = cells(3) + cells(3).next(Cell.SW) = cells(2) + cells(3).next(Cell.E) = cells(4) + cells(4).next(Cell.W) = cells(3) + } + + private def make9() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.NE) = cells(3) + cells(3).next(Cell.SW) = cells(2) + cells(2).next(Cell.E) = cells(4) + cells(4).next(Cell.W) = cells(2) + cells(4).next(Cell.NW) = cells(3) + cells(3).next(Cell.SE) = cells(4) + } + +/* + def print() = { + Console.println("Piece # " + number) + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Piece.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + for (k <- Iterator.range(0,Piece.size)){ + if (cells(k) == c) Console.printf(" {0,number,0} ")(k) + } + } + Console.println("") + } + Console.println("") + } +*/ + +} + + + + +// Cell.scala + +object Cell { + val NW = 0; val NE = 1 + val W = 2; val E = 3 + val SW = 4; val SE = 5 + + val sides = 6 +} + +abstract class Cell { + var marked = false + + def mark() = marked = true + def unmark() = marked = false +} + + + + +// BoardCell.scala + +final class BoardCell(_number: Int) extends Cell { + val next = new Array[BoardCell](Cell.sides) + val number = _number + var piece: Piece = _ + + def isEmpty() = piece == null + def empty() = piece = null + + def contiguousEmptyCells(): Int = { + if (!marked && isEmpty){ + mark + var count = 1 + + for (neighbour <- next) + if (neighbour != null && neighbour.isEmpty) + count = count + neighbour.contiguousEmptyCells + + count } else { 0 } + } +} + + + + +// PieceCell.scala + +final class PieceCell extends Cell { + val next = new Array[PieceCell](Cell.sides) + + def flip = { + var swap = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = swap + + swap = next(Cell.E) + next(Cell.E) = next(Cell.W) + next(Cell.W) = swap + + swap = next(Cell.SE) + next(Cell.SE) = next(Cell.SW) + next(Cell.SW) = swap + } + + def rotate = { + var swap = next(Cell.E) + next(Cell.E) = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = next(Cell.W) + next(Cell.W) = next(Cell.SW) + next(Cell.SW) = next(Cell.SE) + next(Cell.SE) = swap + } +} + + + + diff --git a/test/pending/shootout/meteor.scala-2.scala.runner b/test/pending/shootout/meteor.scala-2.scala.runner new file mode 100644 index 0000000000..dae384311f --- /dev/null +++ b/test/pending/shootout/meteor.scala-2.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(0)) meteor.main(Array(n.toString)) +} diff --git a/test/pending/shootout/meteor.scala-3.scala b/test/pending/shootout/meteor.scala-3.scala new file mode 100644 index 0000000000..01dacf90c6 --- /dev/null +++ b/test/pending/shootout/meteor.scala-3.scala @@ -0,0 +1,557 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +// Most for-comprehension replaced by while loops + + + +import scala.collection.mutable._ + +object meteor { + def main(args: Array[String]) = { + val solver = new Solver( Integer.parseInt(args(0)) ) + solver.findSolutions + solver.printSolutions + } +} + + + + +// Solver.scala +// import scala.collection.mutable._ + +final class Solver (n: Int) { + private var countdown = n + private var first: String = _ + private var last: String = _ + + private val board = new Board() + + val pieces = Array( + new Piece(0), new Piece(1), new Piece(2), new Piece(3), new Piece(4), + new Piece(5), new Piece(6), new Piece(7), new Piece(8), new Piece(9) ) + + val unplaced = new BitSet(pieces.length) + + { unplaced ++= (0 until pieces.length) } + + + def findSolutions(): Unit = { + if (countdown == 0) return + + if (unplaced.size > 0){ + val emptyCellIndex = board.firstEmptyCellIndex + + var k = 0 + while (k < pieces.length){ + if (unplaced.contains(k)){ + unplaced -= k + + var i = 0 + while (i < Piece.orientations){ + val piece = pieces(k).nextOrientation + + var j = 0 + while (j < Piece.size){ + if (board.add(j,emptyCellIndex,piece)) { + + if (!shouldPrune) findSolutions + + board.remove(piece) + } + j = j + 1 + } + i = i + 1 + } + unplaced += k + } + k = k + 1 + } + } + else { + puzzleSolved + } + } + + private def puzzleSolved() = { + val b = board.asString + if (first == null){ + first = b; last = b + } else { + if (b < first){ first = b } else { if (b > last){ last = b } } + } + countdown = countdown - 1 + } + + private def shouldPrune(): Boolean = { + board.unmark + var i = 0 + while (i < board.cells.length){ + if (board.cells(i).contiguousEmptyCells % Piece.size != 0) return true + i = i + 1 + } + false + } + + + def printSolutions() = { + + def printBoard(s: String) = { + var indent = false + var i = 0 + while (i < s.length){ + if (indent) Console.print(' ') + var j = 0 + while (j < Board.cols){ + Console.print(s.charAt(i)); Console.print(' ') + j = j + 1 + i = i + 1 + } + Console.print('\n') + indent = !indent + } + Console.print('\n') + } + + Console.print(n + " solutions found\n\n") + printBoard(first) + printBoard(last) + } + +/* + def printPieces() = + for (i <- Iterator.range(0,Board.pieces)) pieces(i).print +*/ + +} + + + + + +// Board.scala +// import scala.collection.mutable._ + +object Board { + val cols = 5 + val rows = 10 + val size = rows * cols +} + +final class Board { + val cells = boardCells() + + val cellsPieceWillFill = new Array[BoardCell](Piece.size) + var cellCount = 0 + + def unmark() = { + var i = 0 + while (i < cells.length){ + cells(i).unmark + i = i + 1 + } + } + + def asString() = + new String( cells map( + c => if (c.piece == null) '-'.toByte + else (c.piece.number + 48).toByte )) + + def firstEmptyCellIndex() = cells.findIndexOf(c => c.isEmpty) + + + def add(pieceIndex: Int, boardIndex: Int, p: Piece): Boolean = { + cellCount = 0 + p.unmark + + find(p.cells(pieceIndex), cells(boardIndex)) + + if (cellCount != Piece.size) return false + + var i = 0 + while (i < cellCount){ + if (!cellsPieceWillFill(i).isEmpty) return false + i = i + 1 + } + + i = 0 + while (i < cellCount){ + cellsPieceWillFill(i).piece = p + i = i + 1 + } + + true + } + + def remove(piece: Piece) = { + var i = 0 + while (i < cells.length){ + if (cells(i).piece == piece) cells(i).empty + i = i + 1 + } + } + + private def find(p: PieceCell, b: BoardCell): Unit = { + if (p != null && !p.marked && b != null){ + cellsPieceWillFill(cellCount) = b + cellCount = cellCount + 1 + p.mark + + var i = 0 + while (i < Cell.sides){ + find(p.next(i), b.next(i)) + i = i + 1 + } + } + } + + + private def boardCells() = { + val a = for (i <- Array.range(0,Board.size)) yield new BoardCell(i) + val m = (Board.size / Board.cols) - 1 + + for (i <- Iterator.range(0,a.length)){ + val row = i / Board.cols + val isFirst = i % Board.cols == 0 + val isLast = (i+1) % Board.cols == 0 + val c = a(i) + + if (row % 2 == 1) { + if (!isLast) c.next(Cell.NE) = a(i-(Board.cols-1)) + c.next(Cell.NW) = a(i-Board.cols) + if (row != m) { + if (!isLast) c.next(Cell.SE) = a(i+(Board.cols+1)) + c.next(Cell.SW) = a(i+Board.cols) + } + } else { + if (row != 0) { + if (!isFirst) c.next(Cell.NW) = a(i-(Board.cols+1)) + c.next(Cell.NE) = a(i-Board.cols) + } + if (row != m) { + if (!isFirst) c.next(Cell.SW) = a(i+(Board.cols-1)) + c.next(Cell.SE) = a(i+Board.cols) + } + } + if (!isFirst) c.next(Cell.W) = a(i-1) + if (!isLast) c.next(Cell.E) = a(i+1) + } + a + } + +/* +// Printing all the board cells and their neighbours +// helps check that they are connected properly + + def printBoardCellsAndNeighbours() = { + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Board.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + Console.printf("{0,number,00} ")(c.number) + } + Console.println("") + } + Console.println("") + } +*/ + +} + + + + +// Piece.scala + +object Piece { + val size = 5 + val rotations = Cell.sides + val flips = 2 + val orientations = rotations * flips +} + +final class Piece(_number: Int) { + val number = _number + val cells = for (i <- Array.range(0,Piece.size)) yield new PieceCell() + + { + number match { + case 0 => make0 + case 1 => make1 + case 2 => make2 + case 3 => make3 + case 4 => make4 + case 5 => make5 + case 6 => make6 + case 7 => make7 + case 8 => make8 + case 9 => make9 + } + } + + def flip() = { + var i = 0 + while (i < cells.length){ + cells(i).flip + i = i + 1 + } + } + + def rotate() = { + var i = 0 + while (i < cells.length){ + cells(i).rotate + i = i + 1 + } + } + + def unmark() = { + var i = 0 + while (i < cells.length){ + cells(i).unmark + i = i + 1 + } + } + + + private var orientation = 0 + + def nextOrientation() = { + if (orientation == Piece.orientations) orientation = 0 + if (orientation % Piece.rotations == 0) flip else rotate + orientation = orientation + 1 + this + } + + + private def make0() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.E) = cells(3) + cells(3).next(Cell.W) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make1() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(2).next(Cell.W) = cells(3) + cells(3).next(Cell.E) = cells(2) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make2() = { + cells(0).next(Cell.W) = cells(1) + cells(1).next(Cell.E) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(2).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make3() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(1).next(Cell.W) = cells(2) + cells(2).next(Cell.E) = cells(1) + cells(1).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(1) + cells(2).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make4() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(1).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(1) + cells(1).next(Cell.E) = cells(3) + cells(3).next(Cell.W) = cells(1) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make5() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(0).next(Cell.SE) = cells(2) + cells(2).next(Cell.NW) = cells(0) + cells(1).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(1) + cells(2).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(2) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make6() = { + cells(0).next(Cell.SW) = cells(1) + cells(1).next(Cell.NE) = cells(0) + cells(2).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(2) + cells(1).next(Cell.SE) = cells(3) + cells(3).next(Cell.NW) = cells(1) + cells(3).next(Cell.SW) = cells(4) + cells(4).next(Cell.NE) = cells(3) + } + + private def make7() = { + cells(0).next(Cell.SE) = cells(1) + cells(1).next(Cell.NW) = cells(0) + cells(0).next(Cell.SW) = cells(2) + cells(2).next(Cell.NE) = cells(0) + cells(2).next(Cell.SW) = cells(3) + cells(3).next(Cell.NE) = cells(2) + cells(3).next(Cell.SE) = cells(4) + cells(4).next(Cell.NW) = cells(3) + } + + private def make8() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.NE) = cells(3) + cells(3).next(Cell.SW) = cells(2) + cells(3).next(Cell.E) = cells(4) + cells(4).next(Cell.W) = cells(3) + } + + private def make9() = { + cells(0).next(Cell.E) = cells(1) + cells(1).next(Cell.W) = cells(0) + cells(1).next(Cell.E) = cells(2) + cells(2).next(Cell.W) = cells(1) + cells(2).next(Cell.NE) = cells(3) + cells(3).next(Cell.SW) = cells(2) + cells(2).next(Cell.E) = cells(4) + cells(4).next(Cell.W) = cells(2) + cells(4).next(Cell.NW) = cells(3) + cells(3).next(Cell.SE) = cells(4) + } + +/* + def print() = { + Console.println("Piece # " + number) + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Piece.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + for (k <- Iterator.range(0,Piece.size)){ + if (cells(k) == c) Console.printf(" {0,number,0} ")(k) + } + } + Console.println("") + } + Console.println("") + } +*/ + +} + + + + +// Cell.scala + +object Cell { + val NW = 0; val NE = 1 + val W = 2; val E = 3 + val SW = 4; val SE = 5 + + val sides = 6 +} + +abstract class Cell { + var marked = false + + def mark() = marked = true + def unmark() = marked = false +} + + + + +// BoardCell.scala + +final class BoardCell(_number: Int) extends Cell { + val next = new Array[BoardCell](Cell.sides) + val number = _number + var piece: Piece = _ + + def isEmpty() = piece == null + def empty() = piece = null + + def contiguousEmptyCells(): Int = { + if (!marked && isEmpty){ + mark + var count = 1 + + var i = 0 + while (i < next.length){ + if (next(i) != null && next(i).isEmpty) + count = count + next(i).contiguousEmptyCells + i = i + 1 + } + + count } else { 0 } + } +} + + + + +// PieceCell.scala + +final class PieceCell extends Cell { + val next = new Array[PieceCell](Cell.sides) + + def flip = { + var swap = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = swap + + swap = next(Cell.E) + next(Cell.E) = next(Cell.W) + next(Cell.W) = swap + + swap = next(Cell.SE) + next(Cell.SE) = next(Cell.SW) + next(Cell.SW) = swap + } + + def rotate = { + var swap = next(Cell.E) + next(Cell.E) = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = next(Cell.W) + next(Cell.W) = next(Cell.SW) + next(Cell.SW) = next(Cell.SE) + next(Cell.SE) = swap + } +} + + + + diff --git a/test/pending/shootout/meteor.scala-3.scala.runner b/test/pending/shootout/meteor.scala-3.scala.runner new file mode 100644 index 0000000000..dae384311f --- /dev/null +++ b/test/pending/shootout/meteor.scala-3.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(0)) meteor.main(Array(n.toString)) +} diff --git a/test/pending/shootout/meteor.scala-4.scala b/test/pending/shootout/meteor.scala-4.scala new file mode 100644 index 0000000000..ee036f7fab --- /dev/null +++ b/test/pending/shootout/meteor.scala-4.scala @@ -0,0 +1,587 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +// Most for-comprehension replaced by while loops +// BoardCells occupied by each Piece orientation are cached +// Piece orientations are cached + +import scala.collection.mutable._ + +object meteor { + def main(args: Array[String]) = { + val solver = new Solver( Integer.parseInt(args(0)) ) + solver.findSolutions + solver.printSolutions + } +} + + + + +// Solver.scala +// import scala.collection.mutable._ + +final class Solver (n: Int) { + private var countdown = n + private var first: String = _ + private var last: String = _ + + private val board = new Board() + + val pieces = Array( + new Piece(0), new Piece(1), new Piece(2), new Piece(3), new Piece(4), + new Piece(5), new Piece(6), new Piece(7), new Piece(8), new Piece(9) ) + + val unplaced = new BitSet(pieces.length) + + { unplaced ++= (0 until pieces.length) } + + + def findSolutions(): Unit = { + if (countdown == 0) return + + if (unplaced.size > 0){ + val emptyCellIndex = board.firstEmptyCellIndex + + var k = 0 + while (k < pieces.length){ + if (unplaced.contains(k)){ + unplaced -= k + + var i = 0 + while (i < Piece.orientations){ + val piece = pieces(k).nextOrientation + + var j = 0 + while (j < Piece.size){ + if (board.add(j,emptyCellIndex,piece)) { + + if (!shouldPrune) findSolutions + + board.remove(piece) + } + j = j + 1 + } + i = i + 1 + } + unplaced += k + } + k = k + 1 + } + } + else { + puzzleSolved + } + } + + private def puzzleSolved() = { + val b = board.asString + if (first == null){ + first = b; last = b + } else { + if (b < first){ first = b } else { if (b > last){ last = b } } + } + countdown = countdown - 1 + } + + private def shouldPrune(): Boolean = { + board.unmark + var i = 0 + while (i < board.cells.length){ + if (board.cells(i).contiguousEmptyCells % Piece.size != 0) return true + i = i + 1 + } + false + } + + + def printSolutions() = { + + def printBoard(s: String) = { + var indent = false + var i = 0 + while (i < s.length){ + if (indent) Console.print(' ') + var j = 0 + while (j < Board.cols){ + Console.print(s.charAt(i)); Console.print(' ') + j = j + 1 + i = i + 1 + } + Console.print('\n') + indent = !indent + } + Console.print('\n') + } + + Console.print(n + " solutions found\n\n") + printBoard(first) + printBoard(last) + } + +/* + def printPieces() = + for (i <- Iterator.range(0,Board.pieces)) pieces(i).print +*/ + +} + + + +// Board.scala +// import scala.collection.mutable._ + +object Board { + val cols = 5 + val rows = 10 + val size = rows * cols + val pieces = 10 + val noFit = new Array[BoardCell](0) +} + +final class Board { + val cells = boardCells() + + val cellsPieceWillFill = new Array[BoardCell](Piece.size) + var cellCount = 0 + + def unmark() = { + var i = 0 + while (i < cells.length){ + cells(i).unmark + i = i + 1 + } + } + + def asString() = + new String( cells map( + c => if (c.piece == null) '-'.toByte + else (c.piece.number + 48).toByte )) + + def firstEmptyCellIndex() = cells.findIndexOf(c => c.isEmpty) + + + private val cache: Array[Array[Array[Array[ Array[BoardCell] ]]]] = + for (i <- Array.range(0,Board.pieces)) + yield + for (j <- Array.range(0,Piece.orientations)) + yield + for (k <- Array.range(0,Piece.size)) // piece cell index + yield + for (m <- Array.range(0,Board.size)) // board cell index + yield (null: BoardCell) + + + def add(pieceIndex: Int, boardIndex: Int, p: Piece): Boolean = { + var a = cache(p.number)(p.orientation)(pieceIndex)(boardIndex) + + cellCount = 0 + p.unmark + + if (a == null){ + find(p.cells(pieceIndex), cells(boardIndex)) + + if (cellCount != Piece.size){ + cache(p.number)(p.orientation)(pieceIndex)(boardIndex) = Board.noFit + return false + } + + a = cellsPieceWillFill .filter(c => true) + cache(p.number)(p.orientation)(pieceIndex)(boardIndex) = a + } + else { + if (a == Board.noFit) return false + } + + var i = 0 + while (i < a.length){ + if (!a(i).isEmpty) return false + i = i + 1 + } + + i = 0 + while (i < a.length){ + a(i).piece = p + i = i + 1 + } + + true + } + + + def remove(piece: Piece) = { + var i = 0 + while (i < cells.length){ + if (cells(i).piece == piece) cells(i).empty + i = i + 1 + } + } + + + private def find(p: PieceCell, b: BoardCell): Unit = { + if (p != null && !p.marked && b != null){ + cellsPieceWillFill(cellCount) = b + cellCount = cellCount + 1 + p.mark + + var i = 0 + while (i < Cell.sides){ + find(p.next(i), b.next(i)) + i = i + 1 + } + } + } + + + private def boardCells() = { + val a = for (i <- Array.range(0,Board.size)) yield new BoardCell(i) + val m = (Board.size / Board.cols) - 1 + + for (i <- Iterator.range(0,a.length)){ + val row = i / Board.cols + val isFirst = i % Board.cols == 0 + val isLast = (i+1) % Board.cols == 0 + val c = a(i) + + if (row % 2 == 1) { + if (!isLast) c.next(Cell.NE) = a(i-(Board.cols-1)) + c.next(Cell.NW) = a(i-Board.cols) + if (row != m) { + if (!isLast) c.next(Cell.SE) = a(i+(Board.cols+1)) + c.next(Cell.SW) = a(i+Board.cols) + } + } else { + if (row != 0) { + if (!isFirst) c.next(Cell.NW) = a(i-(Board.cols+1)) + c.next(Cell.NE) = a(i-Board.cols) + } + if (row != m) { + if (!isFirst) c.next(Cell.SW) = a(i+(Board.cols-1)) + c.next(Cell.SE) = a(i+Board.cols) + } + } + if (!isFirst) c.next(Cell.W) = a(i-1) + if (!isLast) c.next(Cell.E) = a(i+1) + } + a + } + + +/* +// Printing all the board cells and their neighbours +// helps check that they are connected properly + + def printBoardCellsAndNeighbours() = { + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Board.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + Console.printf("{0,number,00} ")(c.number) + } + Console.println("") + } + Console.println("") + } +*/ + +} + + + + +// Piece.scala + +object Piece { + val size = 5 + val rotations = Cell.sides + val flips = 2 + val orientations = rotations * flips +} + +final class Piece(_number: Int) { + val number = _number + + def unmark() = { + val c = cache(orientation) + var i = 0 + while (i < c.length){ + c(i).unmark + i = i + 1 + } + } + + def cells = cache(orientation) + + private val cache = + for (i <- Array.range(0,Piece.orientations)) + yield pieceOrientation(i) + + var orientation = 0 + + def nextOrientation() = { + orientation = (orientation + 1) % Piece.orientations + this + } + + + private def pieceOrientation(k: Int) = { + val cells = for (i <- Array.range(0,Piece.size)) yield new PieceCell() + makePiece(number,cells) + + var i = 0 + while (i < k){ + if (i % Piece.rotations == 0) + for (c <- cells) c.flip + else + for (c <- cells) c.rotate + + i = i + 1 + } + cells + } + + private def makePiece(number: Int, cells: Array[PieceCell]) = { + number match { + case 0 => make0(cells) + case 1 => make1(cells) + case 2 => make2(cells) + case 3 => make3(cells) + case 4 => make4(cells) + case 5 => make5(cells) + case 6 => make6(cells) + case 7 => make7(cells) + case 8 => make8(cells) + case 9 => make9(cells) + } + } + + private def make0(a: Array[PieceCell]) = { + a(0).next(Cell.E) = a(1) + a(1).next(Cell.W) = a(0) + a(1).next(Cell.E) = a(2) + a(2).next(Cell.W) = a(1) + a(2).next(Cell.E) = a(3) + a(3).next(Cell.W) = a(2) + a(3).next(Cell.SE) = a(4) + a(4).next(Cell.NW) = a(3) + } + + private def make1(a: Array[PieceCell]) = { + a(0).next(Cell.SE) = a(1) + a(1).next(Cell.NW) = a(0) + a(1).next(Cell.SW) = a(2) + a(2).next(Cell.NE) = a(1) + a(2).next(Cell.W) = a(3) + a(3).next(Cell.E) = a(2) + a(3).next(Cell.SW) = a(4) + a(4).next(Cell.NE) = a(3) + } + + private def make2(a: Array[PieceCell]) = { + a(0).next(Cell.W) = a(1) + a(1).next(Cell.E) = a(0) + a(1).next(Cell.SW) = a(2) + a(2).next(Cell.NE) = a(1) + a(2).next(Cell.SE) = a(3) + a(3).next(Cell.NW) = a(2) + a(3).next(Cell.SE) = a(4) + a(4).next(Cell.NW) = a(3) + } + + private def make3(a: Array[PieceCell]) = { + a(0).next(Cell.SW) = a(1) + a(1).next(Cell.NE) = a(0) + a(1).next(Cell.W) = a(2) + a(2).next(Cell.E) = a(1) + a(1).next(Cell.SW) = a(3) + a(3).next(Cell.NE) = a(1) + a(2).next(Cell.SE) = a(3) + a(3).next(Cell.NW) = a(2) + a(3).next(Cell.SE) = a(4) + a(4).next(Cell.NW) = a(3) + } + + private def make4(a: Array[PieceCell]) = { + a(0).next(Cell.SE) = a(1) + a(1).next(Cell.NW) = a(0) + a(1).next(Cell.SW) = a(2) + a(2).next(Cell.NE) = a(1) + a(1).next(Cell.E) = a(3) + a(3).next(Cell.W) = a(1) + a(3).next(Cell.SE) = a(4) + a(4).next(Cell.NW) = a(3) + } + + private def make5(a: Array[PieceCell]) = { + a(0).next(Cell.SW) = a(1) + a(1).next(Cell.NE) = a(0) + a(0).next(Cell.SE) = a(2) + a(2).next(Cell.NW) = a(0) + a(1).next(Cell.SE) = a(3) + a(3).next(Cell.NW) = a(1) + a(2).next(Cell.SW) = a(3) + a(3).next(Cell.NE) = a(2) + a(3).next(Cell.SW) = a(4) + a(4).next(Cell.NE) = a(3) + } + + private def make6(a: Array[PieceCell]) = { + a(0).next(Cell.SW) = a(1) + a(1).next(Cell.NE) = a(0) + a(2).next(Cell.SE) = a(1) + a(1).next(Cell.NW) = a(2) + a(1).next(Cell.SE) = a(3) + a(3).next(Cell.NW) = a(1) + a(3).next(Cell.SW) = a(4) + a(4).next(Cell.NE) = a(3) + } + + private def make7(a: Array[PieceCell]) = { + a(0).next(Cell.SE) = a(1) + a(1).next(Cell.NW) = a(0) + a(0).next(Cell.SW) = a(2) + a(2).next(Cell.NE) = a(0) + a(2).next(Cell.SW) = a(3) + a(3).next(Cell.NE) = a(2) + a(3).next(Cell.SE) = a(4) + a(4).next(Cell.NW) = a(3) + } + + private def make8(a: Array[PieceCell]) = { + a(0).next(Cell.E) = a(1) + a(1).next(Cell.W) = a(0) + a(1).next(Cell.E) = a(2) + a(2).next(Cell.W) = a(1) + a(2).next(Cell.NE) = a(3) + a(3).next(Cell.SW) = a(2) + a(3).next(Cell.E) = a(4) + a(4).next(Cell.W) = a(3) + } + + private def make9(a: Array[PieceCell]) = { + a(0).next(Cell.E) = a(1) + a(1).next(Cell.W) = a(0) + a(1).next(Cell.E) = a(2) + a(2).next(Cell.W) = a(1) + a(2).next(Cell.NE) = a(3) + a(3).next(Cell.SW) = a(2) + a(2).next(Cell.E) = a(4) + a(4).next(Cell.W) = a(2) + a(4).next(Cell.NW) = a(3) + a(3).next(Cell.SE) = a(4) + } + +/* + def print() = { + Console.println("Piece # " + number) + Console.println("cell\tNW NE W E SW SE") + for (i <- Iterator.range(0,Piece.size)){ + Console.print(i + "\t") + for (j <- Iterator.range(0,Cell.sides)){ + val c = cells(i).next(j) + if (c == null) + Console.print("-- ") + else + for (k <- Iterator.range(0,Piece.size)){ + if (cells(k) == c) Console.printf(" {0,number,0} ")(k) + } + } + Console.println("") + } + Console.println("") + } +*/ +} + + + + + +// Cell.scala + +object Cell { + val NW = 0; val NE = 1 + val W = 2; val E = 3 + val SW = 4; val SE = 5 + + val sides = 6 +} + +abstract class Cell { + var marked = false + + def mark() = marked = true + def unmark() = marked = false +} + + + + +// BoardCell.scala + +final class BoardCell(_number: Int) extends Cell { + val next = new Array[BoardCell](Cell.sides) + val number = _number + var piece: Piece = _ + + def isEmpty() = piece == null + def empty() = piece = null + + def contiguousEmptyCells(): Int = { + if (!marked && isEmpty){ + mark + var count = 1 + + var i = 0 + while (i < next.length){ + if (next(i) != null && next(i).isEmpty) + count = count + next(i).contiguousEmptyCells + i = i + 1 + } + + count } else { 0 } + } +} + + + + +// PieceCell.scala + +final class PieceCell extends Cell { + val next = new Array[PieceCell](Cell.sides) + + def flip = { + var swap = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = swap + + swap = next(Cell.E) + next(Cell.E) = next(Cell.W) + next(Cell.W) = swap + + swap = next(Cell.SE) + next(Cell.SE) = next(Cell.SW) + next(Cell.SW) = swap + } + + def rotate = { + var swap = next(Cell.E) + next(Cell.E) = next(Cell.NE) + next(Cell.NE) = next(Cell.NW) + next(Cell.NW) = next(Cell.W) + next(Cell.W) = next(Cell.SW) + next(Cell.SW) = next(Cell.SE) + next(Cell.SE) = swap + } +} + + + + diff --git a/test/pending/shootout/meteor.scala-4.scala.runner b/test/pending/shootout/meteor.scala-4.scala.runner new file mode 100644 index 0000000000..dae384311f --- /dev/null +++ b/test/pending/shootout/meteor.scala-4.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(0)) meteor.main(Array(n.toString)) +} diff --git a/test/pending/shootout/meteor.scala.runner b/test/pending/shootout/meteor.scala.runner new file mode 100644 index 0000000000..dae384311f --- /dev/null +++ b/test/pending/shootout/meteor.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(0)) meteor.main(Array(n.toString)) +} diff --git a/test/pending/shootout/methcall.scala b/test/pending/shootout/methcall.scala new file mode 100644 index 0000000000..9f7234c72d --- /dev/null +++ b/test/pending/shootout/methcall.scala @@ -0,0 +1,58 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object methcall { + def main(args: Array[String]) = { + var n = toPositiveInt(args); + var v: Boolean = false + + val toggle = new Toggle(true); + for (i <- Iterator.range(1,n)) v = toggle.activate.value; + + Console println( toggle.activate.value ); + + val ntoggle = new NToggle(true,3); + for (i <- Iterator.range(1,n)) v = ntoggle.activate.value; + + Console println( ntoggle.activate.value ); + } + + + private def toPositiveInt(s: Array[String]) = { + val i = + try { Integer.parseInt(s(0)); } + catch { case _ => 1 } + if (i>0) i; else 1; + } +} + + +private class Toggle(b: Boolean) { + var state = b; + + def value = state; + + def activate = { + state = !state; + this + } +} + + +private class NToggle(b: Boolean, trigger: Int) +extends Toggle(b) { + + val toggleTrigger = trigger; + var count = 0; + + override def activate = { + count = count + 1; + if (count >= toggleTrigger) { + state = !state; + count = 0; + } + this + } +} diff --git a/test/pending/shootout/methcall.scala.runner b/test/pending/shootout/methcall.scala.runner new file mode 100644 index 0000000000..555413cc6c --- /dev/null +++ b/test/pending/shootout/methcall.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(100000,400000,700000,1000000)) methcall.main(Array(n.toString)) +} diff --git a/test/pending/shootout/nsieve.scala-4.check b/test/pending/shootout/nsieve.scala-4.check new file mode 100644 index 0000000000..5ae0440a5a --- /dev/null +++ b/test/pending/shootout/nsieve.scala-4.check @@ -0,0 +1,9 @@ +Primes up to 1280000 98610 +Primes up to 640000 52074 +Primes up to 320000 27608 +Primes up to 2560000 187134 +Primes up to 1280000 98610 +Primes up to 640000 52074 +Primes up to 5120000 356244 +Primes up to 2560000 187134 +Primes up to 1280000 98610 diff --git a/test/pending/shootout/nsieve.scala-4.scala b/test/pending/shootout/nsieve.scala-4.scala new file mode 100644 index 0000000000..741eb80398 --- /dev/null +++ b/test/pending/shootout/nsieve.scala-4.scala @@ -0,0 +1,45 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + + +object nsieve { + + def nsieve(m: Int, isPrime: Array[Boolean]) = { + for (i <- List.range(2, m)) isPrime(i) = true + var count = 0 + + for (i <- List.range(2, m)){ + if (isPrime(i)){ + var k = i+i + while (k < m){ isPrime(k) = false; k = k+i } + count = count + 1 + } + } + count + } + + + def main(args: Array[String]) = { + val n = Integer.parseInt(args(0)) + val m = (1<<n)*10000 + val flags = new Array[Boolean](m+1) + + def printPrimes(m: Int) = { + + def pad(i: Int, width: Int) = { + val s = i.toString + List.range(0, width - s.length) + .map((i) => " ") .foldLeft("")((a,b) => a+b) + s + } + + Console.println("Primes up to " + pad(m,8) + pad(nsieve(m,flags),9)) + } + + + printPrimes(m) + printPrimes( (1<<n-1)*10000 ) + printPrimes( (1<<n-2)*10000 ) + } +} diff --git a/test/pending/shootout/nsieve.scala-4.scala.runner b/test/pending/shootout/nsieve.scala-4.scala.runner new file mode 100644 index 0000000000..67be6d5844 --- /dev/null +++ b/test/pending/shootout/nsieve.scala-4.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(7,8,9)) nsieve.main(Array(n.toString)) +} diff --git a/test/pending/shootout/pidigits.check b/test/pending/shootout/pidigits.check new file mode 100644 index 0000000000..ad4dc9962b --- /dev/null +++ b/test/pending/shootout/pidigits.check @@ -0,0 +1,100 @@ +3141592653 :10 +5897932384 :20 +6264338327 :30 +9502884197 :40 +1693993751 :50 +0582097494 :60 +4592307816 :70 +4062862089 :80 +9862803482 :90 +5342117067 :100 +9821480865 :110 +1328230664 :120 +7093844609 :130 +5505822317 :140 +2535940812 :150 +8481117450 :160 +2841027019 :170 +3852110555 :180 +9644622948 :190 +9549303819 :200 +6442881097 :210 +5665933446 :220 +1284756482 :230 +3378678316 :240 +5271201909 :250 +1456485669 :260 +2346034861 :270 +0454326648 :280 +2133936072 :290 +6024914127 :300 +3724587006 :310 +6063155881 :320 +7488152092 :330 +0962829254 :340 +0917153643 :350 +6789259036 :360 +0011330530 :370 +5488204665 :380 +2138414695 :390 +1941511609 :400 +4330572703 :410 +6575959195 :420 +3092186117 :430 +3819326117 :440 +9310511854 :450 +8074462379 :460 +9627495673 :470 +5188575272 :480 +4891227938 :490 +1830119491 :500 +2983367336 :510 +2440656643 :520 +0860213949 :530 +4639522473 :540 +7190702179 :550 +8609437027 :560 +7053921717 :570 +6293176752 :580 +3846748184 :590 +6766940513 :600 +2000568127 :610 +1452635608 :620 +2778577134 :630 +2757789609 :640 +1736371787 :650 +2146844090 :660 +1224953430 :670 +1465495853 :680 +7105079227 :690 +9689258923 :700 +5420199561 :710 +1212902196 :720 +0864034418 :730 +1598136297 :740 +7477130996 :750 +0518707211 :760 +3499999983 :770 +7297804995 :780 +1059731732 :790 +8160963185 :800 +9502445945 :810 +5346908302 :820 +6425223082 :830 +5334468503 :840 +5261931188 :850 +1710100031 :860 +3783875288 :870 +6587533208 :880 +3814206171 :890 +7766914730 :900 +3598253490 :910 +4287554687 :920 +3115956286 :930 +3882353787 :940 +5937519577 :950 +8185778053 :960 +2171226806 :970 +6130019278 :980 +7661119590 :990 +9216420198 :1000 diff --git a/test/pending/shootout/pidigits.scala b/test/pending/shootout/pidigits.scala new file mode 100644 index 0000000000..b0becafda8 --- /dev/null +++ b/test/pending/shootout/pidigits.scala @@ -0,0 +1,69 @@ +/* ------------------------------------------------------------------ */ +/* The Computer Language Shootout */ +/* http://shootout.alioth.debian.org/ */ +/* */ +/* Contributed by Anthony Borla */ +/* ------------------------------------------------------------------ */ + +object pidigits +{ + def main(args: Array[String]): Unit = + { + val N: Int = Integer.parseInt(args(0)); var i: Int = 10 + + while (i <= N) + { + System.out.println(pi_digits(10) + "\t:" + i) + i = i + 10 + } + + i = i - 10 + + if (i < N) + { + System.out.println(pi_digits(N - i) + "\t:" + N) + } + } + + def compose(a: Array[BigInt], b: Array[BigInt]): Array[BigInt] = + { + return Array(a(0) * b(0), + a(0) * b(1) + a(1) * b(3), + a(2) * b(0) + a(3) * b(2), + a(2) * b(1) + a(3) * b(3)) + } + + def extract(a: Array[BigInt], j: Int): BigInt = + { + return (a(0) * j + a(1)) / (a(2) * j + a(3)) + } + + def pi_digits(c: Int): String = + { + val r: StringBuffer = new StringBuffer(); var i: Int = 0 + + while (i < c) + { + var y: BigInt = extract(Z, 3) + + while (y != extract(Z, 4)) + { + K = K + 1; Z = compose(Z, Array(K, 4 * K + 2, 0, 2 * K + 1)) + y = extract(Z, 3) + } + +// Z = compose(Array(10, (-y) * 10, 0, 1), Z) + + Z = compose(Array(10, y * (-10), 0, 1), Z) + + r.append(y); i = i + 1; + } + + return r.toString() + } + + var K: Int = 0 + + var Z: Array[BigInt] = Array(1, 0, 0, 1) +} + diff --git a/test/pending/shootout/pidigits.scala.runner b/test/pending/shootout/pidigits.scala.runner new file mode 100644 index 0000000000..4bf5a8bde9 --- /dev/null +++ b/test/pending/shootout/pidigits.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(600,800,1000)) pidigits.main(Array(n.toString)) +} diff --git a/test/pending/shootout/prodcons.scala b/test/pending/shootout/prodcons.scala new file mode 100644 index 0000000000..d48d3e94d8 --- /dev/null +++ b/test/pending/shootout/prodcons.scala @@ -0,0 +1,64 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +import concurrent.SyncVar; +import concurrent.ops._; + +object prodcons { + def main(args: Array[String]) = { + val n = toPositiveInt(args); + val buffer = new SharedBuffer(); + var p = 0; + var c = 0; + val cDone = new SyncVar[Boolean]; + + spawn { + while(p<n) { p=p+1; buffer put(p); } + } + + spawn { + var v: Int = _; + while(c<n) { c=c+1; v = buffer.get; } + cDone set true; + } + + cDone.get; + Console println(p + " " + c); + } + + + private def toPositiveInt(s: Array[String]) = { + val i = + try { Integer.parseInt(s(0)); } + catch { case _ => 1 } + if (i>0) i; else 1; + } +} + + +private class SharedBuffer() { + var contents: Int = _; + var available = false; + + def get = synchronized { + while (available == false) wait(); + available = false; + // Console println("\t" + "get " + contents); + notifyAll(); + contents + } + + def put(value: Int) = synchronized { + while (available == true) wait(); + contents = value; + available = true; + // Console println("put " + value); + notifyAll(); + } +} + + + + diff --git a/test/pending/shootout/prodcons.scala.runner b/test/pending/shootout/prodcons.scala.runner new file mode 100644 index 0000000000..75faf8ca6e --- /dev/null +++ b/test/pending/shootout/prodcons.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(30000,70000,100000,150000)) prodcons.main(Array(n.toString)) +} diff --git a/test/pending/shootout/random.scala b/test/pending/shootout/random.scala new file mode 100644 index 0000000000..0a86a35637 --- /dev/null +++ b/test/pending/shootout/random.scala @@ -0,0 +1,32 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object random { + def main(args: Array[String]) = { + var n = toPositiveInt(args); + var result: Double = 0 + + while (n>0) { result=generate(100.0); n=n-1; } + + Console.printf("{0,number,#.000000000}\n", result) + } + + private val IM = 139968; + private val IA = 3877; + private val IC = 29573; + private var seed = 42; + + def generate(max: Double) = { + seed = (seed * IA + IC) % IM; + max * seed / IM; + } + + private def toPositiveInt(s: Array[String]) = { + val i = + try { Integer.parseInt(s(0)); } + catch { case _ => 1 } + if (i>0) i; else 1; + } +} diff --git a/test/pending/shootout/random.scala.runner b/test/pending/shootout/random.scala.runner new file mode 100644 index 0000000000..11cbeef0f6 --- /dev/null +++ b/test/pending/shootout/random.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(9000,300000,600000,900000)) random.main(Array(n.toString)) +} diff --git a/test/pending/shootout/revcomp.scala-2.check b/test/pending/shootout/revcomp.scala-2.check new file mode 100644 index 0000000000..14d792ade8 --- /dev/null +++ b/test/pending/shootout/revcomp.scala-2.check @@ -0,0 +1,171 @@ +>ONE Homo sapiens alu +CGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAC +CTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACA +GGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCAT +GTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAA +AGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTC +TGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGG +GTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACC +ACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTG +GTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTA +CAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCT +GGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTC +TCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAAT +TTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCT +GACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCA +CCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGC +GCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCC +TCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTA +GTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGAT +CCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCT +TTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTC +ACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTG +GGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGT +TTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGG +CCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAG +TCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCG +CCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGC +GCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGG +CCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGC +TGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCG +CCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCA +AGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCC +CGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTC +GAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGC +GTGAGCCACCGCGCCCGGCC +>TWO IUB ambiguity codes +TAGGDHACHATCRGTRGVTGAGWTATGYTGCTGTCABACDWVTRTAAGAVVAGATTTNDA +GASMTCTGCATBYTTCAAKTTACMTATTACTTCATARGGYACMRTGTTTTYTATACVAAT +TTCTAKGDACKADACTATATNTANTCGTTCACGBCGYSCBHTANGGTGATCGTAAAGTAA +CTATBAAAAGATSTGWATBCSGAKHTTABBAACGTSYCATGCAAVATKTSKTASCGGAAT +WVATTTNTCCTTCTTCTTDDAGTGGTTGGATACVGTTAYMTMTBTACTTTHAGCTAGBAA +AAGAGKAAGTTRATWATCAGATTMDDTTTAAAVAAATATTKTCYTAAATTVCNKTTRACG +ADTATATTTATGATSADSCAATAWAGCGRTAGTGTAAGTGACVGRADYGTGCTACHVSDT +CTVCARCSYTTAATATARAAAATTTAATTTACDAATTGBACAGTAYAABATBTGCAGBVG +TGATGGDCAAAATBNMSTTABKATTGGSTCCTAGBTTACTTGTTTAGTTTATHCGATSTA +AAGTCGAKAAASTGTTTTAWAKCAGATATACTTTTMTTTTGBATAGAGGAGCMATGATRA +AAGGNCAYDCCDDGAAAGTHGBTAATCKYTBTACBGTBCTTTTTGDTAASSWTAAWAARA +TTGGCTAAGWGRADTYACATAGCTCBTAGATAWAGCAATNGTATMATGTTKMMAGTAWTC +CCNTSGAAWATWCAAAAMACTGAADNTYGATNAATCCGAYWNCTAACGTTAGAGDTTTTC +ATCTGGKRTAVGAABVCTGWGBTCTDVGKATTBTCTAAGGVADAAAVWTCTAGGGGAGGG +TTAGAACAATTAAHTAATNAAATGCATKATCTAAYRTDTCAGSAYTTYHGATRTTWAVTA +BGNTCDACAGBCCRCAGWCRTCABTGMMAWGMCTCAACCGATRTGBCAVAATCGTDWDAA +CAYAWAATWCTGGTAHCCCTAAGATAACSCTTAGTGSAACAWTBGTCDTTDGACWDBAAC +HTTTNGSKTYYAAYGGATNTGATTTAARTTAMBAATCTAAGTBTCATYTAACTTADTGTT +TCGATACGAAHGGCYATATACCWDTKYATDCSHTDTCAAAATGTGBACTGSCCVGATGTA +TCMMAGCCTTDAAABAATGAAGAGTAACTHATMGVTTAATAACCCGGTTVSANTGCAATT +GTGAGATTTAMGTTTAMAAYGCTGACAYAAAAAGGCACAMYTAAGVGGCTGGAABVTACG +GATTSTYGTBVAKTATWACCGTGTKAGTDTGTATGTTTAAAGGAAAAAGTAACATARAAA +GGTYCAMNYAAABTATAGNTSATANAGTCATCCTATWADKAACTRGTMSACDGTATSAYT +AAHSHGTAABYGACTYTATADTGSTATAGAGAAATCGNTAAAGGAAATCAGTTGTNCYMV +TNACDRTATBNATATASTAGAAMSCGGGANRCKKMCAAACATTNAGTCTRMAATBMTACC +CGTACTTCTBGDSYAATWGAAAATGACADDCHAKAAAYATATTKTTTTCACANACWAGAA +AKATCCTTATTAYKHKCTAAACARTATTTTDATBTVWCYGCAATACTAGGKAAASTTDGA +MGGCHTTHAATVCAHDRYAGGRCTATACGTCMAGAGAGCTBTHGNACARTCCBDCTAAGA +GCGGCTTTARTAAAGAATCCNAGTAWBTGACTTGAATTACWTVACAGAAABCAATNAAAC +CGTNTRANTTGAYCMAWBADTANABRGGTKTHTWTAGTTVCTMBKTAGMTVKCCAGCANT +TVAGSWTTAGCCGCRHTTTCCTTHNTATTAAGAAGAATAGGMTRAARTCTABGTACDTTT +TATAAVDHAHTATAGATCCTAGTAAGYTWATDWCATGAGGGATAGTAAMDMNGBASTWAM +TSTATRBAYDABATGTATATYCGCACTGTTTTAACMCWBTATAWAGTATBTSTATVTTAR +CCTMTTAAKADATCAACTAATYTSVTAKGDATTATGCKTCAYCAKAATACTTKAANGAGT +ATTSDAGATCGGAAATACTTAAYAAVGTATMCGCTTGTGTDCTAATYTATTTTATTTWAA +CAGWRCTATGTAGMTGTTTGTTYKTNGTTKTCAGAACNTRACCTACKTGSRATGTGGGGG +CTGTCATTAAGTAAATNGSTTABCCCCTCGCAGCTCWHTCGCGAAGCAVATGCKACGHCA +ACAKTTAATAACASAAADATTWNYTGTAATTGTTCGTMHACHTWATGTGCWTTTTGAAHY +ACTTTGTAYAMSAAACTTAADAAATATAGTABMATATYAATGSGGTAGTTTGTGTBYGGT +TWSGSVGWMATTDMTCCWWCABTCSVACAGBAATGTTKATBGTCAATAATCTTCTTAAAC +ARVAATHAGYBWCTRWCABGTWWAATCTAAGTCASTAAAKTAAGVKBAATTBGABACGTA +AGGTTAAATAAAAACTRMDTWBCTTTTTAATAAAAGATMGCCTACKAKNTBAGYRASTGT +ASSTCGTHCGAAKTTATTATATTYTTTGTAGAACATGTCAAAACTWTWTHGKTCCYAATA +AAGTGGAYTMCYTAARCSTAAATWAKTGAATTTRAGTCTSSATACGACWAKAASATDAAA +TGYYACTSAACAAHAKTSHYARGASTATTATTHAGGYGGASTTTBGAKGATSANAACACD +TRGSTTRAAAAAAAACAAGARTCVTAGTAAGATAWATGVHAAKATWGAAAAGTYAHVTAC +TCTGRTGTCAWGATRVAAKTCGCAAVCGASWGGTTRTCSAMCCTAACASGWKKAWDAATG +ACRCBACTATGTGTCTTCAAAHGSCTATATTTCGTVWAGAAGTAYCKGARAKSGKAGTAN +TTTCYACATWATGTCTAAAADMDTWCAATSTKDACAMAADADBSAAATAGGCTHAHAGTA +CGACVGAATTATAAAGAHCCVAYHGHTTTACATSTTTATGNCCMTAGCATATGATAVAAG +>THREE Homo sapiens frequency +ATATTTATCTTTTCACTTCCTACATTGGTCAGACCATTATTCGACACGTGGCGTCATTTT +GTCATACCGGGTAATGTTGGAAACAAAACGTACTGATAAAATACTGAGTTGTAAACTCTA +ATCAGATAACGCGCTTGGATATTAAGATTCACACAGGGGTTTCGGCTGTAAAAAAACTTG +TGGAGCTGTTCTGGGACAGATAAGTTGTACCTCGTACTTAGCTAATTAATGAACCAACTG +ATTACGATAGAACAATTCTGAGGCCGCCAGGACAGCCAAATTTTAATCTTATAAAGCTGG +AAACAGCCGGTATTAGCTTCTCGCATACTTTGCCTGCATTGGTACCTTACAGATATCAGC +GTAGTCATATACACCTCGGTCTCAGCTAAGCTTGTATCTCTTAGAGTAGTTCAAAGATAG +TGGACAATACCTGTGGAATCGATTGCAGATATGGATTTATTTAACTACTGAGTCTCATTC +ACAAGCTAAGCAAGGAGCACGTTTTGGTGCCGGCATACCGATTTGCTATCATGTCAGCAA +ATTTGCGTTGTATTCCTAGTTGCACCCATTAAGGCCACACTCCGAACCTAATTATTACAT +CGCAAAGACATGTACGAAGGACCCGATGTCGAATAGAAGGGAGGACTGTTCATTGGAAGC +TAGACCAGAGGAATCGCAAAGATGCAACTCTTACAATAAAAATCTAATTTCAGTCAACAC +GCAATTTCTATAAGGTTTCCGATAATAATGAACCGTCTTCCACAGGGGAATTTGCCATGC +TCGTAAAAGTAGTTAATCCAAGTAGAAGAAATTTTGATAATGTTTTAAGTTGGCACGAAG +GAATTCAGAGAGATCTTACCTAACAAAGGCATTAGTAGATGTTCCTTGGTTCACACTCGG +TCAATCAGAGCACATACTACGGGCGATACCGGGAATGACACAACATCAATGAGATTGTTA +AGTGAGGTAATTGACTTTAGAGGACTCGATCAGTATACTGTCACTATGAACATCGTATTA +ATTGTTATCCGATATATACACCACCGATTTGCTTGTGCAAGGTTACAGACCCATTCGATA +AATACAAACACGGAGCGATATTATTTAAGGAGTGCTGTCTTCAAAAGAATTATTCCCACA +CCGACATAAGAACTTCGCTCCGTCATTCCAGATTTAAATAACATAACGTAACGCTTTGCT +GATAACATAACATAACCGAGAATTTGCTTAGGAAATTTGGAGCAATATTGCATTGTTTCT +CAGTCATCACAAGGCCCGCCAAAGAACTCTGAGAATCAGGATTCAACATGATTGGTAAGA +CTCTATATATATAACTTAATTCTTGTGTCCGGAGATAGAAAGAGGACGAGAGATACTACG +AAAGAAAGTGTACTTCGATGTATCAATTCAGACGCCTTCTCTATCATCAACATTATAGGT +CTCGTATATGCTCGGCGCGATCTGCTTCTCTCCGCCAATAGCCCCATAGTGTATTTCAAG +CGCAGTAACAGTGAAATCGTTACGAAGGTAGGGATGTTGCTTATAATTGTCGTAACTTAT +CGCTTATGTATCTTTCAAGAATGAACGGCAGCATATACATACGTTCTACCTTTAGCTACA +AAGCATCCATATACTCCCTCTCATGATTGAAACTCTTCCCTATTTTGTAGCCAATAGTGA +AAGCGTATTAGTATAAATTCGTCGGTTTTTCACTCGCAACTGTTATACTCTGCAAACAAA +CGAAAGCCTCATAGTACAAACCTAAAGCTACATACTTCATCATTGGCAGACCAGTGGCGG +TATTTCTACGGAAGCATCACTATAGATATAAAGTTTCCCTTCATGTACGTCTGTTAACCA +TATCACAAGAAACTGCTATCTCTGTCACGTAACAATTCACGCGCCTTATCGCCAAATGTT +CATATATGCGCGGTATACGTATGAACGAATACTAATTAGTATAACGGAGGATTCACGGGA +GGGATACTTGGGGCATTTATAAATCGTCTAAAAATTTTCTATCAGCACTTGCGGGTTATA +GTGGATTACTAGGCAACATAATATTCTGTATTGGTCCAAATGACGCTATAGATAAATTAG +CAAAATACATTGTTTCCATTTATGTAAGTCGAAACTCCAGGACTCCCGGGAACCAGTTAA +ACCGTCTGGAAAAGACACATTGTGAGCGGGACTTCAATGATAGCTTTCAATGAGCTTCTC +ATGCTTGGGGTCTGTACATATATGTTGGCGAAATTATCGTCTGTATTCTGTTATGCTTTG +ATCATGGGTTATTAGTATAGTGTCCGGTTAAGTACCAATACCGCTAGAGACCCGACCTAA +GTCGATAACTAACGATCATCGACGTAAGGATCGTCTCGATCAGTACTTCAGTCTAGATCT +GGGAATAGTAACTCGTTAGTGAACTATGTCGTGTCATAACTCTAAAATGCAATCAAATCT +TATTATTGAGTATTGATTATATAAAGCATCCGCTTAGCTTTACCCTCAAATGTTATATGC +AATTTAAAGCGCTTGATATCGTCTACTCAAGTTCAGGTTTCACATGGCCGCAACGTGACG +TTATTAGAGGTGGGTCATCATCTCTGAGGCTAGTGATGTTGAATACTCATTGAATGGGAA +GTGGAATACCATGCTCGTAGGTAACAGCATGACCTATAAAATATACTATGGGTGTGTGGT +AGATCAATATTGTTCAAGCATATCGTAACAATAACGGCTGAAATGTTACTGACATGAAAG +AGGGAGTCCAAACCATTCTAACAGCTGATCAAGTCGTCTAAAAACGCCTGGTTCAGCCTT +AAGAGTTATAAGCCAGACAAATTGTATCAATAGAGAATCCGTAAATTCCTCGGCCAACCT +CTTGCAAAGACATCACTATCAATATACTACCGTGATCTTAATTAGTGAACTTATATAAAT +ATCTACAACCAGATTCAACGGAAAAGCTTTAGTGGATTAGAAATTGCCAAGAATCACATT +CATGTGGGTTCGAATGCTTTAGTAATACCATTTCGCCGAGTAGTCACTTCGCTGAACTGT +CGTAAATTGCTATGACATAATCGAAAAGGATTGTCAAGAGTCGATTACTGCGGACTAATA +ATCCCCACGGGGGTGGTCTCATGTCTCCCCAGGCGAGTGGGGACGGTTGATAAACACGCT +GCATCGCGGACTGATGTTCCCAGTATTACATAGTCACATTGGATTGCGAGTAGTCTACCT +ATTTATGAGCGAGAGATGCCTCTAACTACTTCGACTTTTAAAACCTTTCCACGCCAGTAT +TCGGCGAAAGGGAAGTATTAAGGGTTGTCATAATTAAGCTGATACCACTTCAGACTTTGC +TCTACTTCTGTCTTTCATTGGTTTAGTAAAGTCTGTCCATTCGTCGAGACCGTCTTTTGC +AGCCTCATTCTACCAACTGCTCCGACTCTTAGTCTGCTTCTCCCAGCGTTATAACAAGAG +GCATTTTGTCATCCTTAAAACAATAATAAAGAACTCGGAGCACTGATATAATGACTGAAT +TAGAACCGCTTAAAAATACAACGAATAGATAAGACTATCGGATAAGATCTAATATGTAGT +GATTAAGCCCTTTATTAATTAATAATAGTTACCCTTTCTGATGTAACGCGACATATTACG +ATTTAGTGGCACGTCTGAATTGCAAAGCAGATCTCTACCCGATTTTTATTATAAATCCCG +TATACATCTTGACTTGAGTAATTGTTCATCTTTTTATATCTCTTCGTACTACAAATAATT +AATATCTCAACCCGTATTGTGTGATTCTAATTACCAACAGAATACGAGGAGGTTTTTGCT +TAGGGCCATATATAATGAATCTATCTCGTTTATTCGCGGAACCCGAGATAACATTACGAT +GTAACTATTTTAGAGAACTTAATACAAGAAACATTGCTGATTACTCATAACTAAATGCTT +GGTAATATATCCTCAGTGCCCCTACCATCTTTTACGCAGGGATGTAATTACTTAGGATTC +ATTGTGTAAGAATTACAATGAACGATGGATATGAAGGCATGTTGCGAGGTGTTCCTTGGT +ATGTGAAGTTCGCAGGGCAACAAAAATTTCGCAGAATAGGCCTCAAAGTATTGGTAAAGA +AGACAACTAATCATCACGAGCTTCTGATATCAATACGAACGAGTCCTGTGATGGATGAAA +GAAAGTCGTATCGAAAATGTCAAGAGTCTGCCCAATGTAACTTACTTCAAAAAATAACGC +TTCCGCCAAGTACGTTCGAATAAACGTAATTTTAAAAATACATAAGGGGTGTTAGAAAGT +AAGCGACGGGATATAAGTTAGACTCAAGATTCCGCCGTAAAACGAGACTGATTCCGAAGA +TTGTTCGTGGATCTGGTCATGACTTTCACTGAGTAAGGAGTTTCGACATATGTCAATAAA +CACAAAAATAGAAGCTATTCGATCTGAAAAATATTAGGACAAGAAACTATCTCACGCTAG +CCCAGAATATTCACTCACCCACGGGCGATACTAAAGCACTATATAGTCGCGTGATTACTA +TACATATGGTACACATAAGAATCACGATCAGGTTCTCAATTTTCAACAATATATGTTTAT +TTGCATAGGTAATATTAGGCCTTTAAGAGAAGGATGGGTGAGATACTCCGGGGATGGCGG +CAATAAAGAAAAACACGATATGAGTAATAGGATCCTAATATCTTGGCGAGAGACTTAAGG +TACGAATTTTGCGCAATCTATTTTTTACTTGGCCAGAATTCATGTATGGTATAAGTACGA +ACTTTTTTGATCACTTTCATGGCTACCTGATTAGGATAGTTTGAGGAATTTCCCAAATAT +ACCGATTTAATATACACTAGGGCTTGTCACTTTGAGTCAGAAAAAGAATATAATTACTTA +GGGTAATGCTGCATACATATTCTTATATTGCAAAGGTTCTCTGGGTAATCTTGAGCCTTC +ACGATACCTGGTGAAGTGTT diff --git a/test/pending/shootout/revcomp.scala-2.scala b/test/pending/shootout/revcomp.scala-2.scala new file mode 100644 index 0000000000..92260ad021 --- /dev/null +++ b/test/pending/shootout/revcomp.scala-2.scala @@ -0,0 +1,92 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +import java.io._ +import scala.collection.mutable.Stack + +object revcomp { + + val IUB = IUBCodeComplements + + def IUBCodeComplements() = { + val code = "ABCDGHKMNRSTVWYabcdghkmnrstvwy".getBytes + val comp = "TVGHCDMKNYSABWRTVGHCDMKNYSABWR".getBytes + val a: Array[Byte] = new Array( 'z'.toByte ) + + for (indexValue <- code zip comp) + indexValue match { case Pair(i,v) => a(i) = v } + + a + } + + + type LineStack = Stack[Array[Byte]] + + def main(args: Array[String]) = { + val r = new BufferedReader(new InputStreamReader(System.in)) + val w = new BufferedOutputStream(System.out) + + var lines: LineStack = new Stack + var desc = "" + + var line = r.readLine + while (line != null) { + val c = line.charAt(0) + if (c == '>'){ + if (desc.length > 0){ + complementReverseWrite(desc, lines, w) + lines = new Stack + } + desc = line + } else { + if (c != ';') lines += line.getBytes + } + line = r.readLine + } + r.close + + if (desc.length > 0) complementReverseWrite(desc, lines, w) + w.close + } + + + def complementReverseWrite(desc: String, lines: LineStack, + w: BufferedOutputStream) = { + + def inplaceComplementReverse(b: Array[Byte]) = { + var i = 0 + var j = b.length - 1 + while (i < j){ + val swap = b(i) + b(i) = IUB( b(j) ) + b(j) = IUB( swap ) + i = i + 1 + j = j - 1 + } + if (i == j) b(i) = IUB( b(i) ) + } + + val nl = '\n'.toByte + w.write(desc.getBytes); w.write(nl) + + val n = 60 + val k = if (lines.isEmpty) 0 else lines.top.length + val isSplitLine = k < n + var isFirstLine = true + + while (!lines.isEmpty) { + val line = lines.pop + inplaceComplementReverse(line) + + if (isSplitLine){ + if (isFirstLine){ w.write(line); isFirstLine = false } + else { w.write(line,0,n-k); w.write(nl); w.write(line,n-k,k) } + } + else { w.write(line); w.write(nl) } + } + if (isSplitLine && !isFirstLine) w.write(nl) + } + +} diff --git a/test/pending/shootout/revcomp.scala-2.scala.runner b/test/pending/shootout/revcomp.scala-2.scala.runner new file mode 100644 index 0000000000..f51d6170c8 --- /dev/null +++ b/test/pending/shootout/revcomp.scala-2.scala.runner @@ -0,0 +1,6 @@ +object Test extends Application { + for(n <- List(25000,250000,2500000)) { + System.setIn(new java.io.FileInputStream(System.getProperty("partest.cwd")+"/revcomp-input"+n+".txt")) + revcomp.main(Array(n.toString)) + } +} diff --git a/test/pending/shootout/revcomp.scala-3.check b/test/pending/shootout/revcomp.scala-3.check new file mode 100644 index 0000000000..14d792ade8 --- /dev/null +++ b/test/pending/shootout/revcomp.scala-3.check @@ -0,0 +1,171 @@ +>ONE Homo sapiens alu +CGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAC +CTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACA +GGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCAT +GTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAA +AGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTC +TGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGG +GTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACC +ACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTG +GTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTA +CAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCT +GGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTC +TCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAAT +TTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCT +GACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCA +CCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGC +GCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCC +TCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTA +GTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGAT +CCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCT +TTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTC +ACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTG +GGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGT +TTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGG +CCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAG +TCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCG +CCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGC +GCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGG +CCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGC +TGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCG +CCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCA +AGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCC +CGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTC +GAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGC +GTGAGCCACCGCGCCCGGCC +>TWO IUB ambiguity codes +TAGGDHACHATCRGTRGVTGAGWTATGYTGCTGTCABACDWVTRTAAGAVVAGATTTNDA +GASMTCTGCATBYTTCAAKTTACMTATTACTTCATARGGYACMRTGTTTTYTATACVAAT +TTCTAKGDACKADACTATATNTANTCGTTCACGBCGYSCBHTANGGTGATCGTAAAGTAA +CTATBAAAAGATSTGWATBCSGAKHTTABBAACGTSYCATGCAAVATKTSKTASCGGAAT +WVATTTNTCCTTCTTCTTDDAGTGGTTGGATACVGTTAYMTMTBTACTTTHAGCTAGBAA +AAGAGKAAGTTRATWATCAGATTMDDTTTAAAVAAATATTKTCYTAAATTVCNKTTRACG +ADTATATTTATGATSADSCAATAWAGCGRTAGTGTAAGTGACVGRADYGTGCTACHVSDT +CTVCARCSYTTAATATARAAAATTTAATTTACDAATTGBACAGTAYAABATBTGCAGBVG +TGATGGDCAAAATBNMSTTABKATTGGSTCCTAGBTTACTTGTTTAGTTTATHCGATSTA +AAGTCGAKAAASTGTTTTAWAKCAGATATACTTTTMTTTTGBATAGAGGAGCMATGATRA +AAGGNCAYDCCDDGAAAGTHGBTAATCKYTBTACBGTBCTTTTTGDTAASSWTAAWAARA +TTGGCTAAGWGRADTYACATAGCTCBTAGATAWAGCAATNGTATMATGTTKMMAGTAWTC +CCNTSGAAWATWCAAAAMACTGAADNTYGATNAATCCGAYWNCTAACGTTAGAGDTTTTC +ATCTGGKRTAVGAABVCTGWGBTCTDVGKATTBTCTAAGGVADAAAVWTCTAGGGGAGGG +TTAGAACAATTAAHTAATNAAATGCATKATCTAAYRTDTCAGSAYTTYHGATRTTWAVTA +BGNTCDACAGBCCRCAGWCRTCABTGMMAWGMCTCAACCGATRTGBCAVAATCGTDWDAA +CAYAWAATWCTGGTAHCCCTAAGATAACSCTTAGTGSAACAWTBGTCDTTDGACWDBAAC +HTTTNGSKTYYAAYGGATNTGATTTAARTTAMBAATCTAAGTBTCATYTAACTTADTGTT +TCGATACGAAHGGCYATATACCWDTKYATDCSHTDTCAAAATGTGBACTGSCCVGATGTA +TCMMAGCCTTDAAABAATGAAGAGTAACTHATMGVTTAATAACCCGGTTVSANTGCAATT +GTGAGATTTAMGTTTAMAAYGCTGACAYAAAAAGGCACAMYTAAGVGGCTGGAABVTACG +GATTSTYGTBVAKTATWACCGTGTKAGTDTGTATGTTTAAAGGAAAAAGTAACATARAAA +GGTYCAMNYAAABTATAGNTSATANAGTCATCCTATWADKAACTRGTMSACDGTATSAYT +AAHSHGTAABYGACTYTATADTGSTATAGAGAAATCGNTAAAGGAAATCAGTTGTNCYMV +TNACDRTATBNATATASTAGAAMSCGGGANRCKKMCAAACATTNAGTCTRMAATBMTACC +CGTACTTCTBGDSYAATWGAAAATGACADDCHAKAAAYATATTKTTTTCACANACWAGAA +AKATCCTTATTAYKHKCTAAACARTATTTTDATBTVWCYGCAATACTAGGKAAASTTDGA +MGGCHTTHAATVCAHDRYAGGRCTATACGTCMAGAGAGCTBTHGNACARTCCBDCTAAGA +GCGGCTTTARTAAAGAATCCNAGTAWBTGACTTGAATTACWTVACAGAAABCAATNAAAC +CGTNTRANTTGAYCMAWBADTANABRGGTKTHTWTAGTTVCTMBKTAGMTVKCCAGCANT +TVAGSWTTAGCCGCRHTTTCCTTHNTATTAAGAAGAATAGGMTRAARTCTABGTACDTTT +TATAAVDHAHTATAGATCCTAGTAAGYTWATDWCATGAGGGATAGTAAMDMNGBASTWAM +TSTATRBAYDABATGTATATYCGCACTGTTTTAACMCWBTATAWAGTATBTSTATVTTAR +CCTMTTAAKADATCAACTAATYTSVTAKGDATTATGCKTCAYCAKAATACTTKAANGAGT +ATTSDAGATCGGAAATACTTAAYAAVGTATMCGCTTGTGTDCTAATYTATTTTATTTWAA +CAGWRCTATGTAGMTGTTTGTTYKTNGTTKTCAGAACNTRACCTACKTGSRATGTGGGGG +CTGTCATTAAGTAAATNGSTTABCCCCTCGCAGCTCWHTCGCGAAGCAVATGCKACGHCA +ACAKTTAATAACASAAADATTWNYTGTAATTGTTCGTMHACHTWATGTGCWTTTTGAAHY +ACTTTGTAYAMSAAACTTAADAAATATAGTABMATATYAATGSGGTAGTTTGTGTBYGGT +TWSGSVGWMATTDMTCCWWCABTCSVACAGBAATGTTKATBGTCAATAATCTTCTTAAAC +ARVAATHAGYBWCTRWCABGTWWAATCTAAGTCASTAAAKTAAGVKBAATTBGABACGTA +AGGTTAAATAAAAACTRMDTWBCTTTTTAATAAAAGATMGCCTACKAKNTBAGYRASTGT +ASSTCGTHCGAAKTTATTATATTYTTTGTAGAACATGTCAAAACTWTWTHGKTCCYAATA +AAGTGGAYTMCYTAARCSTAAATWAKTGAATTTRAGTCTSSATACGACWAKAASATDAAA +TGYYACTSAACAAHAKTSHYARGASTATTATTHAGGYGGASTTTBGAKGATSANAACACD +TRGSTTRAAAAAAAACAAGARTCVTAGTAAGATAWATGVHAAKATWGAAAAGTYAHVTAC +TCTGRTGTCAWGATRVAAKTCGCAAVCGASWGGTTRTCSAMCCTAACASGWKKAWDAATG +ACRCBACTATGTGTCTTCAAAHGSCTATATTTCGTVWAGAAGTAYCKGARAKSGKAGTAN +TTTCYACATWATGTCTAAAADMDTWCAATSTKDACAMAADADBSAAATAGGCTHAHAGTA +CGACVGAATTATAAAGAHCCVAYHGHTTTACATSTTTATGNCCMTAGCATATGATAVAAG +>THREE Homo sapiens frequency +ATATTTATCTTTTCACTTCCTACATTGGTCAGACCATTATTCGACACGTGGCGTCATTTT +GTCATACCGGGTAATGTTGGAAACAAAACGTACTGATAAAATACTGAGTTGTAAACTCTA +ATCAGATAACGCGCTTGGATATTAAGATTCACACAGGGGTTTCGGCTGTAAAAAAACTTG +TGGAGCTGTTCTGGGACAGATAAGTTGTACCTCGTACTTAGCTAATTAATGAACCAACTG +ATTACGATAGAACAATTCTGAGGCCGCCAGGACAGCCAAATTTTAATCTTATAAAGCTGG +AAACAGCCGGTATTAGCTTCTCGCATACTTTGCCTGCATTGGTACCTTACAGATATCAGC +GTAGTCATATACACCTCGGTCTCAGCTAAGCTTGTATCTCTTAGAGTAGTTCAAAGATAG +TGGACAATACCTGTGGAATCGATTGCAGATATGGATTTATTTAACTACTGAGTCTCATTC +ACAAGCTAAGCAAGGAGCACGTTTTGGTGCCGGCATACCGATTTGCTATCATGTCAGCAA +ATTTGCGTTGTATTCCTAGTTGCACCCATTAAGGCCACACTCCGAACCTAATTATTACAT +CGCAAAGACATGTACGAAGGACCCGATGTCGAATAGAAGGGAGGACTGTTCATTGGAAGC +TAGACCAGAGGAATCGCAAAGATGCAACTCTTACAATAAAAATCTAATTTCAGTCAACAC +GCAATTTCTATAAGGTTTCCGATAATAATGAACCGTCTTCCACAGGGGAATTTGCCATGC +TCGTAAAAGTAGTTAATCCAAGTAGAAGAAATTTTGATAATGTTTTAAGTTGGCACGAAG +GAATTCAGAGAGATCTTACCTAACAAAGGCATTAGTAGATGTTCCTTGGTTCACACTCGG +TCAATCAGAGCACATACTACGGGCGATACCGGGAATGACACAACATCAATGAGATTGTTA +AGTGAGGTAATTGACTTTAGAGGACTCGATCAGTATACTGTCACTATGAACATCGTATTA +ATTGTTATCCGATATATACACCACCGATTTGCTTGTGCAAGGTTACAGACCCATTCGATA +AATACAAACACGGAGCGATATTATTTAAGGAGTGCTGTCTTCAAAAGAATTATTCCCACA +CCGACATAAGAACTTCGCTCCGTCATTCCAGATTTAAATAACATAACGTAACGCTTTGCT +GATAACATAACATAACCGAGAATTTGCTTAGGAAATTTGGAGCAATATTGCATTGTTTCT +CAGTCATCACAAGGCCCGCCAAAGAACTCTGAGAATCAGGATTCAACATGATTGGTAAGA +CTCTATATATATAACTTAATTCTTGTGTCCGGAGATAGAAAGAGGACGAGAGATACTACG +AAAGAAAGTGTACTTCGATGTATCAATTCAGACGCCTTCTCTATCATCAACATTATAGGT +CTCGTATATGCTCGGCGCGATCTGCTTCTCTCCGCCAATAGCCCCATAGTGTATTTCAAG +CGCAGTAACAGTGAAATCGTTACGAAGGTAGGGATGTTGCTTATAATTGTCGTAACTTAT +CGCTTATGTATCTTTCAAGAATGAACGGCAGCATATACATACGTTCTACCTTTAGCTACA +AAGCATCCATATACTCCCTCTCATGATTGAAACTCTTCCCTATTTTGTAGCCAATAGTGA +AAGCGTATTAGTATAAATTCGTCGGTTTTTCACTCGCAACTGTTATACTCTGCAAACAAA +CGAAAGCCTCATAGTACAAACCTAAAGCTACATACTTCATCATTGGCAGACCAGTGGCGG +TATTTCTACGGAAGCATCACTATAGATATAAAGTTTCCCTTCATGTACGTCTGTTAACCA +TATCACAAGAAACTGCTATCTCTGTCACGTAACAATTCACGCGCCTTATCGCCAAATGTT +CATATATGCGCGGTATACGTATGAACGAATACTAATTAGTATAACGGAGGATTCACGGGA +GGGATACTTGGGGCATTTATAAATCGTCTAAAAATTTTCTATCAGCACTTGCGGGTTATA +GTGGATTACTAGGCAACATAATATTCTGTATTGGTCCAAATGACGCTATAGATAAATTAG +CAAAATACATTGTTTCCATTTATGTAAGTCGAAACTCCAGGACTCCCGGGAACCAGTTAA +ACCGTCTGGAAAAGACACATTGTGAGCGGGACTTCAATGATAGCTTTCAATGAGCTTCTC +ATGCTTGGGGTCTGTACATATATGTTGGCGAAATTATCGTCTGTATTCTGTTATGCTTTG +ATCATGGGTTATTAGTATAGTGTCCGGTTAAGTACCAATACCGCTAGAGACCCGACCTAA +GTCGATAACTAACGATCATCGACGTAAGGATCGTCTCGATCAGTACTTCAGTCTAGATCT +GGGAATAGTAACTCGTTAGTGAACTATGTCGTGTCATAACTCTAAAATGCAATCAAATCT +TATTATTGAGTATTGATTATATAAAGCATCCGCTTAGCTTTACCCTCAAATGTTATATGC +AATTTAAAGCGCTTGATATCGTCTACTCAAGTTCAGGTTTCACATGGCCGCAACGTGACG +TTATTAGAGGTGGGTCATCATCTCTGAGGCTAGTGATGTTGAATACTCATTGAATGGGAA +GTGGAATACCATGCTCGTAGGTAACAGCATGACCTATAAAATATACTATGGGTGTGTGGT +AGATCAATATTGTTCAAGCATATCGTAACAATAACGGCTGAAATGTTACTGACATGAAAG +AGGGAGTCCAAACCATTCTAACAGCTGATCAAGTCGTCTAAAAACGCCTGGTTCAGCCTT +AAGAGTTATAAGCCAGACAAATTGTATCAATAGAGAATCCGTAAATTCCTCGGCCAACCT +CTTGCAAAGACATCACTATCAATATACTACCGTGATCTTAATTAGTGAACTTATATAAAT +ATCTACAACCAGATTCAACGGAAAAGCTTTAGTGGATTAGAAATTGCCAAGAATCACATT +CATGTGGGTTCGAATGCTTTAGTAATACCATTTCGCCGAGTAGTCACTTCGCTGAACTGT +CGTAAATTGCTATGACATAATCGAAAAGGATTGTCAAGAGTCGATTACTGCGGACTAATA +ATCCCCACGGGGGTGGTCTCATGTCTCCCCAGGCGAGTGGGGACGGTTGATAAACACGCT +GCATCGCGGACTGATGTTCCCAGTATTACATAGTCACATTGGATTGCGAGTAGTCTACCT +ATTTATGAGCGAGAGATGCCTCTAACTACTTCGACTTTTAAAACCTTTCCACGCCAGTAT +TCGGCGAAAGGGAAGTATTAAGGGTTGTCATAATTAAGCTGATACCACTTCAGACTTTGC +TCTACTTCTGTCTTTCATTGGTTTAGTAAAGTCTGTCCATTCGTCGAGACCGTCTTTTGC +AGCCTCATTCTACCAACTGCTCCGACTCTTAGTCTGCTTCTCCCAGCGTTATAACAAGAG +GCATTTTGTCATCCTTAAAACAATAATAAAGAACTCGGAGCACTGATATAATGACTGAAT +TAGAACCGCTTAAAAATACAACGAATAGATAAGACTATCGGATAAGATCTAATATGTAGT +GATTAAGCCCTTTATTAATTAATAATAGTTACCCTTTCTGATGTAACGCGACATATTACG +ATTTAGTGGCACGTCTGAATTGCAAAGCAGATCTCTACCCGATTTTTATTATAAATCCCG +TATACATCTTGACTTGAGTAATTGTTCATCTTTTTATATCTCTTCGTACTACAAATAATT +AATATCTCAACCCGTATTGTGTGATTCTAATTACCAACAGAATACGAGGAGGTTTTTGCT +TAGGGCCATATATAATGAATCTATCTCGTTTATTCGCGGAACCCGAGATAACATTACGAT +GTAACTATTTTAGAGAACTTAATACAAGAAACATTGCTGATTACTCATAACTAAATGCTT +GGTAATATATCCTCAGTGCCCCTACCATCTTTTACGCAGGGATGTAATTACTTAGGATTC +ATTGTGTAAGAATTACAATGAACGATGGATATGAAGGCATGTTGCGAGGTGTTCCTTGGT +ATGTGAAGTTCGCAGGGCAACAAAAATTTCGCAGAATAGGCCTCAAAGTATTGGTAAAGA +AGACAACTAATCATCACGAGCTTCTGATATCAATACGAACGAGTCCTGTGATGGATGAAA +GAAAGTCGTATCGAAAATGTCAAGAGTCTGCCCAATGTAACTTACTTCAAAAAATAACGC +TTCCGCCAAGTACGTTCGAATAAACGTAATTTTAAAAATACATAAGGGGTGTTAGAAAGT +AAGCGACGGGATATAAGTTAGACTCAAGATTCCGCCGTAAAACGAGACTGATTCCGAAGA +TTGTTCGTGGATCTGGTCATGACTTTCACTGAGTAAGGAGTTTCGACATATGTCAATAAA +CACAAAAATAGAAGCTATTCGATCTGAAAAATATTAGGACAAGAAACTATCTCACGCTAG +CCCAGAATATTCACTCACCCACGGGCGATACTAAAGCACTATATAGTCGCGTGATTACTA +TACATATGGTACACATAAGAATCACGATCAGGTTCTCAATTTTCAACAATATATGTTTAT +TTGCATAGGTAATATTAGGCCTTTAAGAGAAGGATGGGTGAGATACTCCGGGGATGGCGG +CAATAAAGAAAAACACGATATGAGTAATAGGATCCTAATATCTTGGCGAGAGACTTAAGG +TACGAATTTTGCGCAATCTATTTTTTACTTGGCCAGAATTCATGTATGGTATAAGTACGA +ACTTTTTTGATCACTTTCATGGCTACCTGATTAGGATAGTTTGAGGAATTTCCCAAATAT +ACCGATTTAATATACACTAGGGCTTGTCACTTTGAGTCAGAAAAAGAATATAATTACTTA +GGGTAATGCTGCATACATATTCTTATATTGCAAAGGTTCTCTGGGTAATCTTGAGCCTTC +ACGATACCTGGTGAAGTGTT diff --git a/test/pending/shootout/revcomp.scala-3.scala b/test/pending/shootout/revcomp.scala-3.scala new file mode 100644 index 0000000000..ae12f0499b --- /dev/null +++ b/test/pending/shootout/revcomp.scala-3.scala @@ -0,0 +1,147 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy +*/ + +import java.io._ +import scala.collection.mutable.Stack + +object revcomp { + def main(args: Array[String]) = { + val out = new FastaOutputStream(System.out) + val in = new FastaInputStream(System.in) + + out.writeReverseComplement( in.readSequenceStack ) + out.writeReverseComplement( in.readSequenceStack ) + out.writeReverseComplement( in.readSequenceStack ) + + in.close + out.close + } +} + + +trait FastaByteStream { + val nl = '\n'.toByte + + type Line = Array[Byte] + type LineStack = Stack[Line] +} + + +// extend the Java BufferedInputStream class + +final class FastaInputStream(in: InputStream) + extends BufferedInputStream(in) with FastaByteStream { + + val gt = '>'.toByte + val sc = ';'.toByte + + def readSequenceStack(): Pair[Line,LineStack] = { + var header: Line = null + val lines: LineStack = new Stack + + var line = readLine() + while (line != null) { + val c = line(0) + if (c == gt){ // '>' + if (header == null){ + header = line + } else { + pos = pos - line.length - 1 // reposition to start of line + return Pair(header,lines) + } + } else { + if (c != sc) lines push line // ';' + } + line = readLine() + } + return Pair(header,lines) + } + + def readLine() = { + var bytes: Line = null + if (in == null) bytes + else { + mark(128) // mark the start of the line + if (count == 0) read() // fill buffer + + var i = markpos + while (i < count && buf(i) != nl) i = i + 1 + + if (i >= count){ // line extends past end of buffer + pos = i; read(); i = pos; // fill buffer again + while (i < count && buf(i) != nl) i = i + 1 + } + + if (i < count){ + bytes = new Array(i - markpos) + System.arraycopy(buf, markpos, bytes, 0, i - markpos); + pos = i+1 + } + } + bytes + } +} + + +// extend the Java BufferedOutputStream class + +final class FastaOutputStream(in: OutputStream) + extends BufferedOutputStream(in) with FastaByteStream { + + private val IUB = IUBCodeComplements + + private def IUBCodeComplements() = { + val code = "ABCDGHKMNRSTVWYabcdghkmnrstvwy".getBytes + val comp = "TVGHCDMKNYSABWRTVGHCDMKNYSABWR".getBytes + val iub: Array[Byte] = new Array( 'z'.toByte ) + + for (indexValue <- code zip comp) + indexValue match { case Pair(i,v) => iub(i) = v } + + iub + } + + def writeReverseComplement(sequence: Pair[Line,LineStack]) = { + + def inplaceComplementReverse(b: Array[Byte]) = { + var i = 0 + var j = b.length - 1 + while (i < j){ + val swap = b(i) + b(i) = IUB( b(j) ) + b(j) = IUB( swap ) + i = i + 1 + j = j - 1 + } + if (i == j) b(i) = IUB( b(i) ) + } + + sequence match { + case Pair(header,lines) => { + + write(header); write(nl) + + val k = if (lines.isEmpty) 0 else lines.top.length + val LineLength = 60 + val isSplitLine = k < LineLength + var isFirstLine = true + + while (!lines.isEmpty) { + val line = lines.pop + inplaceComplementReverse(line) + + if (isSplitLine){ + if (isFirstLine){ write(line); isFirstLine = false } + else { write(line,0,LineLength-k); write(nl); write(line,LineLength-k,k) } + } + else { write(line); write(nl) } + } + + if (isSplitLine && !isFirstLine) write(nl) + } + } + } + +} diff --git a/test/pending/shootout/revcomp.scala-3.scala.runner b/test/pending/shootout/revcomp.scala-3.scala.runner new file mode 100644 index 0000000000..f51d6170c8 --- /dev/null +++ b/test/pending/shootout/revcomp.scala-3.scala.runner @@ -0,0 +1,6 @@ +object Test extends Application { + for(n <- List(25000,250000,2500000)) { + System.setIn(new java.io.FileInputStream(System.getProperty("partest.cwd")+"/revcomp-input"+n+".txt")) + revcomp.main(Array(n.toString)) + } +} diff --git a/test/pending/shootout/sieve.scala b/test/pending/shootout/sieve.scala new file mode 100644 index 0000000000..b494980ee4 --- /dev/null +++ b/test/pending/shootout/sieve.scala @@ -0,0 +1,43 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object sieve { + def main(args: Array[String]) = { + var n = toPositiveInt(args); + val start = 2; + val stop = 8192; + val isPrime = new Array[Boolean](stop+1); + var count: Int = 0; + + while (n>0) { + count = 0; + + for (i <- Iterator.range(start,stop+1)) + isPrime(i)=true; + + for (i <- Iterator.range(start,stop+1)) { + if( isPrime(i) ) { + var k = i+i; + while (k<=stop) { isPrime(k)=false; k=k+i; } + count = count+1; + } + } + n=n-1; + } + + Console.println("Count: " + count); + } + + + private def toPositiveInt(s: Array[String]) = { + val i = + try { Integer.parseInt(s(0)); } + catch { case _ => 1 } + if (i>0) i; else 1; + } +} + + + diff --git a/test/pending/shootout/sieve.scala.runner b/test/pending/shootout/sieve.scala.runner new file mode 100644 index 0000000000..893c3abe90 --- /dev/null +++ b/test/pending/shootout/sieve.scala.runner @@ -0,0 +1,3 @@ +object Test extends Application { + for(n <- List(300,600,900,1200)) sieve.main(Array(n.toString)) +} diff --git a/test/scaladoc/scala/IndexTest.scala b/test/scaladoc/scala/IndexTest.scala index 7679bab0c6..2d731643da 100644 --- a/test/scaladoc/scala/IndexTest.scala +++ b/test/scaladoc/scala/IndexTest.scala @@ -16,7 +16,7 @@ object Test extends Properties("Index") { val morepaths = Thread.currentThread.getContextClassLoader.getParent.asInstanceOf[URLClassLoader].getURLs.map(_.getPath) (paths ++ morepaths).mkString(java.io.File.pathSeparator) } - + val docFactory = { val settings = new doc.Settings({Console.err.println(_)}) @@ -27,9 +27,9 @@ object Test extends Properties("Index") { new doc.DocFactory(reporter, settings) } - + val indexModelFactory = doc.model.IndexModelFactory - + def createIndex(path: String): Option[Index] = { val maybeUniverse = { diff --git a/test/scaladoc/scala/html/HtmlFactoryTest.scala b/test/scaladoc/scala/html/HtmlFactoryTest.scala index cb31df3fb2..667691b702 100644 --- a/test/scaladoc/scala/html/HtmlFactoryTest.scala +++ b/test/scaladoc/scala/html/HtmlFactoryTest.scala @@ -229,7 +229,7 @@ object Test extends Properties("HtmlFactory") { case _ => false } } - + property("Trac #4420 - no whitespace at end of line") = { val files = createTemplates("Trac4420.scala") @@ -247,7 +247,7 @@ object Test extends Properties("HtmlFactory") { val lines = """ |type Bar = AnyRef { type Dingus <: T forSome { type T <: String } } |type Foo = AnyRef { ... /* 3 definitions in type refinement */ } - |def g (x: T forSome { type T <: String }): String + |def g (x: T forSome { type T <: String }): String |def h (x: Float): AnyRef { def quux(x: Int,y: Int): Int } |def hh (x: Float): AnyRef { def quux(x: Int,y: Int): Int } |def j (x: Int): Bar diff --git a/test/support/annotations/NestedAnnotations.java b/test/support/annotations/NestedAnnotations.java index 8f2327dcce..c4a98a0af3 100644 --- a/test/support/annotations/NestedAnnotations.java +++ b/test/support/annotations/NestedAnnotations.java @@ -10,14 +10,14 @@ public class NestedAnnotations { @OuterAnno(inner=@InnerAnno(name="inner")) String field; - - @Target({FIELD}) + + @Target({FIELD}) @Retention(RUNTIME) public static @interface InnerAnno { String name(); } - - @Target({FIELD}) + + @Target({FIELD}) @Retention(RUNTIME) public static @interface OuterAnno { InnerAnno inner(); |