diff options
Diffstat (limited to 'test')
372 files changed, 2297 insertions, 69762 deletions
diff --git a/test/benchmarking/AVL-insert-random.scala b/test/benchmarking/AVL-insert-random.scala deleted file mode 100644 index 7299e330f5..0000000000 --- a/test/benchmarking/AVL-insert-random.scala +++ /dev/null @@ -1,67 +0,0 @@ -package scala.collection - - - - - -class Dummy(val a: Int) extends math.Ordered[Dummy] { - def compare(other: Dummy) = this.a - other.a - override def toString = a.toString -} - - -object RandomGlobal { - val sz = 500000 - val data = util.Random.shuffle((0 until sz) map { new Dummy(_) }) toArray; -} - - -import RandomGlobal._ - - -object RandomAVL extends testing.Benchmark { - - def run() { - val avl = new collection.mutable.TreeSet[Dummy] - - var i = 0 - while (i < sz) { - val elem = data(i) - avl += elem - i += 1 - } - } - -} - - -object RandomImmutableTreeSet extends testing.Benchmark { - - def run() { - var tree = new collection.immutable.TreeSet[Dummy] - - var i = 0 - while (i < sz) { - val elem = data(i) - tree += elem - i += 1 - } - } - -} - - -object RandomJavaTreeSet extends testing.Benchmark { - - def run() { - val tree = new java.util.TreeSet[Dummy] - - var i = 0 - while (i < sz) { - val elem = data(i) - tree add elem - i += 1 - } - } - -} diff --git a/test/benchmarking/AVL-insert.scala b/test/benchmarking/AVL-insert.scala deleted file mode 100644 index 4f3ab390c9..0000000000 --- a/test/benchmarking/AVL-insert.scala +++ /dev/null @@ -1,67 +0,0 @@ -package scala.collection - - - - - -class Dummy(val a: Int) extends math.Ordered[Dummy] { - def compare(other: Dummy) = this.a - other.a - override def toString = a.toString -} - - -object Global { - val sz = 500000 - val data = (0 until sz) map { new Dummy(_) } toArray -} - - -import Global._ - - -object AVL extends testing.Benchmark { - - def run() { - val avl = new collection.mutable.TreeSet[Dummy] - - var i = 0 - while (i < sz) { - val elem = data(i) - avl += elem - i += 1 - } - } - -} - - -object ImmutableTreeSet extends testing.Benchmark { - - def run() { - var tree = new collection.immutable.TreeSet[Dummy] - - var i = 0 - while (i < sz) { - val elem = data(i) - tree += elem - i += 1 - } - } - -} - - -object JavaTreeSet extends testing.Benchmark { - - def run() { - val tree = new java.util.TreeSet[Dummy] - - var i = 0 - while (i < sz) { - val elem = data(i) - tree add elem - i += 1 - } - } - -} diff --git a/test/benchmarking/ParCtrie-bfs.scala b/test/benchmarking/ParCtrie-bfs.scala deleted file mode 100644 index 59149fff8c..0000000000 --- a/test/benchmarking/ParCtrie-bfs.scala +++ /dev/null @@ -1,73 +0,0 @@ - - - - - -import collection.parallel.mutable.ParCtrie - - -object Bfs extends testing.Benchmark { - val length = sys.props("length").toInt - val par = sys.props("par").toInt - - type Node = (Int, Int); - type Parent = (Int, Int); - - def up(n: Node) = (n._1, n._2 - 1); - def down(n: Node) = (n._1, n._2 + 1); - def left(n: Node) = (n._1 - 1, n._2); - def right(n: Node) = (n._1 + 1, n._2); - - // create a map and a target - val target = (length / 2, length / 2); - val map = Array.tabulate(length, length)((x, y) => (x % 3) != 0 || (y % 3) != 0 || (x, y) == target) - def onMap(n: Node) = n._1 >= 0 && n._1 < length && n._2 >= 0 && n._2 < length - - // open and closed lists - val open = ParCtrie[Node, Parent]() - val closed = ParCtrie[Node, Parent]() - - collection.parallel.ForkJoinTasks.defaultForkJoinPool.setParallelism(par) - - override def setUp() { - open.clear() - closed.clear() - - // a couple of starting positions - open((0, 0)) = null - open((length - 1, length - 1)) = null - open((0, length - 1)) = null - open((length - 1, 0)) = null - } - - def run() = { - // greedy bfs path search - while (open.nonEmpty && !open.contains(target)) { - for ((node, parent) <- open) { - def expand(next: Node) { - if (onMap(next) && map(next._1)(next._2) && !closed.contains(next) && !open.contains(next)) { - open(next) = node - } - } - expand(up(node)) - expand(down(node)) - expand(left(node)) - expand(right(node)) - closed(node) = parent - open.remove(node) - } - } - } - - override def tearDown() { - // print path - var pathnode = open(target) - while (closed.contains(pathnode)) { - print(pathnode + "->") - pathnode = closed(pathnode) - } - println() - } - -} - diff --git a/test/benchmarking/ParCtrie-map.scala b/test/benchmarking/ParCtrie-map.scala deleted file mode 100644 index f1d2f560b7..0000000000 --- a/test/benchmarking/ParCtrie-map.scala +++ /dev/null @@ -1,21 +0,0 @@ - - - -import collection.parallel.mutable.ParCtrie - - - -object Map extends testing.Benchmark { - val length = sys.props("length").toInt - val par = sys.props("par").toInt - val parctrie = ParCtrie((0 until length) zip (0 until length): _*) - - parctrie.tasksupport = new collection.parallel.ForkJoinTaskSupport(new scala.concurrent.forkjoin.ForkJoinPool(par)) - - def run = { - parctrie map { - kv => kv - } - } -} - diff --git a/test/benchmarking/ParCtrie-nums.scala b/test/benchmarking/ParCtrie-nums.scala deleted file mode 100644 index 76d1966d1f..0000000000 --- a/test/benchmarking/ParCtrie-nums.scala +++ /dev/null @@ -1,39 +0,0 @@ - - - - - -import collection.parallel.mutable.ParCtrie - - -case class Entry(num: Double) { - var sqrt = num -} - - -object Nums extends testing.Benchmark { - val length = sys.props("length").toInt - val par = sys.props("par").toInt - var entries: Seq[Entry] = null - var results: ParCtrie[Double, Entry] = null - - collection.parallel.ForkJoinTasks.defaultForkJoinPool.setParallelism(par) - - override def setUp() { - entries = (1 until length) map { num => Entry(num.toDouble) } - results = ParCtrie() - for (e <- entries) results += ((e.num, e)) - } - - def run() = { - while (results.nonEmpty) { - for ((num, e) <- results) { - val nsqrt = 0.5 * (e.sqrt + e.num / e.sqrt) - if (math.abs(nsqrt - e.sqrt) < 0.01) { - results.remove(num) - } else e.sqrt = nsqrt - } - } - } -} - diff --git a/test/benchmarking/ParCtrie-size.scala b/test/benchmarking/ParCtrie-size.scala deleted file mode 100644 index 3f47dc23fd..0000000000 --- a/test/benchmarking/ParCtrie-size.scala +++ /dev/null @@ -1,37 +0,0 @@ - - - - -import collection.parallel.mutable.ParTrieMap - - - -object Size extends testing.Benchmark { - val length = sys.props("length").toInt - val par = sys.props("par").toInt - var parctrie = ParTrieMap((0 until length) zip (0 until length): _*) - - //collection.parallel.ForkJoinTasks.defaultForkJoinPool.setParallelism(par) - val ts = new collection.parallel.ForkJoinTaskSupport(new concurrent.forkjoin.ForkJoinPool(par)) - parctrie.tasksupport = ts - - def run = { - parctrie.size - } - - var iteration = 0 - - override def tearDown() { - iteration += 1 - if (iteration % 4 == 0) parctrie = ParTrieMap((0 until length) zip (0 until length): _*) - parctrie.tasksupport = ts - } - -} - - - - - - - diff --git a/test/benchmarking/ParHashMap.scala b/test/benchmarking/ParHashMap.scala deleted file mode 100644 index 33a378fb04..0000000000 --- a/test/benchmarking/ParHashMap.scala +++ /dev/null @@ -1,33 +0,0 @@ - - - -import collection.parallel.mutable.ParHashMap - - - -object Map extends testing.Benchmark { - val length = sys.props("length").toInt - val par = sys.props("par").toInt - val phm = ParHashMap((0 until length) zip (0 until length): _*) - - phm.tasksupport = new collection.parallel.ForkJoinTaskSupport(new scala.concurrent.forkjoin.ForkJoinPool(par)) - - def run = { - phm map { - kv => kv - } - } -} - - -object MapSeq extends testing.Benchmark { - val length = sys.props("length").toInt - val hm = collection.mutable.HashMap((0 until length) zip (0 until length): _*) - - def run = { - hm map { - kv => kv - } - } -} - diff --git a/test/benchmarking/ParVector-reduce.scala b/test/benchmarking/ParVector-reduce.scala deleted file mode 100644 index 2b4594e997..0000000000 --- a/test/benchmarking/ParVector-reduce.scala +++ /dev/null @@ -1,33 +0,0 @@ - - - -import collection.parallel.immutable.ParVector - - - -object Reduce extends testing.Benchmark { - val length = sys.props("length").toInt - val par = sys.props("par").toInt - val parvector = ParVector((0 until length): _*) - - parvector.tasksupport = new collection.parallel.ForkJoinTaskSupport(new scala.concurrent.forkjoin.ForkJoinPool(par)) - - def run = { - parvector reduce { - (a, b) => a + b - } - } -} - - -object ReduceSeq extends testing.Benchmark { - val length = sys.props("length").toInt - val vector = collection.immutable.Vector((0 until length): _*) - - def run = { - vector reduce { - (a, b) => a + b - } - } -} - diff --git a/test/benchmarking/TreeSetInsert.scala b/test/benchmarking/TreeSetInsert.scala deleted file mode 100644 index 23444aa305..0000000000 --- a/test/benchmarking/TreeSetInsert.scala +++ /dev/null @@ -1,70 +0,0 @@ - -object TreeSetInsert { - - def main(args: Array[String]): Unit = { - val n = 500000 - JavaUtilTS.main(args) - MutableTS.main(args) - ImmutableTS.main(args) - } -} - -class Dummy(val a: Int) extends math.Ordered[Dummy] { - def compare(other: Dummy) = this.a - other.a - - override def toString = a.toString - } - - -object JavaUtilTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: java.util.TreeSet[Dummy] = null - - def run = { - t = new java.util.TreeSet[Dummy]() - - var i = 0 - while (i < length) { - val elem = data(i) - t add elem - i += 1 - } - } -} - - -object MutableTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: collection.mutable.TreeSet[Dummy] = null - - def run = { - t = collection.mutable.TreeSet[Dummy]() - - var i = 0 - while (i < length) { - val elem = data(i) - t += elem - i += 1 - } - } -} - - -object ImmutableTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: collection.immutable.TreeSet[Dummy] = null - - def run = { - t = collection.immutable.TreeSet[Dummy]() - - var i = 0 - while (i < length) { - val elem = data(i) - t += elem - i += 1 - } - } -} diff --git a/test/benchmarking/TreeSetInsertRandom.scala b/test/benchmarking/TreeSetInsertRandom.scala deleted file mode 100644 index 7f182548b7..0000000000 --- a/test/benchmarking/TreeSetInsertRandom.scala +++ /dev/null @@ -1,65 +0,0 @@ - -object TreeSetInsertRandom { - - def main(args: Array[String]): Unit = { - val n = 500000 - new JavaUtilTS(n).main(args) - new MutableTS(n).main(args) - new ImmutableTS(n).main(args) - } -} - -class Dummy(val a: Int) extends math.Ordered[Dummy] { - def compare(other: Dummy) = this.a - other.a - - override def toString = a.toString - } - - -class JavaUtilTS(val length: Int) extends testing.Benchmark { - var data: Array[Dummy] = util.Random.shuffle((0 until length) map { a => new Dummy(a) }) toArray - var t: java.util.TreeSet[Dummy] = null - - def run = { - t = new java.util.TreeSet[Dummy]() - - var i = 0 - while (i < length) { - val elem = data(i) - t add elem - i += 1 - } - } -} - -class MutableTS(val length: Int) extends testing.Benchmark { - var data: Array[Dummy] = util.Random.shuffle((0 until length) map { a => new Dummy(a) }) toArray - var t: collection.mutable.TreeSet[Dummy] = null - - def run = { - t = collection.mutable.TreeSet[Dummy]() - - var i = 0 - while (i < length) { - val elem = data(i) - t += elem - i += 1 - } - } -} - -class ImmutableTS(val length: Int) extends testing.Benchmark { - var data: Array[Dummy] = util.Random.shuffle((0 until length) map { a => new Dummy(a) }) toArray - var t: collection.immutable.TreeSet[Dummy] = null - - def run = { - t = collection.immutable.TreeSet[Dummy]() - - var i = 0 - while (i < length) { - val elem = data(i) - t += elem - i += 1 - } - } -} diff --git a/test/benchmarking/TreeSetIterator.scala b/test/benchmarking/TreeSetIterator.scala deleted file mode 100644 index 08c20e8b0c..0000000000 --- a/test/benchmarking/TreeSetIterator.scala +++ /dev/null @@ -1,69 +0,0 @@ - -object TreeSetIterator { - - def main(args: Array[String]): Unit = { - val n = 500000 - JavaUtilTS.main(args) - MutableTS.main(args) - ImmutableTS.main(args) - } -} - -class Dummy(val a: Int) extends math.Ordered[Dummy] { - def compare(other: Dummy) = this.a - other.a - - override def toString = a.toString - } - - -object JavaUtilTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: java.util.TreeSet[Dummy] = null - - def run = { - t = new java.util.TreeSet[Dummy]() - data foreach { a => t add a } - - var i: Dummy = null - var it = t.iterator - while (it.hasNext) { - i = it.next - } - i - } -} - -object MutableTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: collection.mutable.TreeSet[Dummy] = null - - def run = { - t = collection.mutable.TreeSet[Dummy](data: _*) - - var i: Dummy = null - var it = t.iterator - while (it.hasNext) { - i = it.next - } - i - } -} - -object ImmutableTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: collection.immutable.TreeSet[Dummy] = null - - def run = { - t = collection.immutable.TreeSet[Dummy](data: _*) - - var i: Dummy = null - var it = t.iterator - while (it.hasNext) { - i = it.next - } - i - } -} diff --git a/test/benchmarking/TreeSetRemove.scala b/test/benchmarking/TreeSetRemove.scala deleted file mode 100644 index f84066f336..0000000000 --- a/test/benchmarking/TreeSetRemove.scala +++ /dev/null @@ -1,69 +0,0 @@ - -object TreeSetRemove { - - def main(args: Array[String]): Unit = { - val n = 500000 - JavaUtilTS.main(args) - MutableTS.main(args) - ImmutableTS.main(args) - } -} - -class Dummy(val a: Int) extends math.Ordered[Dummy] { - def compare(other: Dummy) = this.a - other.a - - override def toString = a.toString - } - - -object JavaUtilTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: java.util.TreeSet[Dummy] = null - - def run = { - t = new java.util.TreeSet[Dummy]() - data foreach { a => t add a } - - var i = 0 - while (i < length) { - val elem = data(i) - t remove elem - i += 1 - } - } -} - -object MutableTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: collection.mutable.TreeSet[Dummy] = null - - def run = { - t = collection.mutable.TreeSet[Dummy](data: _*) - - var i = 0 - while (i < length) { - val elem = data(i) - t -= elem - i += 1 - } - } -} - -object ImmutableTS extends testing.Benchmark { - val length = sys.props("length").toInt - var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray - var t: collection.immutable.TreeSet[Dummy] = null - - def run = { - t = collection.immutable.TreeSet[Dummy](data: _*) - - var i = 0 - while (i < length) { - val elem = data(i) - t -= elem - i += 1 - } - } -} diff --git a/test/benchmarking/TreeSetRemoveRandom.scala b/test/benchmarking/TreeSetRemoveRandom.scala deleted file mode 100644 index 4d311679e3..0000000000 --- a/test/benchmarking/TreeSetRemoveRandom.scala +++ /dev/null @@ -1,66 +0,0 @@ - -object TreeSetRemoveRandom { - - def main(args: Array[String]): Unit = { - val n = 500000 - new JavaUtilTS(n).main(args) - new MutableTS(n).main(args) - new ImmutableTS(n).main(args) - } -} - -class Dummy(val a: Int) extends math.Ordered[Dummy] { - def compare(other: Dummy) = this.a - other.a - - override def toString = a.toString - } - - -class JavaUtilTS(val length: Int) extends testing.Benchmark { - var data: Array[Dummy] = util.Random.shuffle((0 until length) map { a => new Dummy(a) }) toArray - var t: java.util.TreeSet[Dummy] = null - - def run = { - t = new java.util.TreeSet[Dummy]() - data foreach { a => t add a } - - var i = 0 - while (i < length) { - val elem = data(i) - t remove elem - i += 1 - } - } -} - -class MutableTS(val length: Int) extends testing.Benchmark { - var data: Array[Dummy] = util.Random.shuffle((0 until length) map { a => new Dummy(a) }) toArray - var t: collection.mutable.TreeSet[Dummy] = null - - def run = { - t = collection.mutable.TreeSet[Dummy](data: _*) - - var i = 0 - while (i < length) { - val elem = data(i) - t -= elem - i += 1 - } - } -} - -class ImmutableTS(val length: Int) extends testing.Benchmark { - var data: Array[Dummy] = util.Random.shuffle((0 until length) map { a => new Dummy(a) }) toArray - var t: collection.immutable.TreeSet[Dummy] = null - - def run = { - t = collection.immutable.TreeSet[Dummy](data: _*) - - var i = 0 - while (i < length) { - val elem = data(i) - t -= elem - i += 1 - } - } -} diff --git a/test/benchmarking/t6726-patmat-analysis.scala b/test/benchmarking/t6726-patmat-analysis.scala deleted file mode 100644 index bcb7f6c6b2..0000000000 --- a/test/benchmarking/t6726-patmat-analysis.scala +++ /dev/null @@ -1,4005 +0,0 @@ -trait Foo{ -abstract class Base -case class Dummy0(x: Int) extends Base -case class Dummy1(x: Int) extends Base -case class Dummy2(x: Int) extends Base -case class Dummy3(x: Int) extends Base -case class Dummy4(x: Int) extends Base -case class Dummy5(x: Int) extends Base -case class Dummy6(x: Int) extends Base -case class Dummy7(x: Int) extends Base -case class Dummy8(x: Int) extends Base -case class Dummy9(x: Int) extends Base -case class Dummy10(x: Int) extends Base -case class Dummy11(x: Int) extends Base -case class Dummy12(x: Int) extends Base -case class Dummy13(x: Int) extends Base -case class Dummy14(x: Int) extends Base -case class Dummy15(x: Int) extends Base -case class Dummy16(x: Int) extends Base -case class Dummy17(x: Int) extends Base -case class Dummy18(x: Int) extends Base -case class Dummy19(x: Int) extends Base -case class Dummy20(x: Int) extends Base -case class Dummy21(x: Int) extends Base -case class Dummy22(x: Int) extends Base -case class Dummy23(x: Int) extends Base -case class Dummy24(x: Int) extends Base -case class Dummy25(x: Int) extends Base -case class Dummy26(x: Int) extends Base -case class Dummy27(x: Int) extends Base -case class Dummy28(x: Int) extends Base -case class Dummy29(x: Int) extends Base -case class Dummy30(x: Int) extends Base -case class Dummy31(x: Int) extends Base -case class Dummy32(x: Int) extends Base -case class Dummy33(x: Int) extends Base -case class Dummy34(x: Int) extends Base -case class Dummy35(x: Int) extends Base -case class Dummy36(x: Int) extends Base -case class Dummy37(x: Int) extends Base -case class Dummy38(x: Int) extends Base -case class Dummy39(x: Int) extends Base -case class Dummy40(x: Int) extends Base -case class Dummy41(x: Int) extends Base -case class Dummy42(x: Int) extends Base -case class Dummy43(x: Int) extends Base -case class Dummy44(x: Int) extends Base -case class Dummy45(x: Int) extends Base -case class Dummy46(x: Int) extends Base -case class Dummy47(x: Int) extends Base -case class Dummy48(x: Int) extends Base -case class Dummy49(x: Int) extends Base -case class Dummy50(x: Int) extends Base -case class Dummy51(x: Int) extends Base -case class Dummy52(x: Int) extends Base -case class Dummy53(x: Int) extends Base -case class Dummy54(x: Int) extends Base -case class Dummy55(x: Int) extends Base -case class Dummy56(x: Int) extends Base -case class Dummy57(x: Int) extends Base -case class Dummy58(x: Int) extends Base -case class Dummy59(x: Int) extends Base -case class Dummy60(x: Int) extends Base -case class Dummy61(x: Int) extends Base -case class Dummy62(x: Int) extends Base -case class Dummy63(x: Int) extends Base -case class Dummy64(x: Int) extends Base -case class Dummy65(x: Int) extends Base -case class Dummy66(x: Int) extends Base -case class Dummy67(x: Int) extends Base -case class Dummy68(x: Int) extends Base -case class Dummy69(x: Int) extends Base -case class Dummy70(x: Int) extends Base -case class Dummy71(x: Int) extends Base -case class Dummy72(x: Int) extends Base -case class Dummy73(x: Int) extends Base -case class Dummy74(x: Int) extends Base -case class Dummy75(x: Int) extends Base -case class Dummy76(x: Int) extends Base -case class Dummy77(x: Int) extends Base -case class Dummy78(x: Int) extends Base -case class Dummy79(x: Int) extends Base -case class Dummy80(x: Int) extends Base -case class Dummy81(x: Int) extends Base -case class Dummy82(x: Int) extends Base -case class Dummy83(x: Int) extends Base -case class Dummy84(x: Int) extends Base -case class Dummy85(x: Int) extends Base -case class Dummy86(x: Int) extends Base -case class Dummy87(x: Int) extends Base -case class Dummy88(x: Int) extends Base -case class Dummy89(x: Int) extends Base -case class Dummy90(x: Int) extends Base -case class Dummy91(x: Int) extends Base -case class Dummy92(x: Int) extends Base -case class Dummy93(x: Int) extends Base -case class Dummy94(x: Int) extends Base -case class Dummy95(x: Int) extends Base -case class Dummy96(x: Int) extends Base -case class Dummy97(x: Int) extends Base -case class Dummy98(x: Int) extends Base -case class Dummy99(x: Int) extends Base -case class Dummy100(x: Int) extends Base -case class Dummy101(x: Int) extends Base -case class Dummy102(x: Int) extends Base -case class Dummy103(x: Int) extends Base -case class Dummy104(x: Int) extends Base -case class Dummy105(x: Int) extends Base -case class Dummy106(x: Int) extends Base -case class Dummy107(x: Int) extends Base -case class Dummy108(x: Int) extends Base -case class Dummy109(x: Int) extends Base -case class Dummy110(x: Int) extends Base -case class Dummy111(x: Int) extends Base -case class Dummy112(x: Int) extends Base -case class Dummy113(x: Int) extends Base -case class Dummy114(x: Int) extends Base -case class Dummy115(x: Int) extends Base -case class Dummy116(x: Int) extends Base -case class Dummy117(x: Int) extends Base -case class Dummy118(x: Int) extends Base -case class Dummy119(x: Int) extends Base -case class Dummy120(x: Int) extends Base -case class Dummy121(x: Int) extends Base -case class Dummy122(x: Int) extends Base -case class Dummy123(x: Int) extends Base -case class Dummy124(x: Int) extends Base -case class Dummy125(x: Int) extends Base -case class Dummy126(x: Int) extends Base -case class Dummy127(x: Int) extends Base -case class Dummy128(x: Int) extends Base -case class Dummy129(x: Int) extends Base -case class Dummy130(x: Int) extends Base -case class Dummy131(x: Int) extends Base -case class Dummy132(x: Int) extends Base -case class Dummy133(x: Int) extends Base -case class Dummy134(x: Int) extends Base -case class Dummy135(x: Int) extends Base -case class Dummy136(x: Int) extends Base -case class Dummy137(x: Int) extends Base -case class Dummy138(x: Int) extends Base -case class Dummy139(x: Int) extends Base -case class Dummy140(x: Int) extends Base -case class Dummy141(x: Int) extends Base -case class Dummy142(x: Int) extends Base -case class Dummy143(x: Int) extends Base -case class Dummy144(x: Int) extends Base -case class Dummy145(x: Int) extends Base -case class Dummy146(x: Int) extends Base -case class Dummy147(x: Int) extends Base -case class Dummy148(x: Int) extends Base -case class Dummy149(x: Int) extends Base -case class Dummy150(x: Int) extends Base -case class Dummy151(x: Int) extends Base -case class Dummy152(x: Int) extends Base -case class Dummy153(x: Int) extends Base -case class Dummy154(x: Int) extends Base -case class Dummy155(x: Int) extends Base -case class Dummy156(x: Int) extends Base -case class Dummy157(x: Int) extends Base -case class Dummy158(x: Int) extends Base -case class Dummy159(x: Int) extends Base -case class Dummy160(x: Int) extends Base -case class Dummy161(x: Int) extends Base -case class Dummy162(x: Int) extends Base -case class Dummy163(x: Int) extends Base -case class Dummy164(x: Int) extends Base -case class Dummy165(x: Int) extends Base -case class Dummy166(x: Int) extends Base -case class Dummy167(x: Int) extends Base -case class Dummy168(x: Int) extends Base -case class Dummy169(x: Int) extends Base -case class Dummy170(x: Int) extends Base -case class Dummy171(x: Int) extends Base -case class Dummy172(x: Int) extends Base -case class Dummy173(x: Int) extends Base -case class Dummy174(x: Int) extends Base -case class Dummy175(x: Int) extends Base -case class Dummy176(x: Int) extends Base -case class Dummy177(x: Int) extends Base -case class Dummy178(x: Int) extends Base -case class Dummy179(x: Int) extends Base -case class Dummy180(x: Int) extends Base -case class Dummy181(x: Int) extends Base -case class Dummy182(x: Int) extends Base -case class Dummy183(x: Int) extends Base -case class Dummy184(x: Int) extends Base -case class Dummy185(x: Int) extends Base -case class Dummy186(x: Int) extends Base -case class Dummy187(x: Int) extends Base -case class Dummy188(x: Int) extends Base -case class Dummy189(x: Int) extends Base -case class Dummy190(x: Int) extends Base -case class Dummy191(x: Int) extends Base -case class Dummy192(x: Int) extends Base -case class Dummy193(x: Int) extends Base -case class Dummy194(x: Int) extends Base -case class Dummy195(x: Int) extends Base -case class Dummy196(x: Int) extends Base -case class Dummy197(x: Int) extends Base -case class Dummy198(x: Int) extends Base -case class Dummy199(x: Int) extends Base -case class Dummy200(x: Int) extends Base -case class Dummy201(x: Int) extends Base -case class Dummy202(x: Int) extends Base -case class Dummy203(x: Int) extends Base -case class Dummy204(x: Int) extends Base -case class Dummy205(x: Int) extends Base -case class Dummy206(x: Int) extends Base -case class Dummy207(x: Int) extends Base -case class Dummy208(x: Int) extends Base -case class Dummy209(x: Int) extends Base -case class Dummy210(x: Int) extends Base -case class Dummy211(x: Int) extends Base -case class Dummy212(x: Int) extends Base -case class Dummy213(x: Int) extends Base -case class Dummy214(x: Int) extends Base -case class Dummy215(x: Int) extends Base -case class Dummy216(x: Int) extends Base -case class Dummy217(x: Int) extends Base -case class Dummy218(x: Int) extends Base -case class Dummy219(x: Int) extends Base -case class Dummy220(x: Int) extends Base -case class Dummy221(x: Int) extends Base -case class Dummy222(x: Int) extends Base -case class Dummy223(x: Int) extends Base -case class Dummy224(x: Int) extends Base -case class Dummy225(x: Int) extends Base -case class Dummy226(x: Int) extends Base -case class Dummy227(x: Int) extends Base -case class Dummy228(x: Int) extends Base -case class Dummy229(x: Int) extends Base -case class Dummy230(x: Int) extends Base -case class Dummy231(x: Int) extends Base -case class Dummy232(x: Int) extends Base -case class Dummy233(x: Int) extends Base -case class Dummy234(x: Int) extends Base -case class Dummy235(x: Int) extends Base -case class Dummy236(x: Int) extends Base -case class Dummy237(x: Int) extends Base -case class Dummy238(x: Int) extends Base -case class Dummy239(x: Int) extends Base -case class Dummy240(x: Int) extends Base -case class Dummy241(x: Int) extends Base -case class Dummy242(x: Int) extends Base -case class Dummy243(x: Int) extends Base -case class Dummy244(x: Int) extends Base -case class Dummy245(x: Int) extends Base -case class Dummy246(x: Int) extends Base -case class Dummy247(x: Int) extends Base -case class Dummy248(x: Int) extends Base -case class Dummy249(x: Int) extends Base -case class Dummy250(x: Int) extends Base -case class Dummy251(x: Int) extends Base -case class Dummy252(x: Int) extends Base -case class Dummy253(x: Int) extends Base -case class Dummy254(x: Int) extends Base -case class Dummy255(x: Int) extends Base -case class Dummy256(x: Int) extends Base -case class Dummy257(x: Int) extends Base -case class Dummy258(x: Int) extends Base -case class Dummy259(x: Int) extends Base -case class Dummy260(x: Int) extends Base -case class Dummy261(x: Int) extends Base -case class Dummy262(x: Int) extends Base -case class Dummy263(x: Int) extends Base -case class Dummy264(x: Int) extends Base -case class Dummy265(x: Int) extends Base -case class Dummy266(x: Int) extends Base -case class Dummy267(x: Int) extends Base -case class Dummy268(x: Int) extends Base -case class Dummy269(x: Int) extends Base -case class Dummy270(x: Int) extends Base -case class Dummy271(x: Int) extends Base -case class Dummy272(x: Int) extends Base -case class Dummy273(x: Int) extends Base -case class Dummy274(x: Int) extends Base -case class Dummy275(x: Int) extends Base -case class Dummy276(x: Int) extends Base -case class Dummy277(x: Int) extends Base -case class Dummy278(x: Int) extends Base -case class Dummy279(x: Int) extends Base -case class Dummy280(x: Int) extends Base -case class Dummy281(x: Int) extends Base -case class Dummy282(x: Int) extends Base -case class Dummy283(x: Int) extends Base -case class Dummy284(x: Int) extends Base -case class Dummy285(x: Int) extends Base -case class Dummy286(x: Int) extends Base -case class Dummy287(x: Int) extends Base -case class Dummy288(x: Int) extends Base -case class Dummy289(x: Int) extends Base -case class Dummy290(x: Int) extends Base -case class Dummy291(x: Int) extends Base -case class Dummy292(x: Int) extends Base -case class Dummy293(x: Int) extends Base -case class Dummy294(x: Int) extends Base -case class Dummy295(x: Int) extends Base -case class Dummy296(x: Int) extends Base -case class Dummy297(x: Int) extends Base -case class Dummy298(x: Int) extends Base -case class Dummy299(x: Int) extends Base -case class Dummy300(x: Int) extends Base -case class Dummy301(x: Int) extends Base -case class Dummy302(x: Int) extends Base -case class Dummy303(x: Int) extends Base -case class Dummy304(x: Int) extends Base -case class Dummy305(x: Int) extends Base -case class Dummy306(x: Int) extends Base -case class Dummy307(x: Int) extends Base -case class Dummy308(x: Int) extends Base -case class Dummy309(x: Int) extends Base -case class Dummy310(x: Int) extends Base -case class Dummy311(x: Int) extends Base -case class Dummy312(x: Int) extends Base -case class Dummy313(x: Int) extends Base -case class Dummy314(x: Int) extends Base -case class Dummy315(x: Int) extends Base -case class Dummy316(x: Int) extends Base -case class Dummy317(x: Int) extends Base -case class Dummy318(x: Int) extends Base -case class Dummy319(x: Int) extends Base -case class Dummy320(x: Int) extends Base -case class Dummy321(x: Int) extends Base -case class Dummy322(x: Int) extends Base -case class Dummy323(x: Int) extends Base -case class Dummy324(x: Int) extends Base -case class Dummy325(x: Int) extends Base -case class Dummy326(x: Int) extends Base -case class Dummy327(x: Int) extends Base -case class Dummy328(x: Int) extends Base -case class Dummy329(x: Int) extends Base -case class Dummy330(x: Int) extends Base -case class Dummy331(x: Int) extends Base -case class Dummy332(x: Int) extends Base -case class Dummy333(x: Int) extends Base -case class Dummy334(x: Int) extends Base -case class Dummy335(x: Int) extends Base -case class Dummy336(x: Int) extends Base -case class Dummy337(x: Int) extends Base -case class Dummy338(x: Int) extends Base -case class Dummy339(x: Int) extends Base -case class Dummy340(x: Int) extends Base -case class Dummy341(x: Int) extends Base -case class Dummy342(x: Int) extends Base -case class Dummy343(x: Int) extends Base -case class Dummy344(x: Int) extends Base -case class Dummy345(x: Int) extends Base -case class Dummy346(x: Int) extends Base -case class Dummy347(x: Int) extends Base -case class Dummy348(x: Int) extends Base -case class Dummy349(x: Int) extends Base -case class Dummy350(x: Int) extends Base -case class Dummy351(x: Int) extends Base -case class Dummy352(x: Int) extends Base -case class Dummy353(x: Int) extends Base -case class Dummy354(x: Int) extends Base -case class Dummy355(x: Int) extends Base -case class Dummy356(x: Int) extends Base -case class Dummy357(x: Int) extends Base -case class Dummy358(x: Int) extends Base -case class Dummy359(x: Int) extends Base -case class Dummy360(x: Int) extends Base -case class Dummy361(x: Int) extends Base -case class Dummy362(x: Int) extends Base -case class Dummy363(x: Int) extends Base -case class Dummy364(x: Int) extends Base -case class Dummy365(x: Int) extends Base -case class Dummy366(x: Int) extends Base -case class Dummy367(x: Int) extends Base -case class Dummy368(x: Int) extends Base -case class Dummy369(x: Int) extends Base -case class Dummy370(x: Int) extends Base -case class Dummy371(x: Int) extends Base -case class Dummy372(x: Int) extends Base -case class Dummy373(x: Int) extends Base -case class Dummy374(x: Int) extends Base -case class Dummy375(x: Int) extends Base -case class Dummy376(x: Int) extends Base -case class Dummy377(x: Int) extends Base -case class Dummy378(x: Int) extends Base -case class Dummy379(x: Int) extends Base -case class Dummy380(x: Int) extends Base -case class Dummy381(x: Int) extends Base -case class Dummy382(x: Int) extends Base -case class Dummy383(x: Int) extends Base -case class Dummy384(x: Int) extends Base -case class Dummy385(x: Int) extends Base -case class Dummy386(x: Int) extends Base -case class Dummy387(x: Int) extends Base -case class Dummy388(x: Int) extends Base -case class Dummy389(x: Int) extends Base -case class Dummy390(x: Int) extends Base -case class Dummy391(x: Int) extends Base -case class Dummy392(x: Int) extends Base -case class Dummy393(x: Int) extends Base -case class Dummy394(x: Int) extends Base -case class Dummy395(x: Int) extends Base -case class Dummy396(x: Int) extends Base -case class Dummy397(x: Int) extends Base -case class Dummy398(x: Int) extends Base -case class Dummy399(x: Int) extends Base -case class Dummy400(x: Int) extends Base -case class Dummy401(x: Int) extends Base -case class Dummy402(x: Int) extends Base -case class Dummy403(x: Int) extends Base -case class Dummy404(x: Int) extends Base -case class Dummy405(x: Int) extends Base -case class Dummy406(x: Int) extends Base -case class Dummy407(x: Int) extends Base -case class Dummy408(x: Int) extends Base -case class Dummy409(x: Int) extends Base -case class Dummy410(x: Int) extends Base -case class Dummy411(x: Int) extends Base -case class Dummy412(x: Int) extends Base -case class Dummy413(x: Int) extends Base -case class Dummy414(x: Int) extends Base -case class Dummy415(x: Int) extends Base -case class Dummy416(x: Int) extends Base -case class Dummy417(x: Int) extends Base -case class Dummy418(x: Int) extends Base -case class Dummy419(x: Int) extends Base -case class Dummy420(x: Int) extends Base -case class Dummy421(x: Int) extends Base -case class Dummy422(x: Int) extends Base -case class Dummy423(x: Int) extends Base -case class Dummy424(x: Int) extends Base -case class Dummy425(x: Int) extends Base -case class Dummy426(x: Int) extends Base -case class Dummy427(x: Int) extends Base -case class Dummy428(x: Int) extends Base -case class Dummy429(x: Int) extends Base -case class Dummy430(x: Int) extends Base -case class Dummy431(x: Int) extends Base -case class Dummy432(x: Int) extends Base -case class Dummy433(x: Int) extends Base -case class Dummy434(x: Int) extends Base -case class Dummy435(x: Int) extends Base -case class Dummy436(x: Int) extends Base -case class Dummy437(x: Int) extends Base -case class Dummy438(x: Int) extends Base -case class Dummy439(x: Int) extends Base -case class Dummy440(x: Int) extends Base -case class Dummy441(x: Int) extends Base -case class Dummy442(x: Int) extends Base -case class Dummy443(x: Int) extends Base -case class Dummy444(x: Int) extends Base -case class Dummy445(x: Int) extends Base -case class Dummy446(x: Int) extends Base -case class Dummy447(x: Int) extends Base -case class Dummy448(x: Int) extends Base -case class Dummy449(x: Int) extends Base -case class Dummy450(x: Int) extends Base -case class Dummy451(x: Int) extends Base -case class Dummy452(x: Int) extends Base -case class Dummy453(x: Int) extends Base -case class Dummy454(x: Int) extends Base -case class Dummy455(x: Int) extends Base -case class Dummy456(x: Int) extends Base -case class Dummy457(x: Int) extends Base -case class Dummy458(x: Int) extends Base -case class Dummy459(x: Int) extends Base -case class Dummy460(x: Int) extends Base -case class Dummy461(x: Int) extends Base -case class Dummy462(x: Int) extends Base -case class Dummy463(x: Int) extends Base -case class Dummy464(x: Int) extends Base -case class Dummy465(x: Int) extends Base -case class Dummy466(x: Int) extends Base -case class Dummy467(x: Int) extends Base -case class Dummy468(x: Int) extends Base -case class Dummy469(x: Int) extends Base -case class Dummy470(x: Int) extends Base -case class Dummy471(x: Int) extends Base -case class Dummy472(x: Int) extends Base -case class Dummy473(x: Int) extends Base -case class Dummy474(x: Int) extends Base -case class Dummy475(x: Int) extends Base -case class Dummy476(x: Int) extends Base -case class Dummy477(x: Int) extends Base -case class Dummy478(x: Int) extends Base -case class Dummy479(x: Int) extends Base -case class Dummy480(x: Int) extends Base -case class Dummy481(x: Int) extends Base -case class Dummy482(x: Int) extends Base -case class Dummy483(x: Int) extends Base -case class Dummy484(x: Int) extends Base -case class Dummy485(x: Int) extends Base -case class Dummy486(x: Int) extends Base -case class Dummy487(x: Int) extends Base -case class Dummy488(x: Int) extends Base -case class Dummy489(x: Int) extends Base -case class Dummy490(x: Int) extends Base -case class Dummy491(x: Int) extends Base -case class Dummy492(x: Int) extends Base -case class Dummy493(x: Int) extends Base -case class Dummy494(x: Int) extends Base -case class Dummy495(x: Int) extends Base -case class Dummy496(x: Int) extends Base -case class Dummy497(x: Int) extends Base -case class Dummy498(x: Int) extends Base -case class Dummy499(x: Int) extends Base -case class Dummy500(x: Int) extends Base -case class Dummy501(x: Int) extends Base -case class Dummy502(x: Int) extends Base -case class Dummy503(x: Int) extends Base -case class Dummy504(x: Int) extends Base -case class Dummy505(x: Int) extends Base -case class Dummy506(x: Int) extends Base -case class Dummy507(x: Int) extends Base -case class Dummy508(x: Int) extends Base -case class Dummy509(x: Int) extends Base -case class Dummy510(x: Int) extends Base -case class Dummy511(x: Int) extends Base -case class Dummy512(x: Int) extends Base -case class Dummy513(x: Int) extends Base -case class Dummy514(x: Int) extends Base -case class Dummy515(x: Int) extends Base -case class Dummy516(x: Int) extends Base -case class Dummy517(x: Int) extends Base -case class Dummy518(x: Int) extends Base -case class Dummy519(x: Int) extends Base -case class Dummy520(x: Int) extends Base -case class Dummy521(x: Int) extends Base -case class Dummy522(x: Int) extends Base -case class Dummy523(x: Int) extends Base -case class Dummy524(x: Int) extends Base -case class Dummy525(x: Int) extends Base -case class Dummy526(x: Int) extends Base -case class Dummy527(x: Int) extends Base -case class Dummy528(x: Int) extends Base -case class Dummy529(x: Int) extends Base -case class Dummy530(x: Int) extends Base -case class Dummy531(x: Int) extends Base -case class Dummy532(x: Int) extends Base -case class Dummy533(x: Int) extends Base -case class Dummy534(x: Int) extends Base -case class Dummy535(x: Int) extends Base -case class Dummy536(x: Int) extends Base -case class Dummy537(x: Int) extends Base -case class Dummy538(x: Int) extends Base -case class Dummy539(x: Int) extends Base -case class Dummy540(x: Int) extends Base -case class Dummy541(x: Int) extends Base -case class Dummy542(x: Int) extends Base -case class Dummy543(x: Int) extends Base -case class Dummy544(x: Int) extends Base -case class Dummy545(x: Int) extends Base -case class Dummy546(x: Int) extends Base -case class Dummy547(x: Int) extends Base -case class Dummy548(x: Int) extends Base -case class Dummy549(x: Int) extends Base -case class Dummy550(x: Int) extends Base -case class Dummy551(x: Int) extends Base -case class Dummy552(x: Int) extends Base -case class Dummy553(x: Int) extends Base -case class Dummy554(x: Int) extends Base -case class Dummy555(x: Int) extends Base -case class Dummy556(x: Int) extends Base -case class Dummy557(x: Int) extends Base -case class Dummy558(x: Int) extends Base -case class Dummy559(x: Int) extends Base -case class Dummy560(x: Int) extends Base -case class Dummy561(x: Int) extends Base -case class Dummy562(x: Int) extends Base -case class Dummy563(x: Int) extends Base -case class Dummy564(x: Int) extends Base -case class Dummy565(x: Int) extends Base -case class Dummy566(x: Int) extends Base -case class Dummy567(x: Int) extends Base -case class Dummy568(x: Int) extends Base -case class Dummy569(x: Int) extends Base -case class Dummy570(x: Int) extends Base -case class Dummy571(x: Int) extends Base -case class Dummy572(x: Int) extends Base -case class Dummy573(x: Int) extends Base -case class Dummy574(x: Int) extends Base -case class Dummy575(x: Int) extends Base -case class Dummy576(x: Int) extends Base -case class Dummy577(x: Int) extends Base -case class Dummy578(x: Int) extends Base -case class Dummy579(x: Int) extends Base -case class Dummy580(x: Int) extends Base -case class Dummy581(x: Int) extends Base -case class Dummy582(x: Int) extends Base -case class Dummy583(x: Int) extends Base -case class Dummy584(x: Int) extends Base -case class Dummy585(x: Int) extends Base -case class Dummy586(x: Int) extends Base -case class Dummy587(x: Int) extends Base -case class Dummy588(x: Int) extends Base -case class Dummy589(x: Int) extends Base -case class Dummy590(x: Int) extends Base -case class Dummy591(x: Int) extends Base -case class Dummy592(x: Int) extends Base -case class Dummy593(x: Int) extends Base -case class Dummy594(x: Int) extends Base -case class Dummy595(x: Int) extends Base -case class Dummy596(x: Int) extends Base -case class Dummy597(x: Int) extends Base -case class Dummy598(x: Int) extends Base -case class Dummy599(x: Int) extends Base -case class Dummy600(x: Int) extends Base -case class Dummy601(x: Int) extends Base -case class Dummy602(x: Int) extends Base -case class Dummy603(x: Int) extends Base -case class Dummy604(x: Int) extends Base -case class Dummy605(x: Int) extends Base -case class Dummy606(x: Int) extends Base -case class Dummy607(x: Int) extends Base -case class Dummy608(x: Int) extends Base -case class Dummy609(x: Int) extends Base -case class Dummy610(x: Int) extends Base -case class Dummy611(x: Int) extends Base -case class Dummy612(x: Int) extends Base -case class Dummy613(x: Int) extends Base -case class Dummy614(x: Int) extends Base -case class Dummy615(x: Int) extends Base -case class Dummy616(x: Int) extends Base -case class Dummy617(x: Int) extends Base -case class Dummy618(x: Int) extends Base -case class Dummy619(x: Int) extends Base -case class Dummy620(x: Int) extends Base -case class Dummy621(x: Int) extends Base -case class Dummy622(x: Int) extends Base -case class Dummy623(x: Int) extends Base -case class Dummy624(x: Int) extends Base -case class Dummy625(x: Int) extends Base -case class Dummy626(x: Int) extends Base -case class Dummy627(x: Int) extends Base -case class Dummy628(x: Int) extends Base -case class Dummy629(x: Int) extends Base -case class Dummy630(x: Int) extends Base -case class Dummy631(x: Int) extends Base -case class Dummy632(x: Int) extends Base -case class Dummy633(x: Int) extends Base -case class Dummy634(x: Int) extends Base -case class Dummy635(x: Int) extends Base -case class Dummy636(x: Int) extends Base -case class Dummy637(x: Int) extends Base -case class Dummy638(x: Int) extends Base -case class Dummy639(x: Int) extends Base -case class Dummy640(x: Int) extends Base -case class Dummy641(x: Int) extends Base -case class Dummy642(x: Int) extends Base -case class Dummy643(x: Int) extends Base -case class Dummy644(x: Int) extends Base -case class Dummy645(x: Int) extends Base -case class Dummy646(x: Int) extends Base -case class Dummy647(x: Int) extends Base -case class Dummy648(x: Int) extends Base -case class Dummy649(x: Int) extends Base -case class Dummy650(x: Int) extends Base -case class Dummy651(x: Int) extends Base -case class Dummy652(x: Int) extends Base -case class Dummy653(x: Int) extends Base -case class Dummy654(x: Int) extends Base -case class Dummy655(x: Int) extends Base -case class Dummy656(x: Int) extends Base -case class Dummy657(x: Int) extends Base -case class Dummy658(x: Int) extends Base -case class Dummy659(x: Int) extends Base -case class Dummy660(x: Int) extends Base -case class Dummy661(x: Int) extends Base -case class Dummy662(x: Int) extends Base -case class Dummy663(x: Int) extends Base -case class Dummy664(x: Int) extends Base -case class Dummy665(x: Int) extends Base -case class Dummy666(x: Int) extends Base -case class Dummy667(x: Int) extends Base -case class Dummy668(x: Int) extends Base -case class Dummy669(x: Int) extends Base -case class Dummy670(x: Int) extends Base -case class Dummy671(x: Int) extends Base -case class Dummy672(x: Int) extends Base -case class Dummy673(x: Int) extends Base -case class Dummy674(x: Int) extends Base -case class Dummy675(x: Int) extends Base -case class Dummy676(x: Int) extends Base -case class Dummy677(x: Int) extends Base -case class Dummy678(x: Int) extends Base -case class Dummy679(x: Int) extends Base -case class Dummy680(x: Int) extends Base -case class Dummy681(x: Int) extends Base -case class Dummy682(x: Int) extends Base -case class Dummy683(x: Int) extends Base -case class Dummy684(x: Int) extends Base -case class Dummy685(x: Int) extends Base -case class Dummy686(x: Int) extends Base -case class Dummy687(x: Int) extends Base -case class Dummy688(x: Int) extends Base -case class Dummy689(x: Int) extends Base -case class Dummy690(x: Int) extends Base -case class Dummy691(x: Int) extends Base -case class Dummy692(x: Int) extends Base -case class Dummy693(x: Int) extends Base -case class Dummy694(x: Int) extends Base -case class Dummy695(x: Int) extends Base -case class Dummy696(x: Int) extends Base -case class Dummy697(x: Int) extends Base -case class Dummy698(x: Int) extends Base -case class Dummy699(x: Int) extends Base -case class Dummy700(x: Int) extends Base -case class Dummy701(x: Int) extends Base -case class Dummy702(x: Int) extends Base -case class Dummy703(x: Int) extends Base -case class Dummy704(x: Int) extends Base -case class Dummy705(x: Int) extends Base -case class Dummy706(x: Int) extends Base -case class Dummy707(x: Int) extends Base -case class Dummy708(x: Int) extends Base -case class Dummy709(x: Int) extends Base -case class Dummy710(x: Int) extends Base -case class Dummy711(x: Int) extends Base -case class Dummy712(x: Int) extends Base -case class Dummy713(x: Int) extends Base -case class Dummy714(x: Int) extends Base -case class Dummy715(x: Int) extends Base -case class Dummy716(x: Int) extends Base -case class Dummy717(x: Int) extends Base -case class Dummy718(x: Int) extends Base -case class Dummy719(x: Int) extends Base -case class Dummy720(x: Int) extends Base -case class Dummy721(x: Int) extends Base -case class Dummy722(x: Int) extends Base -case class Dummy723(x: Int) extends Base -case class Dummy724(x: Int) extends Base -case class Dummy725(x: Int) extends Base -case class Dummy726(x: Int) extends Base -case class Dummy727(x: Int) extends Base -case class Dummy728(x: Int) extends Base -case class Dummy729(x: Int) extends Base -case class Dummy730(x: Int) extends Base -case class Dummy731(x: Int) extends Base -case class Dummy732(x: Int) extends Base -case class Dummy733(x: Int) extends Base -case class Dummy734(x: Int) extends Base -case class Dummy735(x: Int) extends Base -case class Dummy736(x: Int) extends Base -case class Dummy737(x: Int) extends Base -case class Dummy738(x: Int) extends Base -case class Dummy739(x: Int) extends Base -case class Dummy740(x: Int) extends Base -case class Dummy741(x: Int) extends Base -case class Dummy742(x: Int) extends Base -case class Dummy743(x: Int) extends Base -case class Dummy744(x: Int) extends Base -case class Dummy745(x: Int) extends Base -case class Dummy746(x: Int) extends Base -case class Dummy747(x: Int) extends Base -case class Dummy748(x: Int) extends Base -case class Dummy749(x: Int) extends Base -case class Dummy750(x: Int) extends Base -case class Dummy751(x: Int) extends Base -case class Dummy752(x: Int) extends Base -case class Dummy753(x: Int) extends Base -case class Dummy754(x: Int) extends Base -case class Dummy755(x: Int) extends Base -case class Dummy756(x: Int) extends Base -case class Dummy757(x: Int) extends Base -case class Dummy758(x: Int) extends Base -case class Dummy759(x: Int) extends Base -case class Dummy760(x: Int) extends Base -case class Dummy761(x: Int) extends Base -case class Dummy762(x: Int) extends Base -case class Dummy763(x: Int) extends Base -case class Dummy764(x: Int) extends Base -case class Dummy765(x: Int) extends Base -case class Dummy766(x: Int) extends Base -case class Dummy767(x: Int) extends Base -case class Dummy768(x: Int) extends Base -case class Dummy769(x: Int) extends Base -case class Dummy770(x: Int) extends Base -case class Dummy771(x: Int) extends Base -case class Dummy772(x: Int) extends Base -case class Dummy773(x: Int) extends Base -case class Dummy774(x: Int) extends Base -case class Dummy775(x: Int) extends Base -case class Dummy776(x: Int) extends Base -case class Dummy777(x: Int) extends Base -case class Dummy778(x: Int) extends Base -case class Dummy779(x: Int) extends Base -case class Dummy780(x: Int) extends Base -case class Dummy781(x: Int) extends Base -case class Dummy782(x: Int) extends Base -case class Dummy783(x: Int) extends Base -case class Dummy784(x: Int) extends Base -case class Dummy785(x: Int) extends Base -case class Dummy786(x: Int) extends Base -case class Dummy787(x: Int) extends Base -case class Dummy788(x: Int) extends Base -case class Dummy789(x: Int) extends Base -case class Dummy790(x: Int) extends Base -case class Dummy791(x: Int) extends Base -case class Dummy792(x: Int) extends Base -case class Dummy793(x: Int) extends Base -case class Dummy794(x: Int) extends Base -case class Dummy795(x: Int) extends Base -case class Dummy796(x: Int) extends Base -case class Dummy797(x: Int) extends Base -case class Dummy798(x: Int) extends Base -case class Dummy799(x: Int) extends Base -case class Dummy800(x: Int) extends Base -case class Dummy801(x: Int) extends Base -case class Dummy802(x: Int) extends Base -case class Dummy803(x: Int) extends Base -case class Dummy804(x: Int) extends Base -case class Dummy805(x: Int) extends Base -case class Dummy806(x: Int) extends Base -case class Dummy807(x: Int) extends Base -case class Dummy808(x: Int) extends Base -case class Dummy809(x: Int) extends Base -case class Dummy810(x: Int) extends Base -case class Dummy811(x: Int) extends Base -case class Dummy812(x: Int) extends Base -case class Dummy813(x: Int) extends Base -case class Dummy814(x: Int) extends Base -case class Dummy815(x: Int) extends Base -case class Dummy816(x: Int) extends Base -case class Dummy817(x: Int) extends Base -case class Dummy818(x: Int) extends Base -case class Dummy819(x: Int) extends Base -case class Dummy820(x: Int) extends Base -case class Dummy821(x: Int) extends Base -case class Dummy822(x: Int) extends Base -case class Dummy823(x: Int) extends Base -case class Dummy824(x: Int) extends Base -case class Dummy825(x: Int) extends Base -case class Dummy826(x: Int) extends Base -case class Dummy827(x: Int) extends Base -case class Dummy828(x: Int) extends Base -case class Dummy829(x: Int) extends Base -case class Dummy830(x: Int) extends Base -case class Dummy831(x: Int) extends Base -case class Dummy832(x: Int) extends Base -case class Dummy833(x: Int) extends Base -case class Dummy834(x: Int) extends Base -case class Dummy835(x: Int) extends Base -case class Dummy836(x: Int) extends Base -case class Dummy837(x: Int) extends Base -case class Dummy838(x: Int) extends Base -case class Dummy839(x: Int) extends Base -case class Dummy840(x: Int) extends Base -case class Dummy841(x: Int) extends Base -case class Dummy842(x: Int) extends Base -case class Dummy843(x: Int) extends Base -case class Dummy844(x: Int) extends Base -case class Dummy845(x: Int) extends Base -case class Dummy846(x: Int) extends Base -case class Dummy847(x: Int) extends Base -case class Dummy848(x: Int) extends Base -case class Dummy849(x: Int) extends Base -case class Dummy850(x: Int) extends Base -case class Dummy851(x: Int) extends Base -case class Dummy852(x: Int) extends Base -case class Dummy853(x: Int) extends Base -case class Dummy854(x: Int) extends Base -case class Dummy855(x: Int) extends Base -case class Dummy856(x: Int) extends Base -case class Dummy857(x: Int) extends Base -case class Dummy858(x: Int) extends Base -case class Dummy859(x: Int) extends Base -case class Dummy860(x: Int) extends Base -case class Dummy861(x: Int) extends Base -case class Dummy862(x: Int) extends Base -case class Dummy863(x: Int) extends Base -case class Dummy864(x: Int) extends Base -case class Dummy865(x: Int) extends Base -case class Dummy866(x: Int) extends Base -case class Dummy867(x: Int) extends Base -case class Dummy868(x: Int) extends Base -case class Dummy869(x: Int) extends Base -case class Dummy870(x: Int) extends Base -case class Dummy871(x: Int) extends Base -case class Dummy872(x: Int) extends Base -case class Dummy873(x: Int) extends Base -case class Dummy874(x: Int) extends Base -case class Dummy875(x: Int) extends Base -case class Dummy876(x: Int) extends Base -case class Dummy877(x: Int) extends Base -case class Dummy878(x: Int) extends Base -case class Dummy879(x: Int) extends Base -case class Dummy880(x: Int) extends Base -case class Dummy881(x: Int) extends Base -case class Dummy882(x: Int) extends Base -case class Dummy883(x: Int) extends Base -case class Dummy884(x: Int) extends Base -case class Dummy885(x: Int) extends Base -case class Dummy886(x: Int) extends Base -case class Dummy887(x: Int) extends Base -case class Dummy888(x: Int) extends Base -case class Dummy889(x: Int) extends Base -case class Dummy890(x: Int) extends Base -case class Dummy891(x: Int) extends Base -case class Dummy892(x: Int) extends Base -case class Dummy893(x: Int) extends Base -case class Dummy894(x: Int) extends Base -case class Dummy895(x: Int) extends Base -case class Dummy896(x: Int) extends Base -case class Dummy897(x: Int) extends Base -case class Dummy898(x: Int) extends Base -case class Dummy899(x: Int) extends Base -case class Dummy900(x: Int) extends Base -case class Dummy901(x: Int) extends Base -case class Dummy902(x: Int) extends Base -case class Dummy903(x: Int) extends Base -case class Dummy904(x: Int) extends Base -case class Dummy905(x: Int) extends Base -case class Dummy906(x: Int) extends Base -case class Dummy907(x: Int) extends Base -case class Dummy908(x: Int) extends Base -case class Dummy909(x: Int) extends Base -case class Dummy910(x: Int) extends Base -case class Dummy911(x: Int) extends Base -case class Dummy912(x: Int) extends Base -case class Dummy913(x: Int) extends Base -case class Dummy914(x: Int) extends Base -case class Dummy915(x: Int) extends Base -case class Dummy916(x: Int) extends Base -case class Dummy917(x: Int) extends Base -case class Dummy918(x: Int) extends Base -case class Dummy919(x: Int) extends Base -case class Dummy920(x: Int) extends Base -case class Dummy921(x: Int) extends Base -case class Dummy922(x: Int) extends Base -case class Dummy923(x: Int) extends Base -case class Dummy924(x: Int) extends Base -case class Dummy925(x: Int) extends Base -case class Dummy926(x: Int) extends Base -case class Dummy927(x: Int) extends Base -case class Dummy928(x: Int) extends Base -case class Dummy929(x: Int) extends Base -case class Dummy930(x: Int) extends Base -case class Dummy931(x: Int) extends Base -case class Dummy932(x: Int) extends Base -case class Dummy933(x: Int) extends Base -case class Dummy934(x: Int) extends Base -case class Dummy935(x: Int) extends Base -case class Dummy936(x: Int) extends Base -case class Dummy937(x: Int) extends Base -case class Dummy938(x: Int) extends Base -case class Dummy939(x: Int) extends Base -case class Dummy940(x: Int) extends Base -case class Dummy941(x: Int) extends Base -case class Dummy942(x: Int) extends Base -case class Dummy943(x: Int) extends Base -case class Dummy944(x: Int) extends Base -case class Dummy945(x: Int) extends Base -case class Dummy946(x: Int) extends Base -case class Dummy947(x: Int) extends Base -case class Dummy948(x: Int) extends Base -case class Dummy949(x: Int) extends Base -case class Dummy950(x: Int) extends Base -case class Dummy951(x: Int) extends Base -case class Dummy952(x: Int) extends Base -case class Dummy953(x: Int) extends Base -case class Dummy954(x: Int) extends Base -case class Dummy955(x: Int) extends Base -case class Dummy956(x: Int) extends Base -case class Dummy957(x: Int) extends Base -case class Dummy958(x: Int) extends Base -case class Dummy959(x: Int) extends Base -case class Dummy960(x: Int) extends Base -case class Dummy961(x: Int) extends Base -case class Dummy962(x: Int) extends Base -case class Dummy963(x: Int) extends Base -case class Dummy964(x: Int) extends Base -case class Dummy965(x: Int) extends Base -case class Dummy966(x: Int) extends Base -case class Dummy967(x: Int) extends Base -case class Dummy968(x: Int) extends Base -case class Dummy969(x: Int) extends Base -case class Dummy970(x: Int) extends Base -case class Dummy971(x: Int) extends Base -case class Dummy972(x: Int) extends Base -case class Dummy973(x: Int) extends Base -case class Dummy974(x: Int) extends Base -case class Dummy975(x: Int) extends Base -case class Dummy976(x: Int) extends Base -case class Dummy977(x: Int) extends Base -case class Dummy978(x: Int) extends Base -case class Dummy979(x: Int) extends Base -case class Dummy980(x: Int) extends Base -case class Dummy981(x: Int) extends Base -case class Dummy982(x: Int) extends Base -case class Dummy983(x: Int) extends Base -case class Dummy984(x: Int) extends Base -case class Dummy985(x: Int) extends Base -case class Dummy986(x: Int) extends Base -case class Dummy987(x: Int) extends Base -case class Dummy988(x: Int) extends Base -case class Dummy989(x: Int) extends Base -case class Dummy990(x: Int) extends Base -case class Dummy991(x: Int) extends Base -case class Dummy992(x: Int) extends Base -case class Dummy993(x: Int) extends Base -case class Dummy994(x: Int) extends Base -case class Dummy995(x: Int) extends Base -case class Dummy996(x: Int) extends Base -case class Dummy997(x: Int) extends Base -case class Dummy998(x: Int) extends Base -case class Dummy999(x: Int) extends Base -case class Dummy1000(x: Int) extends Base -case class Dummy1001(x: Int) extends Base -case class Dummy1002(x: Int) extends Base -case class Dummy1003(x: Int) extends Base -case class Dummy1004(x: Int) extends Base -case class Dummy1005(x: Int) extends Base -case class Dummy1006(x: Int) extends Base -case class Dummy1007(x: Int) extends Base -case class Dummy1008(x: Int) extends Base -case class Dummy1009(x: Int) extends Base -case class Dummy1010(x: Int) extends Base -case class Dummy1011(x: Int) extends Base -case class Dummy1012(x: Int) extends Base -case class Dummy1013(x: Int) extends Base -case class Dummy1014(x: Int) extends Base -case class Dummy1015(x: Int) extends Base -case class Dummy1016(x: Int) extends Base -case class Dummy1017(x: Int) extends Base -case class Dummy1018(x: Int) extends Base -case class Dummy1019(x: Int) extends Base -case class Dummy1020(x: Int) extends Base -case class Dummy1021(x: Int) extends Base -case class Dummy1022(x: Int) extends Base -case class Dummy1023(x: Int) extends Base -case class Dummy1024(x: Int) extends Base -case class Dummy1025(x: Int) extends Base -case class Dummy1026(x: Int) extends Base -case class Dummy1027(x: Int) extends Base -case class Dummy1028(x: Int) extends Base -case class Dummy1029(x: Int) extends Base -case class Dummy1030(x: Int) extends Base -case class Dummy1031(x: Int) extends Base -case class Dummy1032(x: Int) extends Base -case class Dummy1033(x: Int) extends Base -case class Dummy1034(x: Int) extends Base -case class Dummy1035(x: Int) extends Base -case class Dummy1036(x: Int) extends Base -case class Dummy1037(x: Int) extends Base -case class Dummy1038(x: Int) extends Base -case class Dummy1039(x: Int) extends Base -case class Dummy1040(x: Int) extends Base -case class Dummy1041(x: Int) extends Base -case class Dummy1042(x: Int) extends Base -case class Dummy1043(x: Int) extends Base -case class Dummy1044(x: Int) extends Base -case class Dummy1045(x: Int) extends Base -case class Dummy1046(x: Int) extends Base -case class Dummy1047(x: Int) extends Base -case class Dummy1048(x: Int) extends Base -case class Dummy1049(x: Int) extends Base -case class Dummy1050(x: Int) extends Base -case class Dummy1051(x: Int) extends Base -case class Dummy1052(x: Int) extends Base -case class Dummy1053(x: Int) extends Base -case class Dummy1054(x: Int) extends Base -case class Dummy1055(x: Int) extends Base -case class Dummy1056(x: Int) extends Base -case class Dummy1057(x: Int) extends Base -case class Dummy1058(x: Int) extends Base -case class Dummy1059(x: Int) extends Base -case class Dummy1060(x: Int) extends Base -case class Dummy1061(x: Int) extends Base -case class Dummy1062(x: Int) extends Base -case class Dummy1063(x: Int) extends Base -case class Dummy1064(x: Int) extends Base -case class Dummy1065(x: Int) extends Base -case class Dummy1066(x: Int) extends Base -case class Dummy1067(x: Int) extends Base -case class Dummy1068(x: Int) extends Base -case class Dummy1069(x: Int) extends Base -case class Dummy1070(x: Int) extends Base -case class Dummy1071(x: Int) extends Base -case class Dummy1072(x: Int) extends Base -case class Dummy1073(x: Int) extends Base -case class Dummy1074(x: Int) extends Base -case class Dummy1075(x: Int) extends Base -case class Dummy1076(x: Int) extends Base -case class Dummy1077(x: Int) extends Base -case class Dummy1078(x: Int) extends Base -case class Dummy1079(x: Int) extends Base -case class Dummy1080(x: Int) extends Base -case class Dummy1081(x: Int) extends Base -case class Dummy1082(x: Int) extends Base -case class Dummy1083(x: Int) extends Base -case class Dummy1084(x: Int) extends Base -case class Dummy1085(x: Int) extends Base -case class Dummy1086(x: Int) extends Base -case class Dummy1087(x: Int) extends Base -case class Dummy1088(x: Int) extends Base -case class Dummy1089(x: Int) extends Base -case class Dummy1090(x: Int) extends Base -case class Dummy1091(x: Int) extends Base -case class Dummy1092(x: Int) extends Base -case class Dummy1093(x: Int) extends Base -case class Dummy1094(x: Int) extends Base -case class Dummy1095(x: Int) extends Base -case class Dummy1096(x: Int) extends Base -case class Dummy1097(x: Int) extends Base -case class Dummy1098(x: Int) extends Base -case class Dummy1099(x: Int) extends Base -case class Dummy1100(x: Int) extends Base -case class Dummy1101(x: Int) extends Base -case class Dummy1102(x: Int) extends Base -case class Dummy1103(x: Int) extends Base -case class Dummy1104(x: Int) extends Base -case class Dummy1105(x: Int) extends Base -case class Dummy1106(x: Int) extends Base -case class Dummy1107(x: Int) extends Base -case class Dummy1108(x: Int) extends Base -case class Dummy1109(x: Int) extends Base -case class Dummy1110(x: Int) extends Base -case class Dummy1111(x: Int) extends Base -case class Dummy1112(x: Int) extends Base -case class Dummy1113(x: Int) extends Base -case class Dummy1114(x: Int) extends Base -case class Dummy1115(x: Int) extends Base -case class Dummy1116(x: Int) extends Base -case class Dummy1117(x: Int) extends Base -case class Dummy1118(x: Int) extends Base -case class Dummy1119(x: Int) extends Base -case class Dummy1120(x: Int) extends Base -case class Dummy1121(x: Int) extends Base -case class Dummy1122(x: Int) extends Base -case class Dummy1123(x: Int) extends Base -case class Dummy1124(x: Int) extends Base -case class Dummy1125(x: Int) extends Base -case class Dummy1126(x: Int) extends Base -case class Dummy1127(x: Int) extends Base -case class Dummy1128(x: Int) extends Base -case class Dummy1129(x: Int) extends Base -case class Dummy1130(x: Int) extends Base -case class Dummy1131(x: Int) extends Base -case class Dummy1132(x: Int) extends Base -case class Dummy1133(x: Int) extends Base -case class Dummy1134(x: Int) extends Base -case class Dummy1135(x: Int) extends Base -case class Dummy1136(x: Int) extends Base -case class Dummy1137(x: Int) extends Base -case class Dummy1138(x: Int) extends Base -case class Dummy1139(x: Int) extends Base -case class Dummy1140(x: Int) extends Base -case class Dummy1141(x: Int) extends Base -case class Dummy1142(x: Int) extends Base -case class Dummy1143(x: Int) extends Base -case class Dummy1144(x: Int) extends Base -case class Dummy1145(x: Int) extends Base -case class Dummy1146(x: Int) extends Base -case class Dummy1147(x: Int) extends Base -case class Dummy1148(x: Int) extends Base -case class Dummy1149(x: Int) extends Base -case class Dummy1150(x: Int) extends Base -case class Dummy1151(x: Int) extends Base -case class Dummy1152(x: Int) extends Base -case class Dummy1153(x: Int) extends Base -case class Dummy1154(x: Int) extends Base -case class Dummy1155(x: Int) extends Base -case class Dummy1156(x: Int) extends Base -case class Dummy1157(x: Int) extends Base -case class Dummy1158(x: Int) extends Base -case class Dummy1159(x: Int) extends Base -case class Dummy1160(x: Int) extends Base -case class Dummy1161(x: Int) extends Base -case class Dummy1162(x: Int) extends Base -case class Dummy1163(x: Int) extends Base -case class Dummy1164(x: Int) extends Base -case class Dummy1165(x: Int) extends Base -case class Dummy1166(x: Int) extends Base -case class Dummy1167(x: Int) extends Base -case class Dummy1168(x: Int) extends Base -case class Dummy1169(x: Int) extends Base -case class Dummy1170(x: Int) extends Base -case class Dummy1171(x: Int) extends Base -case class Dummy1172(x: Int) extends Base -case class Dummy1173(x: Int) extends Base -case class Dummy1174(x: Int) extends Base -case class Dummy1175(x: Int) extends Base -case class Dummy1176(x: Int) extends Base -case class Dummy1177(x: Int) extends Base -case class Dummy1178(x: Int) extends Base -case class Dummy1179(x: Int) extends Base -case class Dummy1180(x: Int) extends Base -case class Dummy1181(x: Int) extends Base -case class Dummy1182(x: Int) extends Base -case class Dummy1183(x: Int) extends Base -case class Dummy1184(x: Int) extends Base -case class Dummy1185(x: Int) extends Base -case class Dummy1186(x: Int) extends Base -case class Dummy1187(x: Int) extends Base -case class Dummy1188(x: Int) extends Base -case class Dummy1189(x: Int) extends Base -case class Dummy1190(x: Int) extends Base -case class Dummy1191(x: Int) extends Base -case class Dummy1192(x: Int) extends Base -case class Dummy1193(x: Int) extends Base -case class Dummy1194(x: Int) extends Base -case class Dummy1195(x: Int) extends Base -case class Dummy1196(x: Int) extends Base -case class Dummy1197(x: Int) extends Base -case class Dummy1198(x: Int) extends Base -case class Dummy1199(x: Int) extends Base -case class Dummy1200(x: Int) extends Base -case class Dummy1201(x: Int) extends Base -case class Dummy1202(x: Int) extends Base -case class Dummy1203(x: Int) extends Base -case class Dummy1204(x: Int) extends Base -case class Dummy1205(x: Int) extends Base -case class Dummy1206(x: Int) extends Base -case class Dummy1207(x: Int) extends Base -case class Dummy1208(x: Int) extends Base -case class Dummy1209(x: Int) extends Base -case class Dummy1210(x: Int) extends Base -case class Dummy1211(x: Int) extends Base -case class Dummy1212(x: Int) extends Base -case class Dummy1213(x: Int) extends Base -case class Dummy1214(x: Int) extends Base -case class Dummy1215(x: Int) extends Base -case class Dummy1216(x: Int) extends Base -case class Dummy1217(x: Int) extends Base -case class Dummy1218(x: Int) extends Base -case class Dummy1219(x: Int) extends Base -case class Dummy1220(x: Int) extends Base -case class Dummy1221(x: Int) extends Base -case class Dummy1222(x: Int) extends Base -case class Dummy1223(x: Int) extends Base -case class Dummy1224(x: Int) extends Base -case class Dummy1225(x: Int) extends Base -case class Dummy1226(x: Int) extends Base -case class Dummy1227(x: Int) extends Base -case class Dummy1228(x: Int) extends Base -case class Dummy1229(x: Int) extends Base -case class Dummy1230(x: Int) extends Base -case class Dummy1231(x: Int) extends Base -case class Dummy1232(x: Int) extends Base -case class Dummy1233(x: Int) extends Base -case class Dummy1234(x: Int) extends Base -case class Dummy1235(x: Int) extends Base -case class Dummy1236(x: Int) extends Base -case class Dummy1237(x: Int) extends Base -case class Dummy1238(x: Int) extends Base -case class Dummy1239(x: Int) extends Base -case class Dummy1240(x: Int) extends Base -case class Dummy1241(x: Int) extends Base -case class Dummy1242(x: Int) extends Base -case class Dummy1243(x: Int) extends Base -case class Dummy1244(x: Int) extends Base -case class Dummy1245(x: Int) extends Base -case class Dummy1246(x: Int) extends Base -case class Dummy1247(x: Int) extends Base -case class Dummy1248(x: Int) extends Base -case class Dummy1249(x: Int) extends Base -case class Dummy1250(x: Int) extends Base -case class Dummy1251(x: Int) extends Base -case class Dummy1252(x: Int) extends Base -case class Dummy1253(x: Int) extends Base -case class Dummy1254(x: Int) extends Base -case class Dummy1255(x: Int) extends Base -case class Dummy1256(x: Int) extends Base -case class Dummy1257(x: Int) extends Base -case class Dummy1258(x: Int) extends Base -case class Dummy1259(x: Int) extends Base -case class Dummy1260(x: Int) extends Base -case class Dummy1261(x: Int) extends Base -case class Dummy1262(x: Int) extends Base -case class Dummy1263(x: Int) extends Base -case class Dummy1264(x: Int) extends Base -case class Dummy1265(x: Int) extends Base -case class Dummy1266(x: Int) extends Base -case class Dummy1267(x: Int) extends Base -case class Dummy1268(x: Int) extends Base -case class Dummy1269(x: Int) extends Base -case class Dummy1270(x: Int) extends Base -case class Dummy1271(x: Int) extends Base -case class Dummy1272(x: Int) extends Base -case class Dummy1273(x: Int) extends Base -case class Dummy1274(x: Int) extends Base -case class Dummy1275(x: Int) extends Base -case class Dummy1276(x: Int) extends Base -case class Dummy1277(x: Int) extends Base -case class Dummy1278(x: Int) extends Base -case class Dummy1279(x: Int) extends Base -case class Dummy1280(x: Int) extends Base -case class Dummy1281(x: Int) extends Base -case class Dummy1282(x: Int) extends Base -case class Dummy1283(x: Int) extends Base -case class Dummy1284(x: Int) extends Base -case class Dummy1285(x: Int) extends Base -case class Dummy1286(x: Int) extends Base -case class Dummy1287(x: Int) extends Base -case class Dummy1288(x: Int) extends Base -case class Dummy1289(x: Int) extends Base -case class Dummy1290(x: Int) extends Base -case class Dummy1291(x: Int) extends Base -case class Dummy1292(x: Int) extends Base -case class Dummy1293(x: Int) extends Base -case class Dummy1294(x: Int) extends Base -case class Dummy1295(x: Int) extends Base -case class Dummy1296(x: Int) extends Base -case class Dummy1297(x: Int) extends Base -case class Dummy1298(x: Int) extends Base -case class Dummy1299(x: Int) extends Base -case class Dummy1300(x: Int) extends Base -case class Dummy1301(x: Int) extends Base -case class Dummy1302(x: Int) extends Base -case class Dummy1303(x: Int) extends Base -case class Dummy1304(x: Int) extends Base -case class Dummy1305(x: Int) extends Base -case class Dummy1306(x: Int) extends Base -case class Dummy1307(x: Int) extends Base -case class Dummy1308(x: Int) extends Base -case class Dummy1309(x: Int) extends Base -case class Dummy1310(x: Int) extends Base -case class Dummy1311(x: Int) extends Base -case class Dummy1312(x: Int) extends Base -case class Dummy1313(x: Int) extends Base -case class Dummy1314(x: Int) extends Base -case class Dummy1315(x: Int) extends Base -case class Dummy1316(x: Int) extends Base -case class Dummy1317(x: Int) extends Base -case class Dummy1318(x: Int) extends Base -case class Dummy1319(x: Int) extends Base -case class Dummy1320(x: Int) extends Base -case class Dummy1321(x: Int) extends Base -case class Dummy1322(x: Int) extends Base -case class Dummy1323(x: Int) extends Base -case class Dummy1324(x: Int) extends Base -case class Dummy1325(x: Int) extends Base -case class Dummy1326(x: Int) extends Base -case class Dummy1327(x: Int) extends Base -case class Dummy1328(x: Int) extends Base -case class Dummy1329(x: Int) extends Base -case class Dummy1330(x: Int) extends Base -case class Dummy1331(x: Int) extends Base -case class Dummy1332(x: Int) extends Base -case class Dummy1333(x: Int) extends Base -case class Dummy1334(x: Int) extends Base -case class Dummy1335(x: Int) extends Base -case class Dummy1336(x: Int) extends Base -case class Dummy1337(x: Int) extends Base -case class Dummy1338(x: Int) extends Base -case class Dummy1339(x: Int) extends Base -case class Dummy1340(x: Int) extends Base -case class Dummy1341(x: Int) extends Base -case class Dummy1342(x: Int) extends Base -case class Dummy1343(x: Int) extends Base -case class Dummy1344(x: Int) extends Base -case class Dummy1345(x: Int) extends Base -case class Dummy1346(x: Int) extends Base -case class Dummy1347(x: Int) extends Base -case class Dummy1348(x: Int) extends Base -case class Dummy1349(x: Int) extends Base -case class Dummy1350(x: Int) extends Base -case class Dummy1351(x: Int) extends Base -case class Dummy1352(x: Int) extends Base -case class Dummy1353(x: Int) extends Base -case class Dummy1354(x: Int) extends Base -case class Dummy1355(x: Int) extends Base -case class Dummy1356(x: Int) extends Base -case class Dummy1357(x: Int) extends Base -case class Dummy1358(x: Int) extends Base -case class Dummy1359(x: Int) extends Base -case class Dummy1360(x: Int) extends Base -case class Dummy1361(x: Int) extends Base -case class Dummy1362(x: Int) extends Base -case class Dummy1363(x: Int) extends Base -case class Dummy1364(x: Int) extends Base -case class Dummy1365(x: Int) extends Base -case class Dummy1366(x: Int) extends Base -case class Dummy1367(x: Int) extends Base -case class Dummy1368(x: Int) extends Base -case class Dummy1369(x: Int) extends Base -case class Dummy1370(x: Int) extends Base -case class Dummy1371(x: Int) extends Base -case class Dummy1372(x: Int) extends Base -case class Dummy1373(x: Int) extends Base -case class Dummy1374(x: Int) extends Base -case class Dummy1375(x: Int) extends Base -case class Dummy1376(x: Int) extends Base -case class Dummy1377(x: Int) extends Base -case class Dummy1378(x: Int) extends Base -case class Dummy1379(x: Int) extends Base -case class Dummy1380(x: Int) extends Base -case class Dummy1381(x: Int) extends Base -case class Dummy1382(x: Int) extends Base -case class Dummy1383(x: Int) extends Base -case class Dummy1384(x: Int) extends Base -case class Dummy1385(x: Int) extends Base -case class Dummy1386(x: Int) extends Base -case class Dummy1387(x: Int) extends Base -case class Dummy1388(x: Int) extends Base -case class Dummy1389(x: Int) extends Base -case class Dummy1390(x: Int) extends Base -case class Dummy1391(x: Int) extends Base -case class Dummy1392(x: Int) extends Base -case class Dummy1393(x: Int) extends Base -case class Dummy1394(x: Int) extends Base -case class Dummy1395(x: Int) extends Base -case class Dummy1396(x: Int) extends Base -case class Dummy1397(x: Int) extends Base -case class Dummy1398(x: Int) extends Base -case class Dummy1399(x: Int) extends Base -case class Dummy1400(x: Int) extends Base -case class Dummy1401(x: Int) extends Base -case class Dummy1402(x: Int) extends Base -case class Dummy1403(x: Int) extends Base -case class Dummy1404(x: Int) extends Base -case class Dummy1405(x: Int) extends Base -case class Dummy1406(x: Int) extends Base -case class Dummy1407(x: Int) extends Base -case class Dummy1408(x: Int) extends Base -case class Dummy1409(x: Int) extends Base -case class Dummy1410(x: Int) extends Base -case class Dummy1411(x: Int) extends Base -case class Dummy1412(x: Int) extends Base -case class Dummy1413(x: Int) extends Base -case class Dummy1414(x: Int) extends Base -case class Dummy1415(x: Int) extends Base -case class Dummy1416(x: Int) extends Base -case class Dummy1417(x: Int) extends Base -case class Dummy1418(x: Int) extends Base -case class Dummy1419(x: Int) extends Base -case class Dummy1420(x: Int) extends Base -case class Dummy1421(x: Int) extends Base -case class Dummy1422(x: Int) extends Base -case class Dummy1423(x: Int) extends Base -case class Dummy1424(x: Int) extends Base -case class Dummy1425(x: Int) extends Base -case class Dummy1426(x: Int) extends Base -case class Dummy1427(x: Int) extends Base -case class Dummy1428(x: Int) extends Base -case class Dummy1429(x: Int) extends Base -case class Dummy1430(x: Int) extends Base -case class Dummy1431(x: Int) extends Base -case class Dummy1432(x: Int) extends Base -case class Dummy1433(x: Int) extends Base -case class Dummy1434(x: Int) extends Base -case class Dummy1435(x: Int) extends Base -case class Dummy1436(x: Int) extends Base -case class Dummy1437(x: Int) extends Base -case class Dummy1438(x: Int) extends Base -case class Dummy1439(x: Int) extends Base -case class Dummy1440(x: Int) extends Base -case class Dummy1441(x: Int) extends Base -case class Dummy1442(x: Int) extends Base -case class Dummy1443(x: Int) extends Base -case class Dummy1444(x: Int) extends Base -case class Dummy1445(x: Int) extends Base -case class Dummy1446(x: Int) extends Base -case class Dummy1447(x: Int) extends Base -case class Dummy1448(x: Int) extends Base -case class Dummy1449(x: Int) extends Base -case class Dummy1450(x: Int) extends Base -case class Dummy1451(x: Int) extends Base -case class Dummy1452(x: Int) extends Base -case class Dummy1453(x: Int) extends Base -case class Dummy1454(x: Int) extends Base -case class Dummy1455(x: Int) extends Base -case class Dummy1456(x: Int) extends Base -case class Dummy1457(x: Int) extends Base -case class Dummy1458(x: Int) extends Base -case class Dummy1459(x: Int) extends Base -case class Dummy1460(x: Int) extends Base -case class Dummy1461(x: Int) extends Base -case class Dummy1462(x: Int) extends Base -case class Dummy1463(x: Int) extends Base -case class Dummy1464(x: Int) extends Base -case class Dummy1465(x: Int) extends Base -case class Dummy1466(x: Int) extends Base -case class Dummy1467(x: Int) extends Base -case class Dummy1468(x: Int) extends Base -case class Dummy1469(x: Int) extends Base -case class Dummy1470(x: Int) extends Base -case class Dummy1471(x: Int) extends Base -case class Dummy1472(x: Int) extends Base -case class Dummy1473(x: Int) extends Base -case class Dummy1474(x: Int) extends Base -case class Dummy1475(x: Int) extends Base -case class Dummy1476(x: Int) extends Base -case class Dummy1477(x: Int) extends Base -case class Dummy1478(x: Int) extends Base -case class Dummy1479(x: Int) extends Base -case class Dummy1480(x: Int) extends Base -case class Dummy1481(x: Int) extends Base -case class Dummy1482(x: Int) extends Base -case class Dummy1483(x: Int) extends Base -case class Dummy1484(x: Int) extends Base -case class Dummy1485(x: Int) extends Base -case class Dummy1486(x: Int) extends Base -case class Dummy1487(x: Int) extends Base -case class Dummy1488(x: Int) extends Base -case class Dummy1489(x: Int) extends Base -case class Dummy1490(x: Int) extends Base -case class Dummy1491(x: Int) extends Base -case class Dummy1492(x: Int) extends Base -case class Dummy1493(x: Int) extends Base -case class Dummy1494(x: Int) extends Base -case class Dummy1495(x: Int) extends Base -case class Dummy1496(x: Int) extends Base -case class Dummy1497(x: Int) extends Base -case class Dummy1498(x: Int) extends Base -case class Dummy1499(x: Int) extends Base -case class Dummy1500(x: Int) extends Base -case class Dummy1501(x: Int) extends Base -case class Dummy1502(x: Int) extends Base -case class Dummy1503(x: Int) extends Base -case class Dummy1504(x: Int) extends Base -case class Dummy1505(x: Int) extends Base -case class Dummy1506(x: Int) extends Base -case class Dummy1507(x: Int) extends Base -case class Dummy1508(x: Int) extends Base -case class Dummy1509(x: Int) extends Base -case class Dummy1510(x: Int) extends Base -case class Dummy1511(x: Int) extends Base -case class Dummy1512(x: Int) extends Base -case class Dummy1513(x: Int) extends Base -case class Dummy1514(x: Int) extends Base -case class Dummy1515(x: Int) extends Base -case class Dummy1516(x: Int) extends Base -case class Dummy1517(x: Int) extends Base -case class Dummy1518(x: Int) extends Base -case class Dummy1519(x: Int) extends Base -case class Dummy1520(x: Int) extends Base -case class Dummy1521(x: Int) extends Base -case class Dummy1522(x: Int) extends Base -case class Dummy1523(x: Int) extends Base -case class Dummy1524(x: Int) extends Base -case class Dummy1525(x: Int) extends Base -case class Dummy1526(x: Int) extends Base -case class Dummy1527(x: Int) extends Base -case class Dummy1528(x: Int) extends Base -case class Dummy1529(x: Int) extends Base -case class Dummy1530(x: Int) extends Base -case class Dummy1531(x: Int) extends Base -case class Dummy1532(x: Int) extends Base -case class Dummy1533(x: Int) extends Base -case class Dummy1534(x: Int) extends Base -case class Dummy1535(x: Int) extends Base -case class Dummy1536(x: Int) extends Base -case class Dummy1537(x: Int) extends Base -case class Dummy1538(x: Int) extends Base -case class Dummy1539(x: Int) extends Base -case class Dummy1540(x: Int) extends Base -case class Dummy1541(x: Int) extends Base -case class Dummy1542(x: Int) extends Base -case class Dummy1543(x: Int) extends Base -case class Dummy1544(x: Int) extends Base -case class Dummy1545(x: Int) extends Base -case class Dummy1546(x: Int) extends Base -case class Dummy1547(x: Int) extends Base -case class Dummy1548(x: Int) extends Base -case class Dummy1549(x: Int) extends Base -case class Dummy1550(x: Int) extends Base -case class Dummy1551(x: Int) extends Base -case class Dummy1552(x: Int) extends Base -case class Dummy1553(x: Int) extends Base -case class Dummy1554(x: Int) extends Base -case class Dummy1555(x: Int) extends Base -case class Dummy1556(x: Int) extends Base -case class Dummy1557(x: Int) extends Base -case class Dummy1558(x: Int) extends Base -case class Dummy1559(x: Int) extends Base -case class Dummy1560(x: Int) extends Base -case class Dummy1561(x: Int) extends Base -case class Dummy1562(x: Int) extends Base -case class Dummy1563(x: Int) extends Base -case class Dummy1564(x: Int) extends Base -case class Dummy1565(x: Int) extends Base -case class Dummy1566(x: Int) extends Base -case class Dummy1567(x: Int) extends Base -case class Dummy1568(x: Int) extends Base -case class Dummy1569(x: Int) extends Base -case class Dummy1570(x: Int) extends Base -case class Dummy1571(x: Int) extends Base -case class Dummy1572(x: Int) extends Base -case class Dummy1573(x: Int) extends Base -case class Dummy1574(x: Int) extends Base -case class Dummy1575(x: Int) extends Base -case class Dummy1576(x: Int) extends Base -case class Dummy1577(x: Int) extends Base -case class Dummy1578(x: Int) extends Base -case class Dummy1579(x: Int) extends Base -case class Dummy1580(x: Int) extends Base -case class Dummy1581(x: Int) extends Base -case class Dummy1582(x: Int) extends Base -case class Dummy1583(x: Int) extends Base -case class Dummy1584(x: Int) extends Base -case class Dummy1585(x: Int) extends Base -case class Dummy1586(x: Int) extends Base -case class Dummy1587(x: Int) extends Base -case class Dummy1588(x: Int) extends Base -case class Dummy1589(x: Int) extends Base -case class Dummy1590(x: Int) extends Base -case class Dummy1591(x: Int) extends Base -case class Dummy1592(x: Int) extends Base -case class Dummy1593(x: Int) extends Base -case class Dummy1594(x: Int) extends Base -case class Dummy1595(x: Int) extends Base -case class Dummy1596(x: Int) extends Base -case class Dummy1597(x: Int) extends Base -case class Dummy1598(x: Int) extends Base -case class Dummy1599(x: Int) extends Base -case class Dummy1600(x: Int) extends Base -case class Dummy1601(x: Int) extends Base -case class Dummy1602(x: Int) extends Base -case class Dummy1603(x: Int) extends Base -case class Dummy1604(x: Int) extends Base -case class Dummy1605(x: Int) extends Base -case class Dummy1606(x: Int) extends Base -case class Dummy1607(x: Int) extends Base -case class Dummy1608(x: Int) extends Base -case class Dummy1609(x: Int) extends Base -case class Dummy1610(x: Int) extends Base -case class Dummy1611(x: Int) extends Base -case class Dummy1612(x: Int) extends Base -case class Dummy1613(x: Int) extends Base -case class Dummy1614(x: Int) extends Base -case class Dummy1615(x: Int) extends Base -case class Dummy1616(x: Int) extends Base -case class Dummy1617(x: Int) extends Base -case class Dummy1618(x: Int) extends Base -case class Dummy1619(x: Int) extends Base -case class Dummy1620(x: Int) extends Base -case class Dummy1621(x: Int) extends Base -case class Dummy1622(x: Int) extends Base -case class Dummy1623(x: Int) extends Base -case class Dummy1624(x: Int) extends Base -case class Dummy1625(x: Int) extends Base -case class Dummy1626(x: Int) extends Base -case class Dummy1627(x: Int) extends Base -case class Dummy1628(x: Int) extends Base -case class Dummy1629(x: Int) extends Base -case class Dummy1630(x: Int) extends Base -case class Dummy1631(x: Int) extends Base -case class Dummy1632(x: Int) extends Base -case class Dummy1633(x: Int) extends Base -case class Dummy1634(x: Int) extends Base -case class Dummy1635(x: Int) extends Base -case class Dummy1636(x: Int) extends Base -case class Dummy1637(x: Int) extends Base -case class Dummy1638(x: Int) extends Base -case class Dummy1639(x: Int) extends Base -case class Dummy1640(x: Int) extends Base -case class Dummy1641(x: Int) extends Base -case class Dummy1642(x: Int) extends Base -case class Dummy1643(x: Int) extends Base -case class Dummy1644(x: Int) extends Base -case class Dummy1645(x: Int) extends Base -case class Dummy1646(x: Int) extends Base -case class Dummy1647(x: Int) extends Base -case class Dummy1648(x: Int) extends Base -case class Dummy1649(x: Int) extends Base -case class Dummy1650(x: Int) extends Base -case class Dummy1651(x: Int) extends Base -case class Dummy1652(x: Int) extends Base -case class Dummy1653(x: Int) extends Base -case class Dummy1654(x: Int) extends Base -case class Dummy1655(x: Int) extends Base -case class Dummy1656(x: Int) extends Base -case class Dummy1657(x: Int) extends Base -case class Dummy1658(x: Int) extends Base -case class Dummy1659(x: Int) extends Base -case class Dummy1660(x: Int) extends Base -case class Dummy1661(x: Int) extends Base -case class Dummy1662(x: Int) extends Base -case class Dummy1663(x: Int) extends Base -case class Dummy1664(x: Int) extends Base -case class Dummy1665(x: Int) extends Base -case class Dummy1666(x: Int) extends Base -case class Dummy1667(x: Int) extends Base -case class Dummy1668(x: Int) extends Base -case class Dummy1669(x: Int) extends Base -case class Dummy1670(x: Int) extends Base -case class Dummy1671(x: Int) extends Base -case class Dummy1672(x: Int) extends Base -case class Dummy1673(x: Int) extends Base -case class Dummy1674(x: Int) extends Base -case class Dummy1675(x: Int) extends Base -case class Dummy1676(x: Int) extends Base -case class Dummy1677(x: Int) extends Base -case class Dummy1678(x: Int) extends Base -case class Dummy1679(x: Int) extends Base -case class Dummy1680(x: Int) extends Base -case class Dummy1681(x: Int) extends Base -case class Dummy1682(x: Int) extends Base -case class Dummy1683(x: Int) extends Base -case class Dummy1684(x: Int) extends Base -case class Dummy1685(x: Int) extends Base -case class Dummy1686(x: Int) extends Base -case class Dummy1687(x: Int) extends Base -case class Dummy1688(x: Int) extends Base -case class Dummy1689(x: Int) extends Base -case class Dummy1690(x: Int) extends Base -case class Dummy1691(x: Int) extends Base -case class Dummy1692(x: Int) extends Base -case class Dummy1693(x: Int) extends Base -case class Dummy1694(x: Int) extends Base -case class Dummy1695(x: Int) extends Base -case class Dummy1696(x: Int) extends Base -case class Dummy1697(x: Int) extends Base -case class Dummy1698(x: Int) extends Base -case class Dummy1699(x: Int) extends Base -case class Dummy1700(x: Int) extends Base -case class Dummy1701(x: Int) extends Base -case class Dummy1702(x: Int) extends Base -case class Dummy1703(x: Int) extends Base -case class Dummy1704(x: Int) extends Base -case class Dummy1705(x: Int) extends Base -case class Dummy1706(x: Int) extends Base -case class Dummy1707(x: Int) extends Base -case class Dummy1708(x: Int) extends Base -case class Dummy1709(x: Int) extends Base -case class Dummy1710(x: Int) extends Base -case class Dummy1711(x: Int) extends Base -case class Dummy1712(x: Int) extends Base -case class Dummy1713(x: Int) extends Base -case class Dummy1714(x: Int) extends Base -case class Dummy1715(x: Int) extends Base -case class Dummy1716(x: Int) extends Base -case class Dummy1717(x: Int) extends Base -case class Dummy1718(x: Int) extends Base -case class Dummy1719(x: Int) extends Base -case class Dummy1720(x: Int) extends Base -case class Dummy1721(x: Int) extends Base -case class Dummy1722(x: Int) extends Base -case class Dummy1723(x: Int) extends Base -case class Dummy1724(x: Int) extends Base -case class Dummy1725(x: Int) extends Base -case class Dummy1726(x: Int) extends Base -case class Dummy1727(x: Int) extends Base -case class Dummy1728(x: Int) extends Base -case class Dummy1729(x: Int) extends Base -case class Dummy1730(x: Int) extends Base -case class Dummy1731(x: Int) extends Base -case class Dummy1732(x: Int) extends Base -case class Dummy1733(x: Int) extends Base -case class Dummy1734(x: Int) extends Base -case class Dummy1735(x: Int) extends Base -case class Dummy1736(x: Int) extends Base -case class Dummy1737(x: Int) extends Base -case class Dummy1738(x: Int) extends Base -case class Dummy1739(x: Int) extends Base -case class Dummy1740(x: Int) extends Base -case class Dummy1741(x: Int) extends Base -case class Dummy1742(x: Int) extends Base -case class Dummy1743(x: Int) extends Base -case class Dummy1744(x: Int) extends Base -case class Dummy1745(x: Int) extends Base -case class Dummy1746(x: Int) extends Base -case class Dummy1747(x: Int) extends Base -case class Dummy1748(x: Int) extends Base -case class Dummy1749(x: Int) extends Base -case class Dummy1750(x: Int) extends Base -case class Dummy1751(x: Int) extends Base -case class Dummy1752(x: Int) extends Base -case class Dummy1753(x: Int) extends Base -case class Dummy1754(x: Int) extends Base -case class Dummy1755(x: Int) extends Base -case class Dummy1756(x: Int) extends Base -case class Dummy1757(x: Int) extends Base -case class Dummy1758(x: Int) extends Base -case class Dummy1759(x: Int) extends Base -case class Dummy1760(x: Int) extends Base -case class Dummy1761(x: Int) extends Base -case class Dummy1762(x: Int) extends Base -case class Dummy1763(x: Int) extends Base -case class Dummy1764(x: Int) extends Base -case class Dummy1765(x: Int) extends Base -case class Dummy1766(x: Int) extends Base -case class Dummy1767(x: Int) extends Base -case class Dummy1768(x: Int) extends Base -case class Dummy1769(x: Int) extends Base -case class Dummy1770(x: Int) extends Base -case class Dummy1771(x: Int) extends Base -case class Dummy1772(x: Int) extends Base -case class Dummy1773(x: Int) extends Base -case class Dummy1774(x: Int) extends Base -case class Dummy1775(x: Int) extends Base -case class Dummy1776(x: Int) extends Base -case class Dummy1777(x: Int) extends Base -case class Dummy1778(x: Int) extends Base -case class Dummy1779(x: Int) extends Base -case class Dummy1780(x: Int) extends Base -case class Dummy1781(x: Int) extends Base -case class Dummy1782(x: Int) extends Base -case class Dummy1783(x: Int) extends Base -case class Dummy1784(x: Int) extends Base -case class Dummy1785(x: Int) extends Base -case class Dummy1786(x: Int) extends Base -case class Dummy1787(x: Int) extends Base -case class Dummy1788(x: Int) extends Base -case class Dummy1789(x: Int) extends Base -case class Dummy1790(x: Int) extends Base -case class Dummy1791(x: Int) extends Base -case class Dummy1792(x: Int) extends Base -case class Dummy1793(x: Int) extends Base -case class Dummy1794(x: Int) extends Base -case class Dummy1795(x: Int) extends Base -case class Dummy1796(x: Int) extends Base -case class Dummy1797(x: Int) extends Base -case class Dummy1798(x: Int) extends Base -case class Dummy1799(x: Int) extends Base -case class Dummy1800(x: Int) extends Base -case class Dummy1801(x: Int) extends Base -case class Dummy1802(x: Int) extends Base -case class Dummy1803(x: Int) extends Base -case class Dummy1804(x: Int) extends Base -case class Dummy1805(x: Int) extends Base -case class Dummy1806(x: Int) extends Base -case class Dummy1807(x: Int) extends Base -case class Dummy1808(x: Int) extends Base -case class Dummy1809(x: Int) extends Base -case class Dummy1810(x: Int) extends Base -case class Dummy1811(x: Int) extends Base -case class Dummy1812(x: Int) extends Base -case class Dummy1813(x: Int) extends Base -case class Dummy1814(x: Int) extends Base -case class Dummy1815(x: Int) extends Base -case class Dummy1816(x: Int) extends Base -case class Dummy1817(x: Int) extends Base -case class Dummy1818(x: Int) extends Base -case class Dummy1819(x: Int) extends Base -case class Dummy1820(x: Int) extends Base -case class Dummy1821(x: Int) extends Base -case class Dummy1822(x: Int) extends Base -case class Dummy1823(x: Int) extends Base -case class Dummy1824(x: Int) extends Base -case class Dummy1825(x: Int) extends Base -case class Dummy1826(x: Int) extends Base -case class Dummy1827(x: Int) extends Base -case class Dummy1828(x: Int) extends Base -case class Dummy1829(x: Int) extends Base -case class Dummy1830(x: Int) extends Base -case class Dummy1831(x: Int) extends Base -case class Dummy1832(x: Int) extends Base -case class Dummy1833(x: Int) extends Base -case class Dummy1834(x: Int) extends Base -case class Dummy1835(x: Int) extends Base -case class Dummy1836(x: Int) extends Base -case class Dummy1837(x: Int) extends Base -case class Dummy1838(x: Int) extends Base -case class Dummy1839(x: Int) extends Base -case class Dummy1840(x: Int) extends Base -case class Dummy1841(x: Int) extends Base -case class Dummy1842(x: Int) extends Base -case class Dummy1843(x: Int) extends Base -case class Dummy1844(x: Int) extends Base -case class Dummy1845(x: Int) extends Base -case class Dummy1846(x: Int) extends Base -case class Dummy1847(x: Int) extends Base -case class Dummy1848(x: Int) extends Base -case class Dummy1849(x: Int) extends Base -case class Dummy1850(x: Int) extends Base -case class Dummy1851(x: Int) extends Base -case class Dummy1852(x: Int) extends Base -case class Dummy1853(x: Int) extends Base -case class Dummy1854(x: Int) extends Base -case class Dummy1855(x: Int) extends Base -case class Dummy1856(x: Int) extends Base -case class Dummy1857(x: Int) extends Base -case class Dummy1858(x: Int) extends Base -case class Dummy1859(x: Int) extends Base -case class Dummy1860(x: Int) extends Base -case class Dummy1861(x: Int) extends Base -case class Dummy1862(x: Int) extends Base -case class Dummy1863(x: Int) extends Base -case class Dummy1864(x: Int) extends Base -case class Dummy1865(x: Int) extends Base -case class Dummy1866(x: Int) extends Base -case class Dummy1867(x: Int) extends Base -case class Dummy1868(x: Int) extends Base -case class Dummy1869(x: Int) extends Base -case class Dummy1870(x: Int) extends Base -case class Dummy1871(x: Int) extends Base -case class Dummy1872(x: Int) extends Base -case class Dummy1873(x: Int) extends Base -case class Dummy1874(x: Int) extends Base -case class Dummy1875(x: Int) extends Base -case class Dummy1876(x: Int) extends Base -case class Dummy1877(x: Int) extends Base -case class Dummy1878(x: Int) extends Base -case class Dummy1879(x: Int) extends Base -case class Dummy1880(x: Int) extends Base -case class Dummy1881(x: Int) extends Base -case class Dummy1882(x: Int) extends Base -case class Dummy1883(x: Int) extends Base -case class Dummy1884(x: Int) extends Base -case class Dummy1885(x: Int) extends Base -case class Dummy1886(x: Int) extends Base -case class Dummy1887(x: Int) extends Base -case class Dummy1888(x: Int) extends Base -case class Dummy1889(x: Int) extends Base -case class Dummy1890(x: Int) extends Base -case class Dummy1891(x: Int) extends Base -case class Dummy1892(x: Int) extends Base -case class Dummy1893(x: Int) extends Base -case class Dummy1894(x: Int) extends Base -case class Dummy1895(x: Int) extends Base -case class Dummy1896(x: Int) extends Base -case class Dummy1897(x: Int) extends Base -case class Dummy1898(x: Int) extends Base -case class Dummy1899(x: Int) extends Base -case class Dummy1900(x: Int) extends Base -case class Dummy1901(x: Int) extends Base -case class Dummy1902(x: Int) extends Base -case class Dummy1903(x: Int) extends Base -case class Dummy1904(x: Int) extends Base -case class Dummy1905(x: Int) extends Base -case class Dummy1906(x: Int) extends Base -case class Dummy1907(x: Int) extends Base -case class Dummy1908(x: Int) extends Base -case class Dummy1909(x: Int) extends Base -case class Dummy1910(x: Int) extends Base -case class Dummy1911(x: Int) extends Base -case class Dummy1912(x: Int) extends Base -case class Dummy1913(x: Int) extends Base -case class Dummy1914(x: Int) extends Base -case class Dummy1915(x: Int) extends Base -case class Dummy1916(x: Int) extends Base -case class Dummy1917(x: Int) extends Base -case class Dummy1918(x: Int) extends Base -case class Dummy1919(x: Int) extends Base -case class Dummy1920(x: Int) extends Base -case class Dummy1921(x: Int) extends Base -case class Dummy1922(x: Int) extends Base -case class Dummy1923(x: Int) extends Base -case class Dummy1924(x: Int) extends Base -case class Dummy1925(x: Int) extends Base -case class Dummy1926(x: Int) extends Base -case class Dummy1927(x: Int) extends Base -case class Dummy1928(x: Int) extends Base -case class Dummy1929(x: Int) extends Base -case class Dummy1930(x: Int) extends Base -case class Dummy1931(x: Int) extends Base -case class Dummy1932(x: Int) extends Base -case class Dummy1933(x: Int) extends Base -case class Dummy1934(x: Int) extends Base -case class Dummy1935(x: Int) extends Base -case class Dummy1936(x: Int) extends Base -case class Dummy1937(x: Int) extends Base -case class Dummy1938(x: Int) extends Base -case class Dummy1939(x: Int) extends Base -case class Dummy1940(x: Int) extends Base -case class Dummy1941(x: Int) extends Base -case class Dummy1942(x: Int) extends Base -case class Dummy1943(x: Int) extends Base -case class Dummy1944(x: Int) extends Base -case class Dummy1945(x: Int) extends Base -case class Dummy1946(x: Int) extends Base -case class Dummy1947(x: Int) extends Base -case class Dummy1948(x: Int) extends Base -case class Dummy1949(x: Int) extends Base -case class Dummy1950(x: Int) extends Base -case class Dummy1951(x: Int) extends Base -case class Dummy1952(x: Int) extends Base -case class Dummy1953(x: Int) extends Base -case class Dummy1954(x: Int) extends Base -case class Dummy1955(x: Int) extends Base -case class Dummy1956(x: Int) extends Base -case class Dummy1957(x: Int) extends Base -case class Dummy1958(x: Int) extends Base -case class Dummy1959(x: Int) extends Base -case class Dummy1960(x: Int) extends Base -case class Dummy1961(x: Int) extends Base -case class Dummy1962(x: Int) extends Base -case class Dummy1963(x: Int) extends Base -case class Dummy1964(x: Int) extends Base -case class Dummy1965(x: Int) extends Base -case class Dummy1966(x: Int) extends Base -case class Dummy1967(x: Int) extends Base -case class Dummy1968(x: Int) extends Base -case class Dummy1969(x: Int) extends Base -case class Dummy1970(x: Int) extends Base -case class Dummy1971(x: Int) extends Base -case class Dummy1972(x: Int) extends Base -case class Dummy1973(x: Int) extends Base -case class Dummy1974(x: Int) extends Base -case class Dummy1975(x: Int) extends Base -case class Dummy1976(x: Int) extends Base -case class Dummy1977(x: Int) extends Base -case class Dummy1978(x: Int) extends Base -case class Dummy1979(x: Int) extends Base -case class Dummy1980(x: Int) extends Base -case class Dummy1981(x: Int) extends Base -case class Dummy1982(x: Int) extends Base -case class Dummy1983(x: Int) extends Base -case class Dummy1984(x: Int) extends Base -case class Dummy1985(x: Int) extends Base -case class Dummy1986(x: Int) extends Base -case class Dummy1987(x: Int) extends Base -case class Dummy1988(x: Int) extends Base -case class Dummy1989(x: Int) extends Base -case class Dummy1990(x: Int) extends Base -case class Dummy1991(x: Int) extends Base -case class Dummy1992(x: Int) extends Base -case class Dummy1993(x: Int) extends Base -case class Dummy1994(x: Int) extends Base -case class Dummy1995(x: Int) extends Base -case class Dummy1996(x: Int) extends Base -case class Dummy1997(x: Int) extends Base -case class Dummy1998(x: Int) extends Base -case class Dummy1999(x: Int) extends Base -def test(y: Base) = y match { - case Dummy0(p) => p - case Dummy1(p) => p - case Dummy2(p) => p - case Dummy3(p) => p - case Dummy4(p) => p - case Dummy5(p) => p - case Dummy6(p) => p - case Dummy7(p) => p - case Dummy8(p) => p - case Dummy9(p) => p - case Dummy10(p) => p - case Dummy11(p) => p - case Dummy12(p) => p - case Dummy13(p) => p - case Dummy14(p) => p - case Dummy15(p) => p - case Dummy16(p) => p - case Dummy17(p) => p - case Dummy18(p) => p - case Dummy19(p) => p - case Dummy20(p) => p - case Dummy21(p) => p - case Dummy22(p) => p - case Dummy23(p) => p - case Dummy24(p) => p - case Dummy25(p) => p - case Dummy26(p) => p - case Dummy27(p) => p - case Dummy28(p) => p - case Dummy29(p) => p - case Dummy30(p) => p - case Dummy31(p) => p - case Dummy32(p) => p - case Dummy33(p) => p - case Dummy34(p) => p - case Dummy35(p) => p - case Dummy36(p) => p - case Dummy37(p) => p - case Dummy38(p) => p - case Dummy39(p) => p - case Dummy40(p) => p - case Dummy41(p) => p - case Dummy42(p) => p - case Dummy43(p) => p - case Dummy44(p) => p - case Dummy45(p) => p - case Dummy46(p) => p - case Dummy47(p) => p - case Dummy48(p) => p - case Dummy49(p) => p - case Dummy50(p) => p - case Dummy51(p) => p - case Dummy52(p) => p - case Dummy53(p) => p - case Dummy54(p) => p - case Dummy55(p) => p - case Dummy56(p) => p - case Dummy57(p) => p - case Dummy58(p) => p - case Dummy59(p) => p - case Dummy60(p) => p - case Dummy61(p) => p - case Dummy62(p) => p - case Dummy63(p) => p - case Dummy64(p) => p - case Dummy65(p) => p - case Dummy66(p) => p - case Dummy67(p) => p - case Dummy68(p) => p - case Dummy69(p) => p - case Dummy70(p) => p - case Dummy71(p) => p - case Dummy72(p) => p - case Dummy73(p) => p - case Dummy74(p) => p - case Dummy75(p) => p - case Dummy76(p) => p - case Dummy77(p) => p - case Dummy78(p) => p - case Dummy79(p) => p - case Dummy80(p) => p - case Dummy81(p) => p - case Dummy82(p) => p - case Dummy83(p) => p - case Dummy84(p) => p - case Dummy85(p) => p - case Dummy86(p) => p - case Dummy87(p) => p - case Dummy88(p) => p - case Dummy89(p) => p - case Dummy90(p) => p - case Dummy91(p) => p - case Dummy92(p) => p - case Dummy93(p) => p - case Dummy94(p) => p - case Dummy95(p) => p - case Dummy96(p) => p - case Dummy97(p) => p - case Dummy98(p) => p - case Dummy99(p) => p - case Dummy100(p) => p - case Dummy101(p) => p - case Dummy102(p) => p - case Dummy103(p) => p - case Dummy104(p) => p - case Dummy105(p) => p - case Dummy106(p) => p - case Dummy107(p) => p - case Dummy108(p) => p - case Dummy109(p) => p - case Dummy110(p) => p - case Dummy111(p) => p - case Dummy112(p) => p - case Dummy113(p) => p - case Dummy114(p) => p - case Dummy115(p) => p - case Dummy116(p) => p - case Dummy117(p) => p - case Dummy118(p) => p - case Dummy119(p) => p - case Dummy120(p) => p - case Dummy121(p) => p - case Dummy122(p) => p - case Dummy123(p) => p - case Dummy124(p) => p - case Dummy125(p) => p - case Dummy126(p) => p - case Dummy127(p) => p - case Dummy128(p) => p - case Dummy129(p) => p - case Dummy130(p) => p - case Dummy131(p) => p - case Dummy132(p) => p - case Dummy133(p) => p - case Dummy134(p) => p - case Dummy135(p) => p - case Dummy136(p) => p - case Dummy137(p) => p - case Dummy138(p) => p - case Dummy139(p) => p - case Dummy140(p) => p - case Dummy141(p) => p - case Dummy142(p) => p - case Dummy143(p) => p - case Dummy144(p) => p - case Dummy145(p) => p - case Dummy146(p) => p - case Dummy147(p) => p - case Dummy148(p) => p - case Dummy149(p) => p - case Dummy150(p) => p - case Dummy151(p) => p - case Dummy152(p) => p - case Dummy153(p) => p - case Dummy154(p) => p - case Dummy155(p) => p - case Dummy156(p) => p - case Dummy157(p) => p - case Dummy158(p) => p - case Dummy159(p) => p - case Dummy160(p) => p - case Dummy161(p) => p - case Dummy162(p) => p - case Dummy163(p) => p - case Dummy164(p) => p - case Dummy165(p) => p - case Dummy166(p) => p - case Dummy167(p) => p - case Dummy168(p) => p - case Dummy169(p) => p - case Dummy170(p) => p - case Dummy171(p) => p - case Dummy172(p) => p - case Dummy173(p) => p - case Dummy174(p) => p - case Dummy175(p) => p - case Dummy176(p) => p - case Dummy177(p) => p - case Dummy178(p) => p - case Dummy179(p) => p - case Dummy180(p) => p - case Dummy181(p) => p - case Dummy182(p) => p - case Dummy183(p) => p - case Dummy184(p) => p - case Dummy185(p) => p - case Dummy186(p) => p - case Dummy187(p) => p - case Dummy188(p) => p - case Dummy189(p) => p - case Dummy190(p) => p - case Dummy191(p) => p - case Dummy192(p) => p - case Dummy193(p) => p - case Dummy194(p) => p - case Dummy195(p) => p - case Dummy196(p) => p - case Dummy197(p) => p - case Dummy198(p) => p - case Dummy199(p) => p - case Dummy200(p) => p - case Dummy201(p) => p - case Dummy202(p) => p - case Dummy203(p) => p - case Dummy204(p) => p - case Dummy205(p) => p - case Dummy206(p) => p - case Dummy207(p) => p - case Dummy208(p) => p - case Dummy209(p) => p - case Dummy210(p) => p - case Dummy211(p) => p - case Dummy212(p) => p - case Dummy213(p) => p - case Dummy214(p) => p - case Dummy215(p) => p - case Dummy216(p) => p - case Dummy217(p) => p - case Dummy218(p) => p - case Dummy219(p) => p - case Dummy220(p) => p - case Dummy221(p) => p - case Dummy222(p) => p - case Dummy223(p) => p - case Dummy224(p) => p - case Dummy225(p) => p - case Dummy226(p) => p - case Dummy227(p) => p - case Dummy228(p) => p - case Dummy229(p) => p - case Dummy230(p) => p - case Dummy231(p) => p - case Dummy232(p) => p - case Dummy233(p) => p - case Dummy234(p) => p - case Dummy235(p) => p - case Dummy236(p) => p - case Dummy237(p) => p - case Dummy238(p) => p - case Dummy239(p) => p - case Dummy240(p) => p - case Dummy241(p) => p - case Dummy242(p) => p - case Dummy243(p) => p - case Dummy244(p) => p - case Dummy245(p) => p - case Dummy246(p) => p - case Dummy247(p) => p - case Dummy248(p) => p - case Dummy249(p) => p - case Dummy250(p) => p - case Dummy251(p) => p - case Dummy252(p) => p - case Dummy253(p) => p - case Dummy254(p) => p - case Dummy255(p) => p - case Dummy256(p) => p - case Dummy257(p) => p - case Dummy258(p) => p - case Dummy259(p) => p - case Dummy260(p) => p - case Dummy261(p) => p - case Dummy262(p) => p - case Dummy263(p) => p - case Dummy264(p) => p - case Dummy265(p) => p - case Dummy266(p) => p - case Dummy267(p) => p - case Dummy268(p) => p - case Dummy269(p) => p - case Dummy270(p) => p - case Dummy271(p) => p - case Dummy272(p) => p - case Dummy273(p) => p - case Dummy274(p) => p - case Dummy275(p) => p - case Dummy276(p) => p - case Dummy277(p) => p - case Dummy278(p) => p - case Dummy279(p) => p - case Dummy280(p) => p - case Dummy281(p) => p - case Dummy282(p) => p - case Dummy283(p) => p - case Dummy284(p) => p - case Dummy285(p) => p - case Dummy286(p) => p - case Dummy287(p) => p - case Dummy288(p) => p - case Dummy289(p) => p - case Dummy290(p) => p - case Dummy291(p) => p - case Dummy292(p) => p - case Dummy293(p) => p - case Dummy294(p) => p - case Dummy295(p) => p - case Dummy296(p) => p - case Dummy297(p) => p - case Dummy298(p) => p - case Dummy299(p) => p - case Dummy300(p) => p - case Dummy301(p) => p - case Dummy302(p) => p - case Dummy303(p) => p - case Dummy304(p) => p - case Dummy305(p) => p - case Dummy306(p) => p - case Dummy307(p) => p - case Dummy308(p) => p - case Dummy309(p) => p - case Dummy310(p) => p - case Dummy311(p) => p - case Dummy312(p) => p - case Dummy313(p) => p - case Dummy314(p) => p - case Dummy315(p) => p - case Dummy316(p) => p - case Dummy317(p) => p - case Dummy318(p) => p - case Dummy319(p) => p - case Dummy320(p) => p - case Dummy321(p) => p - case Dummy322(p) => p - case Dummy323(p) => p - case Dummy324(p) => p - case Dummy325(p) => p - case Dummy326(p) => p - case Dummy327(p) => p - case Dummy328(p) => p - case Dummy329(p) => p - case Dummy330(p) => p - case Dummy331(p) => p - case Dummy332(p) => p - case Dummy333(p) => p - case Dummy334(p) => p - case Dummy335(p) => p - case Dummy336(p) => p - case Dummy337(p) => p - case Dummy338(p) => p - case Dummy339(p) => p - case Dummy340(p) => p - case Dummy341(p) => p - case Dummy342(p) => p - case Dummy343(p) => p - case Dummy344(p) => p - case Dummy345(p) => p - case Dummy346(p) => p - case Dummy347(p) => p - case Dummy348(p) => p - case Dummy349(p) => p - case Dummy350(p) => p - case Dummy351(p) => p - case Dummy352(p) => p - case Dummy353(p) => p - case Dummy354(p) => p - case Dummy355(p) => p - case Dummy356(p) => p - case Dummy357(p) => p - case Dummy358(p) => p - case Dummy359(p) => p - case Dummy360(p) => p - case Dummy361(p) => p - case Dummy362(p) => p - case Dummy363(p) => p - case Dummy364(p) => p - case Dummy365(p) => p - case Dummy366(p) => p - case Dummy367(p) => p - case Dummy368(p) => p - case Dummy369(p) => p - case Dummy370(p) => p - case Dummy371(p) => p - case Dummy372(p) => p - case Dummy373(p) => p - case Dummy374(p) => p - case Dummy375(p) => p - case Dummy376(p) => p - case Dummy377(p) => p - case Dummy378(p) => p - case Dummy379(p) => p - case Dummy380(p) => p - case Dummy381(p) => p - case Dummy382(p) => p - case Dummy383(p) => p - case Dummy384(p) => p - case Dummy385(p) => p - case Dummy386(p) => p - case Dummy387(p) => p - case Dummy388(p) => p - case Dummy389(p) => p - case Dummy390(p) => p - case Dummy391(p) => p - case Dummy392(p) => p - case Dummy393(p) => p - case Dummy394(p) => p - case Dummy395(p) => p - case Dummy396(p) => p - case Dummy397(p) => p - case Dummy398(p) => p - case Dummy399(p) => p - case Dummy400(p) => p - case Dummy401(p) => p - case Dummy402(p) => p - case Dummy403(p) => p - case Dummy404(p) => p - case Dummy405(p) => p - case Dummy406(p) => p - case Dummy407(p) => p - case Dummy408(p) => p - case Dummy409(p) => p - case Dummy410(p) => p - case Dummy411(p) => p - case Dummy412(p) => p - case Dummy413(p) => p - case Dummy414(p) => p - case Dummy415(p) => p - case Dummy416(p) => p - case Dummy417(p) => p - case Dummy418(p) => p - case Dummy419(p) => p - case Dummy420(p) => p - case Dummy421(p) => p - case Dummy422(p) => p - case Dummy423(p) => p - case Dummy424(p) => p - case Dummy425(p) => p - case Dummy426(p) => p - case Dummy427(p) => p - case Dummy428(p) => p - case Dummy429(p) => p - case Dummy430(p) => p - case Dummy431(p) => p - case Dummy432(p) => p - case Dummy433(p) => p - case Dummy434(p) => p - case Dummy435(p) => p - case Dummy436(p) => p - case Dummy437(p) => p - case Dummy438(p) => p - case Dummy439(p) => p - case Dummy440(p) => p - case Dummy441(p) => p - case Dummy442(p) => p - case Dummy443(p) => p - case Dummy444(p) => p - case Dummy445(p) => p - case Dummy446(p) => p - case Dummy447(p) => p - case Dummy448(p) => p - case Dummy449(p) => p - case Dummy450(p) => p - case Dummy451(p) => p - case Dummy452(p) => p - case Dummy453(p) => p - case Dummy454(p) => p - case Dummy455(p) => p - case Dummy456(p) => p - case Dummy457(p) => p - case Dummy458(p) => p - case Dummy459(p) => p - case Dummy460(p) => p - case Dummy461(p) => p - case Dummy462(p) => p - case Dummy463(p) => p - case Dummy464(p) => p - case Dummy465(p) => p - case Dummy466(p) => p - case Dummy467(p) => p - case Dummy468(p) => p - case Dummy469(p) => p - case Dummy470(p) => p - case Dummy471(p) => p - case Dummy472(p) => p - case Dummy473(p) => p - case Dummy474(p) => p - case Dummy475(p) => p - case Dummy476(p) => p - case Dummy477(p) => p - case Dummy478(p) => p - case Dummy479(p) => p - case Dummy480(p) => p - case Dummy481(p) => p - case Dummy482(p) => p - case Dummy483(p) => p - case Dummy484(p) => p - case Dummy485(p) => p - case Dummy486(p) => p - case Dummy487(p) => p - case Dummy488(p) => p - case Dummy489(p) => p - case Dummy490(p) => p - case Dummy491(p) => p - case Dummy492(p) => p - case Dummy493(p) => p - case Dummy494(p) => p - case Dummy495(p) => p - case Dummy496(p) => p - case Dummy497(p) => p - case Dummy498(p) => p - case Dummy499(p) => p - case Dummy500(p) => p - case Dummy501(p) => p - case Dummy502(p) => p - case Dummy503(p) => p - case Dummy504(p) => p - case Dummy505(p) => p - case Dummy506(p) => p - case Dummy507(p) => p - case Dummy508(p) => p - case Dummy509(p) => p - case Dummy510(p) => p - case Dummy511(p) => p - case Dummy512(p) => p - case Dummy513(p) => p - case Dummy514(p) => p - case Dummy515(p) => p - case Dummy516(p) => p - case Dummy517(p) => p - case Dummy518(p) => p - case Dummy519(p) => p - case Dummy520(p) => p - case Dummy521(p) => p - case Dummy522(p) => p - case Dummy523(p) => p - case Dummy524(p) => p - case Dummy525(p) => p - case Dummy526(p) => p - case Dummy527(p) => p - case Dummy528(p) => p - case Dummy529(p) => p - case Dummy530(p) => p - case Dummy531(p) => p - case Dummy532(p) => p - case Dummy533(p) => p - case Dummy534(p) => p - case Dummy535(p) => p - case Dummy536(p) => p - case Dummy537(p) => p - case Dummy538(p) => p - case Dummy539(p) => p - case Dummy540(p) => p - case Dummy541(p) => p - case Dummy542(p) => p - case Dummy543(p) => p - case Dummy544(p) => p - case Dummy545(p) => p - case Dummy546(p) => p - case Dummy547(p) => p - case Dummy548(p) => p - case Dummy549(p) => p - case Dummy550(p) => p - case Dummy551(p) => p - case Dummy552(p) => p - case Dummy553(p) => p - case Dummy554(p) => p - case Dummy555(p) => p - case Dummy556(p) => p - case Dummy557(p) => p - case Dummy558(p) => p - case Dummy559(p) => p - case Dummy560(p) => p - case Dummy561(p) => p - case Dummy562(p) => p - case Dummy563(p) => p - case Dummy564(p) => p - case Dummy565(p) => p - case Dummy566(p) => p - case Dummy567(p) => p - case Dummy568(p) => p - case Dummy569(p) => p - case Dummy570(p) => p - case Dummy571(p) => p - case Dummy572(p) => p - case Dummy573(p) => p - case Dummy574(p) => p - case Dummy575(p) => p - case Dummy576(p) => p - case Dummy577(p) => p - case Dummy578(p) => p - case Dummy579(p) => p - case Dummy580(p) => p - case Dummy581(p) => p - case Dummy582(p) => p - case Dummy583(p) => p - case Dummy584(p) => p - case Dummy585(p) => p - case Dummy586(p) => p - case Dummy587(p) => p - case Dummy588(p) => p - case Dummy589(p) => p - case Dummy590(p) => p - case Dummy591(p) => p - case Dummy592(p) => p - case Dummy593(p) => p - case Dummy594(p) => p - case Dummy595(p) => p - case Dummy596(p) => p - case Dummy597(p) => p - case Dummy598(p) => p - case Dummy599(p) => p - case Dummy600(p) => p - case Dummy601(p) => p - case Dummy602(p) => p - case Dummy603(p) => p - case Dummy604(p) => p - case Dummy605(p) => p - case Dummy606(p) => p - case Dummy607(p) => p - case Dummy608(p) => p - case Dummy609(p) => p - case Dummy610(p) => p - case Dummy611(p) => p - case Dummy612(p) => p - case Dummy613(p) => p - case Dummy614(p) => p - case Dummy615(p) => p - case Dummy616(p) => p - case Dummy617(p) => p - case Dummy618(p) => p - case Dummy619(p) => p - case Dummy620(p) => p - case Dummy621(p) => p - case Dummy622(p) => p - case Dummy623(p) => p - case Dummy624(p) => p - case Dummy625(p) => p - case Dummy626(p) => p - case Dummy627(p) => p - case Dummy628(p) => p - case Dummy629(p) => p - case Dummy630(p) => p - case Dummy631(p) => p - case Dummy632(p) => p - case Dummy633(p) => p - case Dummy634(p) => p - case Dummy635(p) => p - case Dummy636(p) => p - case Dummy637(p) => p - case Dummy638(p) => p - case Dummy639(p) => p - case Dummy640(p) => p - case Dummy641(p) => p - case Dummy642(p) => p - case Dummy643(p) => p - case Dummy644(p) => p - case Dummy645(p) => p - case Dummy646(p) => p - case Dummy647(p) => p - case Dummy648(p) => p - case Dummy649(p) => p - case Dummy650(p) => p - case Dummy651(p) => p - case Dummy652(p) => p - case Dummy653(p) => p - case Dummy654(p) => p - case Dummy655(p) => p - case Dummy656(p) => p - case Dummy657(p) => p - case Dummy658(p) => p - case Dummy659(p) => p - case Dummy660(p) => p - case Dummy661(p) => p - case Dummy662(p) => p - case Dummy663(p) => p - case Dummy664(p) => p - case Dummy665(p) => p - case Dummy666(p) => p - case Dummy667(p) => p - case Dummy668(p) => p - case Dummy669(p) => p - case Dummy670(p) => p - case Dummy671(p) => p - case Dummy672(p) => p - case Dummy673(p) => p - case Dummy674(p) => p - case Dummy675(p) => p - case Dummy676(p) => p - case Dummy677(p) => p - case Dummy678(p) => p - case Dummy679(p) => p - case Dummy680(p) => p - case Dummy681(p) => p - case Dummy682(p) => p - case Dummy683(p) => p - case Dummy684(p) => p - case Dummy685(p) => p - case Dummy686(p) => p - case Dummy687(p) => p - case Dummy688(p) => p - case Dummy689(p) => p - case Dummy690(p) => p - case Dummy691(p) => p - case Dummy692(p) => p - case Dummy693(p) => p - case Dummy694(p) => p - case Dummy695(p) => p - case Dummy696(p) => p - case Dummy697(p) => p - case Dummy698(p) => p - case Dummy699(p) => p - case Dummy700(p) => p - case Dummy701(p) => p - case Dummy702(p) => p - case Dummy703(p) => p - case Dummy704(p) => p - case Dummy705(p) => p - case Dummy706(p) => p - case Dummy707(p) => p - case Dummy708(p) => p - case Dummy709(p) => p - case Dummy710(p) => p - case Dummy711(p) => p - case Dummy712(p) => p - case Dummy713(p) => p - case Dummy714(p) => p - case Dummy715(p) => p - case Dummy716(p) => p - case Dummy717(p) => p - case Dummy718(p) => p - case Dummy719(p) => p - case Dummy720(p) => p - case Dummy721(p) => p - case Dummy722(p) => p - case Dummy723(p) => p - case Dummy724(p) => p - case Dummy725(p) => p - case Dummy726(p) => p - case Dummy727(p) => p - case Dummy728(p) => p - case Dummy729(p) => p - case Dummy730(p) => p - case Dummy731(p) => p - case Dummy732(p) => p - case Dummy733(p) => p - case Dummy734(p) => p - case Dummy735(p) => p - case Dummy736(p) => p - case Dummy737(p) => p - case Dummy738(p) => p - case Dummy739(p) => p - case Dummy740(p) => p - case Dummy741(p) => p - case Dummy742(p) => p - case Dummy743(p) => p - case Dummy744(p) => p - case Dummy745(p) => p - case Dummy746(p) => p - case Dummy747(p) => p - case Dummy748(p) => p - case Dummy749(p) => p - case Dummy750(p) => p - case Dummy751(p) => p - case Dummy752(p) => p - case Dummy753(p) => p - case Dummy754(p) => p - case Dummy755(p) => p - case Dummy756(p) => p - case Dummy757(p) => p - case Dummy758(p) => p - case Dummy759(p) => p - case Dummy760(p) => p - case Dummy761(p) => p - case Dummy762(p) => p - case Dummy763(p) => p - case Dummy764(p) => p - case Dummy765(p) => p - case Dummy766(p) => p - case Dummy767(p) => p - case Dummy768(p) => p - case Dummy769(p) => p - case Dummy770(p) => p - case Dummy771(p) => p - case Dummy772(p) => p - case Dummy773(p) => p - case Dummy774(p) => p - case Dummy775(p) => p - case Dummy776(p) => p - case Dummy777(p) => p - case Dummy778(p) => p - case Dummy779(p) => p - case Dummy780(p) => p - case Dummy781(p) => p - case Dummy782(p) => p - case Dummy783(p) => p - case Dummy784(p) => p - case Dummy785(p) => p - case Dummy786(p) => p - case Dummy787(p) => p - case Dummy788(p) => p - case Dummy789(p) => p - case Dummy790(p) => p - case Dummy791(p) => p - case Dummy792(p) => p - case Dummy793(p) => p - case Dummy794(p) => p - case Dummy795(p) => p - case Dummy796(p) => p - case Dummy797(p) => p - case Dummy798(p) => p - case Dummy799(p) => p - case Dummy800(p) => p - case Dummy801(p) => p - case Dummy802(p) => p - case Dummy803(p) => p - case Dummy804(p) => p - case Dummy805(p) => p - case Dummy806(p) => p - case Dummy807(p) => p - case Dummy808(p) => p - case Dummy809(p) => p - case Dummy810(p) => p - case Dummy811(p) => p - case Dummy812(p) => p - case Dummy813(p) => p - case Dummy814(p) => p - case Dummy815(p) => p - case Dummy816(p) => p - case Dummy817(p) => p - case Dummy818(p) => p - case Dummy819(p) => p - case Dummy820(p) => p - case Dummy821(p) => p - case Dummy822(p) => p - case Dummy823(p) => p - case Dummy824(p) => p - case Dummy825(p) => p - case Dummy826(p) => p - case Dummy827(p) => p - case Dummy828(p) => p - case Dummy829(p) => p - case Dummy830(p) => p - case Dummy831(p) => p - case Dummy832(p) => p - case Dummy833(p) => p - case Dummy834(p) => p - case Dummy835(p) => p - case Dummy836(p) => p - case Dummy837(p) => p - case Dummy838(p) => p - case Dummy839(p) => p - case Dummy840(p) => p - case Dummy841(p) => p - case Dummy842(p) => p - case Dummy843(p) => p - case Dummy844(p) => p - case Dummy845(p) => p - case Dummy846(p) => p - case Dummy847(p) => p - case Dummy848(p) => p - case Dummy849(p) => p - case Dummy850(p) => p - case Dummy851(p) => p - case Dummy852(p) => p - case Dummy853(p) => p - case Dummy854(p) => p - case Dummy855(p) => p - case Dummy856(p) => p - case Dummy857(p) => p - case Dummy858(p) => p - case Dummy859(p) => p - case Dummy860(p) => p - case Dummy861(p) => p - case Dummy862(p) => p - case Dummy863(p) => p - case Dummy864(p) => p - case Dummy865(p) => p - case Dummy866(p) => p - case Dummy867(p) => p - case Dummy868(p) => p - case Dummy869(p) => p - case Dummy870(p) => p - case Dummy871(p) => p - case Dummy872(p) => p - case Dummy873(p) => p - case Dummy874(p) => p - case Dummy875(p) => p - case Dummy876(p) => p - case Dummy877(p) => p - case Dummy878(p) => p - case Dummy879(p) => p - case Dummy880(p) => p - case Dummy881(p) => p - case Dummy882(p) => p - case Dummy883(p) => p - case Dummy884(p) => p - case Dummy885(p) => p - case Dummy886(p) => p - case Dummy887(p) => p - case Dummy888(p) => p - case Dummy889(p) => p - case Dummy890(p) => p - case Dummy891(p) => p - case Dummy892(p) => p - case Dummy893(p) => p - case Dummy894(p) => p - case Dummy895(p) => p - case Dummy896(p) => p - case Dummy897(p) => p - case Dummy898(p) => p - case Dummy899(p) => p - case Dummy900(p) => p - case Dummy901(p) => p - case Dummy902(p) => p - case Dummy903(p) => p - case Dummy904(p) => p - case Dummy905(p) => p - case Dummy906(p) => p - case Dummy907(p) => p - case Dummy908(p) => p - case Dummy909(p) => p - case Dummy910(p) => p - case Dummy911(p) => p - case Dummy912(p) => p - case Dummy913(p) => p - case Dummy914(p) => p - case Dummy915(p) => p - case Dummy916(p) => p - case Dummy917(p) => p - case Dummy918(p) => p - case Dummy919(p) => p - case Dummy920(p) => p - case Dummy921(p) => p - case Dummy922(p) => p - case Dummy923(p) => p - case Dummy924(p) => p - case Dummy925(p) => p - case Dummy926(p) => p - case Dummy927(p) => p - case Dummy928(p) => p - case Dummy929(p) => p - case Dummy930(p) => p - case Dummy931(p) => p - case Dummy932(p) => p - case Dummy933(p) => p - case Dummy934(p) => p - case Dummy935(p) => p - case Dummy936(p) => p - case Dummy937(p) => p - case Dummy938(p) => p - case Dummy939(p) => p - case Dummy940(p) => p - case Dummy941(p) => p - case Dummy942(p) => p - case Dummy943(p) => p - case Dummy944(p) => p - case Dummy945(p) => p - case Dummy946(p) => p - case Dummy947(p) => p - case Dummy948(p) => p - case Dummy949(p) => p - case Dummy950(p) => p - case Dummy951(p) => p - case Dummy952(p) => p - case Dummy953(p) => p - case Dummy954(p) => p - case Dummy955(p) => p - case Dummy956(p) => p - case Dummy957(p) => p - case Dummy958(p) => p - case Dummy959(p) => p - case Dummy960(p) => p - case Dummy961(p) => p - case Dummy962(p) => p - case Dummy963(p) => p - case Dummy964(p) => p - case Dummy965(p) => p - case Dummy966(p) => p - case Dummy967(p) => p - case Dummy968(p) => p - case Dummy969(p) => p - case Dummy970(p) => p - case Dummy971(p) => p - case Dummy972(p) => p - case Dummy973(p) => p - case Dummy974(p) => p - case Dummy975(p) => p - case Dummy976(p) => p - case Dummy977(p) => p - case Dummy978(p) => p - case Dummy979(p) => p - case Dummy980(p) => p - case Dummy981(p) => p - case Dummy982(p) => p - case Dummy983(p) => p - case Dummy984(p) => p - case Dummy985(p) => p - case Dummy986(p) => p - case Dummy987(p) => p - case Dummy988(p) => p - case Dummy989(p) => p - case Dummy990(p) => p - case Dummy991(p) => p - case Dummy992(p) => p - case Dummy993(p) => p - case Dummy994(p) => p - case Dummy995(p) => p - case Dummy996(p) => p - case Dummy997(p) => p - case Dummy998(p) => p - case Dummy999(p) => p - case Dummy1000(p) => p - case Dummy1001(p) => p - case Dummy1002(p) => p - case Dummy1003(p) => p - case Dummy1004(p) => p - case Dummy1005(p) => p - case Dummy1006(p) => p - case Dummy1007(p) => p - case Dummy1008(p) => p - case Dummy1009(p) => p - case Dummy1010(p) => p - case Dummy1011(p) => p - case Dummy1012(p) => p - case Dummy1013(p) => p - case Dummy1014(p) => p - case Dummy1015(p) => p - case Dummy1016(p) => p - case Dummy1017(p) => p - case Dummy1018(p) => p - case Dummy1019(p) => p - case Dummy1020(p) => p - case Dummy1021(p) => p - case Dummy1022(p) => p - case Dummy1023(p) => p - case Dummy1024(p) => p - case Dummy1025(p) => p - case Dummy1026(p) => p - case Dummy1027(p) => p - case Dummy1028(p) => p - case Dummy1029(p) => p - case Dummy1030(p) => p - case Dummy1031(p) => p - case Dummy1032(p) => p - case Dummy1033(p) => p - case Dummy1034(p) => p - case Dummy1035(p) => p - case Dummy1036(p) => p - case Dummy1037(p) => p - case Dummy1038(p) => p - case Dummy1039(p) => p - case Dummy1040(p) => p - case Dummy1041(p) => p - case Dummy1042(p) => p - case Dummy1043(p) => p - case Dummy1044(p) => p - case Dummy1045(p) => p - case Dummy1046(p) => p - case Dummy1047(p) => p - case Dummy1048(p) => p - case Dummy1049(p) => p - case Dummy1050(p) => p - case Dummy1051(p) => p - case Dummy1052(p) => p - case Dummy1053(p) => p - case Dummy1054(p) => p - case Dummy1055(p) => p - case Dummy1056(p) => p - case Dummy1057(p) => p - case Dummy1058(p) => p - case Dummy1059(p) => p - case Dummy1060(p) => p - case Dummy1061(p) => p - case Dummy1062(p) => p - case Dummy1063(p) => p - case Dummy1064(p) => p - case Dummy1065(p) => p - case Dummy1066(p) => p - case Dummy1067(p) => p - case Dummy1068(p) => p - case Dummy1069(p) => p - case Dummy1070(p) => p - case Dummy1071(p) => p - case Dummy1072(p) => p - case Dummy1073(p) => p - case Dummy1074(p) => p - case Dummy1075(p) => p - case Dummy1076(p) => p - case Dummy1077(p) => p - case Dummy1078(p) => p - case Dummy1079(p) => p - case Dummy1080(p) => p - case Dummy1081(p) => p - case Dummy1082(p) => p - case Dummy1083(p) => p - case Dummy1084(p) => p - case Dummy1085(p) => p - case Dummy1086(p) => p - case Dummy1087(p) => p - case Dummy1088(p) => p - case Dummy1089(p) => p - case Dummy1090(p) => p - case Dummy1091(p) => p - case Dummy1092(p) => p - case Dummy1093(p) => p - case Dummy1094(p) => p - case Dummy1095(p) => p - case Dummy1096(p) => p - case Dummy1097(p) => p - case Dummy1098(p) => p - case Dummy1099(p) => p - case Dummy1100(p) => p - case Dummy1101(p) => p - case Dummy1102(p) => p - case Dummy1103(p) => p - case Dummy1104(p) => p - case Dummy1105(p) => p - case Dummy1106(p) => p - case Dummy1107(p) => p - case Dummy1108(p) => p - case Dummy1109(p) => p - case Dummy1110(p) => p - case Dummy1111(p) => p - case Dummy1112(p) => p - case Dummy1113(p) => p - case Dummy1114(p) => p - case Dummy1115(p) => p - case Dummy1116(p) => p - case Dummy1117(p) => p - case Dummy1118(p) => p - case Dummy1119(p) => p - case Dummy1120(p) => p - case Dummy1121(p) => p - case Dummy1122(p) => p - case Dummy1123(p) => p - case Dummy1124(p) => p - case Dummy1125(p) => p - case Dummy1126(p) => p - case Dummy1127(p) => p - case Dummy1128(p) => p - case Dummy1129(p) => p - case Dummy1130(p) => p - case Dummy1131(p) => p - case Dummy1132(p) => p - case Dummy1133(p) => p - case Dummy1134(p) => p - case Dummy1135(p) => p - case Dummy1136(p) => p - case Dummy1137(p) => p - case Dummy1138(p) => p - case Dummy1139(p) => p - case Dummy1140(p) => p - case Dummy1141(p) => p - case Dummy1142(p) => p - case Dummy1143(p) => p - case Dummy1144(p) => p - case Dummy1145(p) => p - case Dummy1146(p) => p - case Dummy1147(p) => p - case Dummy1148(p) => p - case Dummy1149(p) => p - case Dummy1150(p) => p - case Dummy1151(p) => p - case Dummy1152(p) => p - case Dummy1153(p) => p - case Dummy1154(p) => p - case Dummy1155(p) => p - case Dummy1156(p) => p - case Dummy1157(p) => p - case Dummy1158(p) => p - case Dummy1159(p) => p - case Dummy1160(p) => p - case Dummy1161(p) => p - case Dummy1162(p) => p - case Dummy1163(p) => p - case Dummy1164(p) => p - case Dummy1165(p) => p - case Dummy1166(p) => p - case Dummy1167(p) => p - case Dummy1168(p) => p - case Dummy1169(p) => p - case Dummy1170(p) => p - case Dummy1171(p) => p - case Dummy1172(p) => p - case Dummy1173(p) => p - case Dummy1174(p) => p - case Dummy1175(p) => p - case Dummy1176(p) => p - case Dummy1177(p) => p - case Dummy1178(p) => p - case Dummy1179(p) => p - case Dummy1180(p) => p - case Dummy1181(p) => p - case Dummy1182(p) => p - case Dummy1183(p) => p - case Dummy1184(p) => p - case Dummy1185(p) => p - case Dummy1186(p) => p - case Dummy1187(p) => p - case Dummy1188(p) => p - case Dummy1189(p) => p - case Dummy1190(p) => p - case Dummy1191(p) => p - case Dummy1192(p) => p - case Dummy1193(p) => p - case Dummy1194(p) => p - case Dummy1195(p) => p - case Dummy1196(p) => p - case Dummy1197(p) => p - case Dummy1198(p) => p - case Dummy1199(p) => p - case Dummy1200(p) => p - case Dummy1201(p) => p - case Dummy1202(p) => p - case Dummy1203(p) => p - case Dummy1204(p) => p - case Dummy1205(p) => p - case Dummy1206(p) => p - case Dummy1207(p) => p - case Dummy1208(p) => p - case Dummy1209(p) => p - case Dummy1210(p) => p - case Dummy1211(p) => p - case Dummy1212(p) => p - case Dummy1213(p) => p - case Dummy1214(p) => p - case Dummy1215(p) => p - case Dummy1216(p) => p - case Dummy1217(p) => p - case Dummy1218(p) => p - case Dummy1219(p) => p - case Dummy1220(p) => p - case Dummy1221(p) => p - case Dummy1222(p) => p - case Dummy1223(p) => p - case Dummy1224(p) => p - case Dummy1225(p) => p - case Dummy1226(p) => p - case Dummy1227(p) => p - case Dummy1228(p) => p - case Dummy1229(p) => p - case Dummy1230(p) => p - case Dummy1231(p) => p - case Dummy1232(p) => p - case Dummy1233(p) => p - case Dummy1234(p) => p - case Dummy1235(p) => p - case Dummy1236(p) => p - case Dummy1237(p) => p - case Dummy1238(p) => p - case Dummy1239(p) => p - case Dummy1240(p) => p - case Dummy1241(p) => p - case Dummy1242(p) => p - case Dummy1243(p) => p - case Dummy1244(p) => p - case Dummy1245(p) => p - case Dummy1246(p) => p - case Dummy1247(p) => p - case Dummy1248(p) => p - case Dummy1249(p) => p - case Dummy1250(p) => p - case Dummy1251(p) => p - case Dummy1252(p) => p - case Dummy1253(p) => p - case Dummy1254(p) => p - case Dummy1255(p) => p - case Dummy1256(p) => p - case Dummy1257(p) => p - case Dummy1258(p) => p - case Dummy1259(p) => p - case Dummy1260(p) => p - case Dummy1261(p) => p - case Dummy1262(p) => p - case Dummy1263(p) => p - case Dummy1264(p) => p - case Dummy1265(p) => p - case Dummy1266(p) => p - case Dummy1267(p) => p - case Dummy1268(p) => p - case Dummy1269(p) => p - case Dummy1270(p) => p - case Dummy1271(p) => p - case Dummy1272(p) => p - case Dummy1273(p) => p - case Dummy1274(p) => p - case Dummy1275(p) => p - case Dummy1276(p) => p - case Dummy1277(p) => p - case Dummy1278(p) => p - case Dummy1279(p) => p - case Dummy1280(p) => p - case Dummy1281(p) => p - case Dummy1282(p) => p - case Dummy1283(p) => p - case Dummy1284(p) => p - case Dummy1285(p) => p - case Dummy1286(p) => p - case Dummy1287(p) => p - case Dummy1288(p) => p - case Dummy1289(p) => p - case Dummy1290(p) => p - case Dummy1291(p) => p - case Dummy1292(p) => p - case Dummy1293(p) => p - case Dummy1294(p) => p - case Dummy1295(p) => p - case Dummy1296(p) => p - case Dummy1297(p) => p - case Dummy1298(p) => p - case Dummy1299(p) => p - case Dummy1300(p) => p - case Dummy1301(p) => p - case Dummy1302(p) => p - case Dummy1303(p) => p - case Dummy1304(p) => p - case Dummy1305(p) => p - case Dummy1306(p) => p - case Dummy1307(p) => p - case Dummy1308(p) => p - case Dummy1309(p) => p - case Dummy1310(p) => p - case Dummy1311(p) => p - case Dummy1312(p) => p - case Dummy1313(p) => p - case Dummy1314(p) => p - case Dummy1315(p) => p - case Dummy1316(p) => p - case Dummy1317(p) => p - case Dummy1318(p) => p - case Dummy1319(p) => p - case Dummy1320(p) => p - case Dummy1321(p) => p - case Dummy1322(p) => p - case Dummy1323(p) => p - case Dummy1324(p) => p - case Dummy1325(p) => p - case Dummy1326(p) => p - case Dummy1327(p) => p - case Dummy1328(p) => p - case Dummy1329(p) => p - case Dummy1330(p) => p - case Dummy1331(p) => p - case Dummy1332(p) => p - case Dummy1333(p) => p - case Dummy1334(p) => p - case Dummy1335(p) => p - case Dummy1336(p) => p - case Dummy1337(p) => p - case Dummy1338(p) => p - case Dummy1339(p) => p - case Dummy1340(p) => p - case Dummy1341(p) => p - case Dummy1342(p) => p - case Dummy1343(p) => p - case Dummy1344(p) => p - case Dummy1345(p) => p - case Dummy1346(p) => p - case Dummy1347(p) => p - case Dummy1348(p) => p - case Dummy1349(p) => p - case Dummy1350(p) => p - case Dummy1351(p) => p - case Dummy1352(p) => p - case Dummy1353(p) => p - case Dummy1354(p) => p - case Dummy1355(p) => p - case Dummy1356(p) => p - case Dummy1357(p) => p - case Dummy1358(p) => p - case Dummy1359(p) => p - case Dummy1360(p) => p - case Dummy1361(p) => p - case Dummy1362(p) => p - case Dummy1363(p) => p - case Dummy1364(p) => p - case Dummy1365(p) => p - case Dummy1366(p) => p - case Dummy1367(p) => p - case Dummy1368(p) => p - case Dummy1369(p) => p - case Dummy1370(p) => p - case Dummy1371(p) => p - case Dummy1372(p) => p - case Dummy1373(p) => p - case Dummy1374(p) => p - case Dummy1375(p) => p - case Dummy1376(p) => p - case Dummy1377(p) => p - case Dummy1378(p) => p - case Dummy1379(p) => p - case Dummy1380(p) => p - case Dummy1381(p) => p - case Dummy1382(p) => p - case Dummy1383(p) => p - case Dummy1384(p) => p - case Dummy1385(p) => p - case Dummy1386(p) => p - case Dummy1387(p) => p - case Dummy1388(p) => p - case Dummy1389(p) => p - case Dummy1390(p) => p - case Dummy1391(p) => p - case Dummy1392(p) => p - case Dummy1393(p) => p - case Dummy1394(p) => p - case Dummy1395(p) => p - case Dummy1396(p) => p - case Dummy1397(p) => p - case Dummy1398(p) => p - case Dummy1399(p) => p - case Dummy1400(p) => p - case Dummy1401(p) => p - case Dummy1402(p) => p - case Dummy1403(p) => p - case Dummy1404(p) => p - case Dummy1405(p) => p - case Dummy1406(p) => p - case Dummy1407(p) => p - case Dummy1408(p) => p - case Dummy1409(p) => p - case Dummy1410(p) => p - case Dummy1411(p) => p - case Dummy1412(p) => p - case Dummy1413(p) => p - case Dummy1414(p) => p - case Dummy1415(p) => p - case Dummy1416(p) => p - case Dummy1417(p) => p - case Dummy1418(p) => p - case Dummy1419(p) => p - case Dummy1420(p) => p - case Dummy1421(p) => p - case Dummy1422(p) => p - case Dummy1423(p) => p - case Dummy1424(p) => p - case Dummy1425(p) => p - case Dummy1426(p) => p - case Dummy1427(p) => p - case Dummy1428(p) => p - case Dummy1429(p) => p - case Dummy1430(p) => p - case Dummy1431(p) => p - case Dummy1432(p) => p - case Dummy1433(p) => p - case Dummy1434(p) => p - case Dummy1435(p) => p - case Dummy1436(p) => p - case Dummy1437(p) => p - case Dummy1438(p) => p - case Dummy1439(p) => p - case Dummy1440(p) => p - case Dummy1441(p) => p - case Dummy1442(p) => p - case Dummy1443(p) => p - case Dummy1444(p) => p - case Dummy1445(p) => p - case Dummy1446(p) => p - case Dummy1447(p) => p - case Dummy1448(p) => p - case Dummy1449(p) => p - case Dummy1450(p) => p - case Dummy1451(p) => p - case Dummy1452(p) => p - case Dummy1453(p) => p - case Dummy1454(p) => p - case Dummy1455(p) => p - case Dummy1456(p) => p - case Dummy1457(p) => p - case Dummy1458(p) => p - case Dummy1459(p) => p - case Dummy1460(p) => p - case Dummy1461(p) => p - case Dummy1462(p) => p - case Dummy1463(p) => p - case Dummy1464(p) => p - case Dummy1465(p) => p - case Dummy1466(p) => p - case Dummy1467(p) => p - case Dummy1468(p) => p - case Dummy1469(p) => p - case Dummy1470(p) => p - case Dummy1471(p) => p - case Dummy1472(p) => p - case Dummy1473(p) => p - case Dummy1474(p) => p - case Dummy1475(p) => p - case Dummy1476(p) => p - case Dummy1477(p) => p - case Dummy1478(p) => p - case Dummy1479(p) => p - case Dummy1480(p) => p - case Dummy1481(p) => p - case Dummy1482(p) => p - case Dummy1483(p) => p - case Dummy1484(p) => p - case Dummy1485(p) => p - case Dummy1486(p) => p - case Dummy1487(p) => p - case Dummy1488(p) => p - case Dummy1489(p) => p - case Dummy1490(p) => p - case Dummy1491(p) => p - case Dummy1492(p) => p - case Dummy1493(p) => p - case Dummy1494(p) => p - case Dummy1495(p) => p - case Dummy1496(p) => p - case Dummy1497(p) => p - case Dummy1498(p) => p - case Dummy1499(p) => p - case Dummy1500(p) => p - case Dummy1501(p) => p - case Dummy1502(p) => p - case Dummy1503(p) => p - case Dummy1504(p) => p - case Dummy1505(p) => p - case Dummy1506(p) => p - case Dummy1507(p) => p - case Dummy1508(p) => p - case Dummy1509(p) => p - case Dummy1510(p) => p - case Dummy1511(p) => p - case Dummy1512(p) => p - case Dummy1513(p) => p - case Dummy1514(p) => p - case Dummy1515(p) => p - case Dummy1516(p) => p - case Dummy1517(p) => p - case Dummy1518(p) => p - case Dummy1519(p) => p - case Dummy1520(p) => p - case Dummy1521(p) => p - case Dummy1522(p) => p - case Dummy1523(p) => p - case Dummy1524(p) => p - case Dummy1525(p) => p - case Dummy1526(p) => p - case Dummy1527(p) => p - case Dummy1528(p) => p - case Dummy1529(p) => p - case Dummy1530(p) => p - case Dummy1531(p) => p - case Dummy1532(p) => p - case Dummy1533(p) => p - case Dummy1534(p) => p - case Dummy1535(p) => p - case Dummy1536(p) => p - case Dummy1537(p) => p - case Dummy1538(p) => p - case Dummy1539(p) => p - case Dummy1540(p) => p - case Dummy1541(p) => p - case Dummy1542(p) => p - case Dummy1543(p) => p - case Dummy1544(p) => p - case Dummy1545(p) => p - case Dummy1546(p) => p - case Dummy1547(p) => p - case Dummy1548(p) => p - case Dummy1549(p) => p - case Dummy1550(p) => p - case Dummy1551(p) => p - case Dummy1552(p) => p - case Dummy1553(p) => p - case Dummy1554(p) => p - case Dummy1555(p) => p - case Dummy1556(p) => p - case Dummy1557(p) => p - case Dummy1558(p) => p - case Dummy1559(p) => p - case Dummy1560(p) => p - case Dummy1561(p) => p - case Dummy1562(p) => p - case Dummy1563(p) => p - case Dummy1564(p) => p - case Dummy1565(p) => p - case Dummy1566(p) => p - case Dummy1567(p) => p - case Dummy1568(p) => p - case Dummy1569(p) => p - case Dummy1570(p) => p - case Dummy1571(p) => p - case Dummy1572(p) => p - case Dummy1573(p) => p - case Dummy1574(p) => p - case Dummy1575(p) => p - case Dummy1576(p) => p - case Dummy1577(p) => p - case Dummy1578(p) => p - case Dummy1579(p) => p - case Dummy1580(p) => p - case Dummy1581(p) => p - case Dummy1582(p) => p - case Dummy1583(p) => p - case Dummy1584(p) => p - case Dummy1585(p) => p - case Dummy1586(p) => p - case Dummy1587(p) => p - case Dummy1588(p) => p - case Dummy1589(p) => p - case Dummy1590(p) => p - case Dummy1591(p) => p - case Dummy1592(p) => p - case Dummy1593(p) => p - case Dummy1594(p) => p - case Dummy1595(p) => p - case Dummy1596(p) => p - case Dummy1597(p) => p - case Dummy1598(p) => p - case Dummy1599(p) => p - case Dummy1600(p) => p - case Dummy1601(p) => p - case Dummy1602(p) => p - case Dummy1603(p) => p - case Dummy1604(p) => p - case Dummy1605(p) => p - case Dummy1606(p) => p - case Dummy1607(p) => p - case Dummy1608(p) => p - case Dummy1609(p) => p - case Dummy1610(p) => p - case Dummy1611(p) => p - case Dummy1612(p) => p - case Dummy1613(p) => p - case Dummy1614(p) => p - case Dummy1615(p) => p - case Dummy1616(p) => p - case Dummy1617(p) => p - case Dummy1618(p) => p - case Dummy1619(p) => p - case Dummy1620(p) => p - case Dummy1621(p) => p - case Dummy1622(p) => p - case Dummy1623(p) => p - case Dummy1624(p) => p - case Dummy1625(p) => p - case Dummy1626(p) => p - case Dummy1627(p) => p - case Dummy1628(p) => p - case Dummy1629(p) => p - case Dummy1630(p) => p - case Dummy1631(p) => p - case Dummy1632(p) => p - case Dummy1633(p) => p - case Dummy1634(p) => p - case Dummy1635(p) => p - case Dummy1636(p) => p - case Dummy1637(p) => p - case Dummy1638(p) => p - case Dummy1639(p) => p - case Dummy1640(p) => p - case Dummy1641(p) => p - case Dummy1642(p) => p - case Dummy1643(p) => p - case Dummy1644(p) => p - case Dummy1645(p) => p - case Dummy1646(p) => p - case Dummy1647(p) => p - case Dummy1648(p) => p - case Dummy1649(p) => p - case Dummy1650(p) => p - case Dummy1651(p) => p - case Dummy1652(p) => p - case Dummy1653(p) => p - case Dummy1654(p) => p - case Dummy1655(p) => p - case Dummy1656(p) => p - case Dummy1657(p) => p - case Dummy1658(p) => p - case Dummy1659(p) => p - case Dummy1660(p) => p - case Dummy1661(p) => p - case Dummy1662(p) => p - case Dummy1663(p) => p - case Dummy1664(p) => p - case Dummy1665(p) => p - case Dummy1666(p) => p - case Dummy1667(p) => p - case Dummy1668(p) => p - case Dummy1669(p) => p - case Dummy1670(p) => p - case Dummy1671(p) => p - case Dummy1672(p) => p - case Dummy1673(p) => p - case Dummy1674(p) => p - case Dummy1675(p) => p - case Dummy1676(p) => p - case Dummy1677(p) => p - case Dummy1678(p) => p - case Dummy1679(p) => p - case Dummy1680(p) => p - case Dummy1681(p) => p - case Dummy1682(p) => p - case Dummy1683(p) => p - case Dummy1684(p) => p - case Dummy1685(p) => p - case Dummy1686(p) => p - case Dummy1687(p) => p - case Dummy1688(p) => p - case Dummy1689(p) => p - case Dummy1690(p) => p - case Dummy1691(p) => p - case Dummy1692(p) => p - case Dummy1693(p) => p - case Dummy1694(p) => p - case Dummy1695(p) => p - case Dummy1696(p) => p - case Dummy1697(p) => p - case Dummy1698(p) => p - case Dummy1699(p) => p - case Dummy1700(p) => p - case Dummy1701(p) => p - case Dummy1702(p) => p - case Dummy1703(p) => p - case Dummy1704(p) => p - case Dummy1705(p) => p - case Dummy1706(p) => p - case Dummy1707(p) => p - case Dummy1708(p) => p - case Dummy1709(p) => p - case Dummy1710(p) => p - case Dummy1711(p) => p - case Dummy1712(p) => p - case Dummy1713(p) => p - case Dummy1714(p) => p - case Dummy1715(p) => p - case Dummy1716(p) => p - case Dummy1717(p) => p - case Dummy1718(p) => p - case Dummy1719(p) => p - case Dummy1720(p) => p - case Dummy1721(p) => p - case Dummy1722(p) => p - case Dummy1723(p) => p - case Dummy1724(p) => p - case Dummy1725(p) => p - case Dummy1726(p) => p - case Dummy1727(p) => p - case Dummy1728(p) => p - case Dummy1729(p) => p - case Dummy1730(p) => p - case Dummy1731(p) => p - case Dummy1732(p) => p - case Dummy1733(p) => p - case Dummy1734(p) => p - case Dummy1735(p) => p - case Dummy1736(p) => p - case Dummy1737(p) => p - case Dummy1738(p) => p - case Dummy1739(p) => p - case Dummy1740(p) => p - case Dummy1741(p) => p - case Dummy1742(p) => p - case Dummy1743(p) => p - case Dummy1744(p) => p - case Dummy1745(p) => p - case Dummy1746(p) => p - case Dummy1747(p) => p - case Dummy1748(p) => p - case Dummy1749(p) => p - case Dummy1750(p) => p - case Dummy1751(p) => p - case Dummy1752(p) => p - case Dummy1753(p) => p - case Dummy1754(p) => p - case Dummy1755(p) => p - case Dummy1756(p) => p - case Dummy1757(p) => p - case Dummy1758(p) => p - case Dummy1759(p) => p - case Dummy1760(p) => p - case Dummy1761(p) => p - case Dummy1762(p) => p - case Dummy1763(p) => p - case Dummy1764(p) => p - case Dummy1765(p) => p - case Dummy1766(p) => p - case Dummy1767(p) => p - case Dummy1768(p) => p - case Dummy1769(p) => p - case Dummy1770(p) => p - case Dummy1771(p) => p - case Dummy1772(p) => p - case Dummy1773(p) => p - case Dummy1774(p) => p - case Dummy1775(p) => p - case Dummy1776(p) => p - case Dummy1777(p) => p - case Dummy1778(p) => p - case Dummy1779(p) => p - case Dummy1780(p) => p - case Dummy1781(p) => p - case Dummy1782(p) => p - case Dummy1783(p) => p - case Dummy1784(p) => p - case Dummy1785(p) => p - case Dummy1786(p) => p - case Dummy1787(p) => p - case Dummy1788(p) => p - case Dummy1789(p) => p - case Dummy1790(p) => p - case Dummy1791(p) => p - case Dummy1792(p) => p - case Dummy1793(p) => p - case Dummy1794(p) => p - case Dummy1795(p) => p - case Dummy1796(p) => p - case Dummy1797(p) => p - case Dummy1798(p) => p - case Dummy1799(p) => p - case Dummy1800(p) => p - case Dummy1801(p) => p - case Dummy1802(p) => p - case Dummy1803(p) => p - case Dummy1804(p) => p - case Dummy1805(p) => p - case Dummy1806(p) => p - case Dummy1807(p) => p - case Dummy1808(p) => p - case Dummy1809(p) => p - case Dummy1810(p) => p - case Dummy1811(p) => p - case Dummy1812(p) => p - case Dummy1813(p) => p - case Dummy1814(p) => p - case Dummy1815(p) => p - case Dummy1816(p) => p - case Dummy1817(p) => p - case Dummy1818(p) => p - case Dummy1819(p) => p - case Dummy1820(p) => p - case Dummy1821(p) => p - case Dummy1822(p) => p - case Dummy1823(p) => p - case Dummy1824(p) => p - case Dummy1825(p) => p - case Dummy1826(p) => p - case Dummy1827(p) => p - case Dummy1828(p) => p - case Dummy1829(p) => p - case Dummy1830(p) => p - case Dummy1831(p) => p - case Dummy1832(p) => p - case Dummy1833(p) => p - case Dummy1834(p) => p - case Dummy1835(p) => p - case Dummy1836(p) => p - case Dummy1837(p) => p - case Dummy1838(p) => p - case Dummy1839(p) => p - case Dummy1840(p) => p - case Dummy1841(p) => p - case Dummy1842(p) => p - case Dummy1843(p) => p - case Dummy1844(p) => p - case Dummy1845(p) => p - case Dummy1846(p) => p - case Dummy1847(p) => p - case Dummy1848(p) => p - case Dummy1849(p) => p - case Dummy1850(p) => p - case Dummy1851(p) => p - case Dummy1852(p) => p - case Dummy1853(p) => p - case Dummy1854(p) => p - case Dummy1855(p) => p - case Dummy1856(p) => p - case Dummy1857(p) => p - case Dummy1858(p) => p - case Dummy1859(p) => p - case Dummy1860(p) => p - case Dummy1861(p) => p - case Dummy1862(p) => p - case Dummy1863(p) => p - case Dummy1864(p) => p - case Dummy1865(p) => p - case Dummy1866(p) => p - case Dummy1867(p) => p - case Dummy1868(p) => p - case Dummy1869(p) => p - case Dummy1870(p) => p - case Dummy1871(p) => p - case Dummy1872(p) => p - case Dummy1873(p) => p - case Dummy1874(p) => p - case Dummy1875(p) => p - case Dummy1876(p) => p - case Dummy1877(p) => p - case Dummy1878(p) => p - case Dummy1879(p) => p - case Dummy1880(p) => p - case Dummy1881(p) => p - case Dummy1882(p) => p - case Dummy1883(p) => p - case Dummy1884(p) => p - case Dummy1885(p) => p - case Dummy1886(p) => p - case Dummy1887(p) => p - case Dummy1888(p) => p - case Dummy1889(p) => p - case Dummy1890(p) => p - case Dummy1891(p) => p - case Dummy1892(p) => p - case Dummy1893(p) => p - case Dummy1894(p) => p - case Dummy1895(p) => p - case Dummy1896(p) => p - case Dummy1897(p) => p - case Dummy1898(p) => p - case Dummy1899(p) => p - case Dummy1900(p) => p - case Dummy1901(p) => p - case Dummy1902(p) => p - case Dummy1903(p) => p - case Dummy1904(p) => p - case Dummy1905(p) => p - case Dummy1906(p) => p - case Dummy1907(p) => p - case Dummy1908(p) => p - case Dummy1909(p) => p - case Dummy1910(p) => p - case Dummy1911(p) => p - case Dummy1912(p) => p - case Dummy1913(p) => p - case Dummy1914(p) => p - case Dummy1915(p) => p - case Dummy1916(p) => p - case Dummy1917(p) => p - case Dummy1918(p) => p - case Dummy1919(p) => p - case Dummy1920(p) => p - case Dummy1921(p) => p - case Dummy1922(p) => p - case Dummy1923(p) => p - case Dummy1924(p) => p - case Dummy1925(p) => p - case Dummy1926(p) => p - case Dummy1927(p) => p - case Dummy1928(p) => p - case Dummy1929(p) => p - case Dummy1930(p) => p - case Dummy1931(p) => p - case Dummy1932(p) => p - case Dummy1933(p) => p - case Dummy1934(p) => p - case Dummy1935(p) => p - case Dummy1936(p) => p - case Dummy1937(p) => p - case Dummy1938(p) => p - case Dummy1939(p) => p - case Dummy1940(p) => p - case Dummy1941(p) => p - case Dummy1942(p) => p - case Dummy1943(p) => p - case Dummy1944(p) => p - case Dummy1945(p) => p - case Dummy1946(p) => p - case Dummy1947(p) => p - case Dummy1948(p) => p - case Dummy1949(p) => p - case Dummy1950(p) => p - case Dummy1951(p) => p - case Dummy1952(p) => p - case Dummy1953(p) => p - case Dummy1954(p) => p - case Dummy1955(p) => p - case Dummy1956(p) => p - case Dummy1957(p) => p - case Dummy1958(p) => p - case Dummy1959(p) => p - case Dummy1960(p) => p - case Dummy1961(p) => p - case Dummy1962(p) => p - case Dummy1963(p) => p - case Dummy1964(p) => p - case Dummy1965(p) => p - case Dummy1966(p) => p - case Dummy1967(p) => p - case Dummy1968(p) => p - case Dummy1969(p) => p - case Dummy1970(p) => p - case Dummy1971(p) => p - case Dummy1972(p) => p - case Dummy1973(p) => p - case Dummy1974(p) => p - case Dummy1975(p) => p - case Dummy1976(p) => p - case Dummy1977(p) => p - case Dummy1978(p) => p - case Dummy1979(p) => p - case Dummy1980(p) => p - case Dummy1981(p) => p - case Dummy1982(p) => p - case Dummy1983(p) => p - case Dummy1984(p) => p - case Dummy1985(p) => p - case Dummy1986(p) => p - case Dummy1987(p) => p - case Dummy1988(p) => p - case Dummy1989(p) => p - case Dummy1990(p) => p - case Dummy1991(p) => p - case Dummy1992(p) => p - case Dummy1993(p) => p - case Dummy1994(p) => p - case Dummy1995(p) => p - case Dummy1996(p) => p - case Dummy1997(p) => p - case Dummy1998(p) => p - case Dummy1999(p) => p -} -} diff --git a/test/benchmarks/bench b/test/benchmarks/bench deleted file mode 100755 index 3aa7e7468c..0000000000 --- a/test/benchmarks/bench +++ /dev/null @@ -1,63 +0,0 @@ - -################################################################# -# -# A simple script used to rebuild benchmarks using fsc and then run them. -# If you need to rebuild, use: -# -# ./bench <arguments> -# -# Omitting <arguments> will print more information. -# If you don't want to rebuild: -# -# ./bench skip <same-args-as-above> -# -################################################################# - - -TOP_DIR=$PWD -# build/pack for ant, target/pack for sbt -SCALA_BUILD_DIR=../../target/pack -SRC_DIR=src/ -TARGET_DIR=target -CLASS_DIR=$TARGET_DIR/classes - -FSC=$SCALA_BUILD_DIR/bin/fsc -SCALA_LIBS_PATH=$SCALA_BUILD_DIR/lib -CLASSPATH=$SCALA_LIBS_PATH/scala-library.jar:lib/jsr166_and_extra.jar - -ARTIFACT=benchmarks.jar -ARTIFACT_PATH=$TARGET_DIR/$ARTIFACT - - -if [ "$1" != "skip" ] -then - # fetch source file list - find $SRC_DIR -name *.scala -print > source.list - - # recompile with fsc - $FSC -cp $CLASSPATH -d $CLASS_DIR @source.list - - # copy files - cd $SRC_DIR - cp -r * ../$CLASS_DIR - cd .. - - # jar it up - rm $ARTIFACT_PATH - cd $CLASS_DIR - jar cf $ARTIFACT . - mv $ARTIFACT $TOP_DIR/$ARTIFACT_PATH - cd $TOP_DIR -fi - -# run a benchmark -RUNCOMMAND="java -Xms256m -Xmx512m -server -cp $CLASSPATH:$ARTIFACT_PATH scala.collection.parallel.Benchmarking " -if [ "$1" != skip ] -then - $RUNCOMMAND "$@" -else - $RUNCOMMAND $2 $3 $4 $5 $6 $7 $8 -fi - - - diff --git a/test/benchmarks/lib/jsr166_and_extra.jar.desired.sha1 b/test/benchmarks/lib/jsr166_and_extra.jar.desired.sha1 deleted file mode 100644 index c879571eae..0000000000 --- a/test/benchmarks/lib/jsr166_and_extra.jar.desired.sha1 +++ /dev/null @@ -1 +0,0 @@ -0392ecdeb306263c471ce51fa368223388b82b61 ?jsr166_and_extra.jar diff --git a/test/benchmarks/source.list b/test/benchmarks/source.list deleted file mode 100644 index c5d5f7f8fe..0000000000 --- a/test/benchmarks/source.list +++ /dev/null @@ -1,79 +0,0 @@ -src/scala/collection/parallel/Benchmarking.scala -src/scala/collection/parallel/benchmarks/parallel_view/SeqViewBenches.scala -src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala -src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTableSets.scala -src/scala/collection/parallel/benchmarks/arrays/ObjectAccess.scala -src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala -src/scala/collection/parallel/benchmarks/arrays/Resetting.scala -src/scala/collection/parallel/benchmarks/arrays/Arrays.scala -src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala -src/scala/collection/parallel/benchmarks/arrays/Dummy.scala -src/scala/collection/parallel/benchmarks/parallel_array/FlatMapLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/FilterLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/CountHeavy.scala -src/scala/collection/parallel/benchmarks/parallel_array/PartitionLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/SliceFew.scala -src/scala/collection/parallel/benchmarks/parallel_array/SplitHalf.scala -src/scala/collection/parallel/benchmarks/parallel_array/PadToDouble.scala -src/scala/collection/parallel/benchmarks/parallel_array/IntersectHalf.scala -src/scala/collection/parallel/benchmarks/parallel_array/ForallLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/SumLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/MinLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/CountList.scala -src/scala/collection/parallel/benchmarks/parallel_array/PatchHalf.scala -src/scala/collection/parallel/benchmarks/parallel_array/GroupBy.scala -src/scala/collection/parallel/benchmarks/parallel_array/DiffHalf.scala -src/scala/collection/parallel/benchmarks/parallel_array/TakeMany.scala -src/scala/collection/parallel/benchmarks/parallel_array/PartialMapLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/ScanLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/Reverse.scala -src/scala/collection/parallel/benchmarks/parallel_array/SpanLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/PlusPlus.scala -src/scala/collection/parallel/benchmarks/parallel_array/ReduceNew.scala -src/scala/collection/parallel/benchmarks/parallel_array/Resettable.scala -src/scala/collection/parallel/benchmarks/parallel_array/ReducePrime.scala -src/scala/collection/parallel/benchmarks/parallel_array/DropMany.scala -src/scala/collection/parallel/benchmarks/parallel_array/ReduceList.scala -src/scala/collection/parallel/benchmarks/parallel_array/ForeachLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/ScanMedium.scala -src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala -src/scala/collection/parallel/benchmarks/parallel_array/SliceMedium.scala -src/scala/collection/parallel/benchmarks/parallel_array/ReverseMap.scala -src/scala/collection/parallel/benchmarks/parallel_array/Companion.scala -src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/IndexWhere.scala -src/scala/collection/parallel/benchmarks/parallel_array/LastIndexWhere.scala -src/scala/collection/parallel/benchmarks/parallel_array/ReduceLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/CopyToArray.scala -src/scala/collection/parallel/benchmarks/parallel_array/MapLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/RemoveDuplicates.scala -src/scala/collection/parallel/benchmarks/parallel_array/SliceMany.scala -src/scala/collection/parallel/benchmarks/parallel_array/TakeWhileLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/SegmentLength.scala -src/scala/collection/parallel/benchmarks/parallel_array/ForeachHeavy.scala -src/scala/collection/parallel/benchmarks/parallel_array/FindLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/ForallQuickStop.scala -src/scala/collection/parallel/benchmarks/parallel_array/ForallStop80k.scala -src/scala/collection/parallel/benchmarks/parallel_array/SameElementsLong.scala -src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala -src/scala/collection/parallel/benchmarks/parallel_array/ForallHeavy.scala -src/scala/collection/parallel/benchmarks/parallel_array/ExistsLight.scala -src/scala/collection/parallel/benchmarks/parallel_array/ReduceHeavy.scala -src/scala/collection/parallel/benchmarks/parallel_array/Corresponds.scala -src/scala/collection/parallel/benchmarks/generic/Operators.scala -src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala -src/scala/collection/parallel/benchmarks/generic/Dummy.scala -src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala -src/scala/collection/parallel/benchmarks/misc/Dictionary.scala -src/scala/collection/parallel/benchmarks/misc/Loader.scala -src/scala/collection/parallel/benchmarks/misc/Coder.scala -src/scala/collection/parallel/benchmarks/Bench.scala -src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala -src/scala/collection/parallel/benchmarks/hashtries/Combine.scala -src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala -src/scala/collection/parallel/benchmarks/hashtries/Iterate.scala -src/scala/collection/parallel/benchmarks/hashtries/Construct.scala -src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala -src/scala/collection/parallel/benchmarks/hashtries/Lookup.scala -src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala diff --git a/test/benchmarks/src/scala/collection/immutable/range-bench.scala b/test/benchmarks/src/scala/collection/immutable/range-bench.scala deleted file mode 100644 index e167ff04e8..0000000000 --- a/test/benchmarks/src/scala/collection/immutable/range-bench.scala +++ /dev/null @@ -1,61 +0,0 @@ -package scala.collection.immutable -package benchmarks - -object RangeTest { - // not inlined any more, needs investigation - // - // class XXS { - // private val array = Array.range(0, 100) - // def tst = { var sum = 0; for (i <- 0 until array.length) sum += array(i); sum } - // } - - var x: Int = 0 - - def foreachSum(max: Int): Int = { - var sum = 0 - 1 to max foreach (sum += _) - sum - } - def whileSum(max: Int) = { - var sum = 0 - var num = 1 - while (num <= max) { - sum += num - num += 1 - } - sum - } - - def show(max: Int, foreachNanos: Long, whileNanos: Long) { - val winner = if (foreachNanos < whileNanos) "foreachSum" else "whileSum" - val ratio = if (foreachNanos < whileNanos) foreachNanos.toDouble / whileNanos else whileNanos.toDouble / foreachNanos - println("1 to %d:, %12s wins, %.3f: foreach %.3f while %.3f".format( - max, winner, ratio, - foreachNanos.toDouble / 1000000L, - whileNanos.toDouble / 1000000L) - ) - } - - def run(max: Int) = { - val foreachFirst = util.Random.nextBoolean - val t1 = System.nanoTime - x = if (foreachFirst) foreachSum(max) else whileSum(max) - val t2 = System.nanoTime - x = if (foreachFirst) whileSum(max) else foreachSum(max) - val t3 = System.nanoTime - - val foreachNanos = if (foreachFirst) t2 - t1 else t3 - t2 - val whileNanos = if (foreachFirst) t3 - t2 else t2 - t1 - show(max, foreachNanos, whileNanos) - } - - def main(args: Array[String]): Unit = { - var max = if (args.isEmpty) 100 else args(0).toInt - while (max > 0) { - run(max) - run(max) - run(max) - max += (max / 7) - } - } -} diff --git a/test/benchmarks/src/scala/collection/mutable/hashtable-bench.scala b/test/benchmarks/src/scala/collection/mutable/hashtable-bench.scala deleted file mode 100644 index c01e7cb46e..0000000000 --- a/test/benchmarks/src/scala/collection/mutable/hashtable-bench.scala +++ /dev/null @@ -1,61 +0,0 @@ -import scala.collection.mutable.HashMap - -object Test { - var dummy: Long = 0L - var _foreach: Long = 0L - var _iterator: Long = 0L - - def numbers: Seq[Int] = 1 to 1000000 - val map: HashMap[Int, Int] = HashMap(numbers zip numbers: _*) - - @inline final def timed(body: => Unit): Long = { - val start = System.nanoTime - body - System.nanoTime - start - } - - def go(xs: Iterable[Int], reps: Int) = { - _foreach = 0L - _iterator = 0L - - 0 until reps foreach { _ => - _foreach += timed(xs foreach (dummy += _)) - _iterator += timed(xs.iterator foreach (dummy += _)) - } - - " foreach avg " + (_foreach / reps) + "\n iterator avg " + (_iterator / reps) + "\n" - } - - def go2(xs: collection.Map[Int, Int], reps: Int) = { - _foreach = 0L - _iterator = 0L - - def incDummy(nums: (Int, Int)) = { - dummy += nums._1 - dummy -= nums._2 - } - - 0 until reps foreach { _ => - _foreach += timed(xs foreach incDummy) - _iterator += timed(xs.iterator foreach incDummy) - } - - " foreach avg " + (_foreach / reps) + "\n iterator avg " + (_iterator / reps) + "\n" - } - - def main(args: Array[String]): Unit = { - println("map.keys:") - go(map.keys, 10) // warm - println(go(map.keys, 10)) - - println("map.values:") - go(map.values, 10) // warm - println(go(map.values, 10)) - - println("map:") - go2(map, 10) // warm - println(go2(map, 10)) - - println("// pay me no mind ... " + dummy) - } -} diff --git a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala deleted file mode 100644 index bd75764636..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala +++ /dev/null @@ -1,223 +0,0 @@ -package scala.collection.parallel - - -import scala.collection.mutable.LinkedHashSet - -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) - register(parallel_array.ReduceList) - register(parallel_array.ReducePrime) - register(parallel_array.ReduceHeavy) - register(parallel_array.CountLight) - register(parallel_array.CountList) - register(parallel_array.CountHeavy) - register(parallel_array.ForeachLight) - register(parallel_array.ForeachHeavy) - register(parallel_array.SumLight) - register(parallel_array.MinLight) - register(parallel_array.MapLight) - register(parallel_array.FilterLight) - register(parallel_array.PartitionLight) - register(parallel_array.PartialMapLight) - register(parallel_array.FlatMapLight) - register(parallel_array.PlusPlus) - register(parallel_array.ForallLight) - register(parallel_array.ForallQuickStop) - register(parallel_array.ForallStop80k) - register(parallel_array.ForallHeavy) - register(parallel_array.ExistsLight) - register(parallel_array.FindLight) - register(parallel_array.TakeMany) - register(parallel_array.DropMany) - register(parallel_array.SliceMany) - register(parallel_array.SliceMedium) - register(parallel_array.SliceFew) - register(parallel_array.SplitHalf) - register(parallel_array.TakeWhileLight) - register(parallel_array.SpanLight) - register(parallel_array.CopyToArray) - register(parallel_array.SegmentLength) - register(parallel_array.IndexWhere) - register(parallel_array.LastIndexWhere) - register(parallel_array.Reverse) - register(parallel_array.ReverseMap) - register(parallel_array.SameElementsLong) - register(parallel_array.Corresponds) - register(parallel_array.DiffHalf) - register(parallel_array.IntersectHalf) - register(parallel_array.RemoveDuplicates) - register(parallel_array.PatchHalf) - register(parallel_array.PadToDouble) - register(parallel_array.AggregateLight) - register(parallel_array.ScanLight) - register(parallel_array.ScanMedium) - register(parallel_array.GroupByLight) - register(parallel_array.MatrixMultiplication) - - // parallel views - register(parallel_view.DummyViewBenchList.Reduce) - register(parallel_view.DummyViewBenchList.MediumReduce) - register(parallel_view.DummyViewBenchList.ModifyThenReduce) - register(parallel_view.DummyViewBenchList.ModifyThenForce) - register(parallel_view.DummyViewBenchList.Iteration) - register(parallel_view.DummyViewBenchList.IterationS) - register(parallel_view.DummyViewBenchList.IterationM) - 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) - register(parallel_range.RangeBenches.ForeachAdd) - register(parallel_range.RangeBenches.ForeachAddCollatz) - register(parallel_range.RangeBenches.ForeachModify) - register(parallel_range.RangeBenches.ForeachModifyMedium) - 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) - register(hashtries.Construct) - 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) - register(hashtables.RefParHashTableBenches.Foreach) - register(hashtables.RefParHashTableBenches.ForeachSet) - register(hashtables.RefParHashTableBenches.Map) - register(hashtables.RefParHashTableBenches.Map2) - register(hashtables.RefParHashTableBenches.HeavyMap) - register(hashtables.RefParHashTableBenches.Filter) - register(hashtables.RefParHashTableBenches.FlatMap) - register(hashtables.RefParHashTableBenches.FlatMap2) - - // parallel hash table set benchmarks - register(hashtables.RefParHashTableSetBenches.Reduce) - register(hashtables.RefParHashTableSetBenches.Reduce2) - register(hashtables.RefParHashTableSetBenches.Foreach) - register(hashtables.RefParHashTableSetBenches.ForeachSet) - register(hashtables.RefParHashTableSetBenches.Map) - register(hashtables.RefParHashTableSetBenches.Map2) - register(hashtables.RefParHashTableSetBenches.HeavyMap) - register(hashtables.RefParHashTableSetBenches.Filter) - register(hashtables.RefParHashTableSetBenches.FlatMap) - - // general examples - register(misc.Coder) - register(misc.Loader) -} - - -/** - * 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") - println(" Example: ParArray -all 50000 par") - println - println("General synthax: <collection> <benchmark> <size> <type> <parallelism-level>") - println(" <collection> - name of the collection to test, `-all` runs benchmarks for all collections") - println(" <benchmark> - name of the specific benchmark, `-all` runs all benchmarks for the chosen collections") - println(" <size> - the size (number of elements) of the collection, or `-default` for default size per benchmark") - println(" <type> - `seq` for benchmarking sequential version of the functionality") - println(" `par` for benchmarking parallel version of the functionality") - println(" `<something-else>` for running comparison benchmarks") - 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 { - case "-list" => // lists all benchmarks - for (bc <- benchcreators) println(bc.fullname) - 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 { - case ("-all", "-all") => true - case ("-all", bn) if (benchname != "-all") => bn == comp.benchName - case (cn, "-all") if (collname != "-all") => cn == comp.collectionName - case (cn, bn) => cn == comp.collectionName && bn == comp.benchName - } - }).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) - 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 deleted file mode 100644 index c20bbaeef1..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/Bench.scala +++ /dev/null @@ -1,126 +0,0 @@ -package scala.collection.parallel.benchmarks - - -import scala.collection._ -import scala.testing.Benchmark - - - -trait BenchCompanion { - def benchName: String - def collectionName: String - def fullname = collectionName + "." + benchName - def defaultSize = 100000 - def comparisons = List[String]() - def apply(sz: Int, parallelism: Int, what: String): Bench -} - - -/** - * An interface for all benchmark classes. - * A benchmark runs some functionality a prespecified number of times. - */ -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. - * @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 + - "`, need `seq`, `par` or one of: " + comparisons.mkString("`", "`, `", "`")) - } - } - - /** - * Prints results of the benchmark. May be overridden 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 deleted file mode 100644 index 39232122a9..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Arrays.scala +++ /dev/null @@ -1,63 +0,0 @@ -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] - case x: Array[Long] => x(idx).asInstanceOf[T] - case x: Array[Float] => x(idx).asInstanceOf[T] - case x: Array[Char] => x(idx).asInstanceOf[T] - case x: Array[Byte] => x(idx).asInstanceOf[T] - case x: Array[Short] => x(idx).asInstanceOf[T] - case x: Array[Boolean] => x(idx).asInstanceOf[T] - 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] - case x: Array[Long] => x(idx).asInstanceOf[Any] - case x: Array[Float] => x(idx).asInstanceOf[Any] - case x: Array[Char] => x(idx).asInstanceOf[Any] - case x: Array[Byte] => x(idx).asInstanceOf[Any] - case x: Array[Short] => x(idx).asInstanceOf[Any] - case x: Array[Boolean] => x(idx).asInstanceOf[Any] - case x: Array[Unit] => x(idx).asInstanceOf[Any] - case null => throw new NullPointerException - } - -} - - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Dummy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Dummy.scala deleted file mode 100644 index 56af7b9d85..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Dummy.scala +++ /dev/null @@ -1,22 +0,0 @@ -package scala.collection.parallel.benchmarks.arrays - - - - -case class Dummy(in: Int) { - def op = {} -} - -object Dummy { - def dummyOp(a: Int) = { if (a < 0) -1 } - def dummyOp(d: Dummy) = { if (d.in < 0) d.op } -} - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala deleted file mode 100644 index 81f0e4da03..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/IntAccess.scala +++ /dev/null @@ -1,68 +0,0 @@ -package scala.collection.parallel.benchmarks.arrays - - -import scala.collection.parallel.benchmarks._ - - - -object IntAccess extends BenchCompanion { - def collectionName = "array"; - def benchName = "access-int"; - def apply(sz: Int, p: Int, what: String) = new IntAccess(sz, p, what) - override def comparisons = List("any", "cast", "manif", "unknown") - override def defaultSize = 100000 -} - - -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) { - val d = anyarray(i).asInstanceOf[Int] - i += 1 - } - } - - def runcast = { - var i = 0 - while (i < sz) { - val d = Arrays.apply(castarray, i).asInstanceOf[Int] - i += 1 - } - } - - def runmanif = { - var i = 0 - while (i < sz) { - val d = manifarray(i) - if (op(d)) i += 1 - 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 deleted file mode 100644 index 29251f3719..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/ObjectAccess.scala +++ /dev/null @@ -1,75 +0,0 @@ -package scala.collection.parallel.benchmarks.arrays - - -import scala.collection.parallel.benchmarks._ - - - -object ObjectAccess extends BenchCompanion { - def collectionName = "array"; - def benchName = "access-obj"; - def apply(sz: Int, p: Int, what: String) = new ObjectAccess(sz, p, what) - override def comparisons = List("any", "cast", "gencast", "manif", "unknown") - override def defaultSize = 100000 -} - - -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) { - val d = anyarray(i).asInstanceOf[Dummy] - Dummy.dummyOp(d) - i += 1 - } - } - - def runcast = { - var i = 0 - while (i < sz) { - val d = Arrays.apply(castarray, i).asInstanceOf[Dummy] - i += 1 - } - } - - def rungenericcast = { - var i = 0 - while (i < sz) { - val d = Arrays.genericApply(gencastarray, i) - i += 1 - } - } - - def runmanif = { - var i = 0 - while (i < sz) { - val d = manifarray(i) - if (d.in < 0) i += 1 - 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 deleted file mode 100644 index 22d2107f62..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Resetting.scala +++ /dev/null @@ -1,39 +0,0 @@ -package scala.collection.parallel.benchmarks.arrays - - -import scala.collection.parallel.benchmarks._ - - -abstract class Resetting[T: ClassTag](elemcreate: Int => T, sz: Int, p: Int, what: String) -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) - for (i <- 0 until sz) anyarray(i) = elemcreate(i) - case "cast" => - val arr = new Array[T](sz) - for (i <- 0 until sz) arr(i) = elemcreate(i) - castarray = arr - case "gencast" => - gencastarray = new Array[T](sz) - for (i <- 0 until sz) gencastarray(i) = elemcreate(i) - case "manif" => - manifarray = new Array[T](sz) - for (i <- 0 until sz) manifarray(i) = elemcreate(i) - case "unknown" => - manifarray = new Array[T](sz) - for (i <- 0 until sz) manifarray(i) = elemcreate(i) - case _ => - } -} diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala deleted file mode 100644 index 46a28ae111..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/UnknownManif.scala +++ /dev/null @@ -1,38 +0,0 @@ -package scala.collection.parallel.benchmarks.arrays - - - - -trait UnknownManif[T] { - def manifarray: Array[T] - def size: Int - - def rununknown { - val arr = manifarray - val sz = size - var i = 0 - while (i < sz) { - val d = arr(i) - op(d) - i += 1 - } - } - - def op(d: Any) {} -} - - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala deleted file mode 100644 index 3b5308f8c2..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Dummy.scala +++ /dev/null @@ -1,83 +0,0 @@ -package scala.collection.parallel.benchmarks.generic - - - - -class Dummy(val in: Int) { - var num = in - override def toString = in.toString - override def hashCode = in - def dummy = num + in - def one = "1".length -} - - -object DummyOperators extends Operators[Dummy] { - val foreachFun = (a: Dummy) => { - a - () - } - val reducer = (a: Dummy, b: Dummy) => { - var i = 0 - if (a.in > b.in) { - a.num = a.in + b.in + i - a - } else { - b.num = a.in + b.in + i - b - } - } - private def rec(a: Int, b: Int): Int = { - val result = if (b == 0) a else { - rec(b, a - b * (a / b)) - } - result + 1000 - } - val mediumreducer = (a: Dummy, b: Dummy) => { - var i = 0 - var sum = a.num + b.num - b.num = rec(a.num, b.num) - b - } - val filterer = (a: Dummy) => { - a.in % 2 == 0 - } - val mapper = (a: Dummy) => { - a.num = a.dummy + a.num + a.in + a.one - a - } - override val mapper2 = (a: Dummy) => { - val x = 1 - new Dummy(a.in * -2 + x) - } - val heavymapper = (a: Dummy) => { - var i = -100 - while (i < 0) { - if (a.in < i) a.num += 1 - i += 1 - } - a - } - val flatmapper = (a: Dummy) => { - List(a, a, a, a, a) - } - val taker = (a: Dummy) => { - a.in >= 0 - } - val eachFun: Dummy => Unit = (d: Dummy) => { - d.dummy - } - override val eachPairFun: ((Dummy, Dummy)) => Unit = p => { - p._1.dummy - p._2.dummy - } - override def sequence(sz: Int): Seq[Dummy] = { - val pa = new collection.parallel.mutable.ParArray[Dummy](sz) - for (i <- 0 until sz) pa(i) = new Dummy(i) - pa - } -} - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala deleted file mode 100644 index 539e3f6972..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/Operators.scala +++ /dev/null @@ -1,64 +0,0 @@ -package scala.collection.parallel.benchmarks.generic - - - - - - -trait Operators[T] { - - def foreachFun: T => Unit - def reducer: (T, T) => T - def mediumreducer: (T, T) => T - def filterer: T => Boolean - def mapper: T => T - def mapper2: T => T = error("unsupported") - def heavymapper: T => T - def flatmapper: T => Seq[T] - def taker: T => Boolean - 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) => { - val result = if (b == 0) a else { - mediumreducer.apply(b, a - b * (a / b)) - } - result + 1000 - } - val filterer: Int => Boolean = _ % 2 == 0 - val mapper: Int => Int = _ * 2 - val heavymapper: Int => Int = (n: Int) => { - var i = -10 - var sum = 0 - while (i < 0) { - sum += -i - i += 1 - } - n + sum - } - val flatmapper: Int => Seq[Int] = (n: Int) => { - List(n, n, n, n, n) - } - val taker: Int => Boolean = _ < 10000 - 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 deleted file mode 100644 index c39c384927..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/generic/ParallelBenches.scala +++ /dev/null @@ -1,362 +0,0 @@ -package scala.collection.parallel -package benchmarks -package generic - - - -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() - def runseq = this.seqcoll.reduceLeft(operators.reducer) - 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() - def runseq = this.seqcoll.reduceLeft(operators.mediumreducer) - 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() - def runseq = this.seqcoll.map(operators.mapper) - 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() - def runseq = this.seqcoll.filter(operators.filterer) - 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 - } - -} - - - -/** Benchmarks for sequence views. - */ -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 _) - def runseq = this.seqcoll.foreach(operators.eachFun) - def runpar = this.parcoll.pforeach(operators.eachFun) - def runseqview = { - this.seqview.foreach(operators.eachFun) - } - 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 _) - def runseq = this.seqcoll.slice(0, size / 2).foreach(operators.eachFun) - def runpar = this.parcoll.slice(0, size / 2).pforeach(operators.eachFun) - def runseqview = this.seqview.slice(0, size / 2).foreach(operators.eachFun) - def companion = IterationS - } - - object IterationM extends SeqBenchCompanion { - override def defaultSize = 100000 - 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 _) - def runseq = this.seqcoll.map(operators.mapper).foreach(operators.eachFun) - def runpar = this.parcoll.map(operators.mapper).pforeach(operators.eachFun) - 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) - val sqappended = appended.toSeq - def comparisonMap = collection.Map("seqview" -> runseqview _) - def runseq = { - val withapp = this.seqcoll.++(sqappended) - withapp.foreach(operators.eachFun) - } - def runpar = this.parcoll.++(appended).pforeach(operators.eachFun) - 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) - def comparisonMap = collection.Map("seqview" -> runseqview _) - def runseq = { - val withzip = this.seqcoll.zip(zipped) - withzip.foreach(operators.eachPairFun) - } - def runpar = this.parcoll.zip(zipped).pforeach(operators.eachPairFun) - 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) - val sqpatch = patch.toSeq - def comparisonMap = collection.Map("seqview" -> runseqview _) - def runseq = { - val withpatch = this.seqcollAsSeq.patch(size / 4, sqpatch, size / 2) - withpatch.foreach(operators.eachFun) - } - def runpar = this.parcoll.patch(size / 4, patch, size / 2).pforeach(operators.eachFun) - 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() - def runseq = this.seqcoll.reduceLeft(operators.reducer) - 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() - def runseq = this.seqcoll.reduceLeft(operators.mediumreducer) - 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) - def comparisonMap = collection.Map() - def runseq = { - val modified = (seqcoll ++ toadd).drop(size).map(operators.mapper).++(toadd).take(size) - modified.reduceLeft(operators.reducer) - } - def runpar = { - val modified = (parcoll ++ toadd).drop(size).map(operators.mapper).++(toadd).take(size) - modified.reduce(operators.reducer) - } - 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) - def comparisonMap = collection.Map() - def runseq = (seqcoll ++ toadd).drop(size).map(operators.mapper).++(toadd).take(size) - def runpar = { - val r: ParSeqView[T, ParSeq[T], Seq[T]] = (parcoll ++ toadd).drop(size).map(operators.mapper).++(toadd).take(size) - r.force - } - 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 deleted file mode 100644 index 17f0315103..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTableSets.scala +++ /dev/null @@ -1,144 +0,0 @@ -package scala.collection.parallel.benchmarks.hashtables - - - - -import scala.collection.parallel.benchmarks.generic.StandardParIterableBenches -import scala.collection.parallel.benchmarks.generic.Dummy -import scala.collection.parallel.benchmarks.generic.DummyOperators -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 - def comparisonMap = collection.Map() - def runseq = { - val r = this.seqcoll.asInstanceOf[collection.mutable.HashSet[T]].map(operators.mapper2) - result = r.size - } - def runpar = { - result = this.parcoll.map(operators.mapper2).size - } - def companion = Map2 - override def repetitionsPerRun = 50 - override def printResults { - 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 - def comparisonMap = collection.Map() - def runseq = { - val r = this.seqcoll.asInstanceOf[collection.mutable.HashSet[T]].map(operators.heavymapper) - result = r.size - } - def runpar = { - result = this.parcoll.map(operators.heavymapper).size - } - 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() - def runseq = this.seqcoll.reduceLeft(operators.mediumreducer) - 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() - def runseq = this.seqcoll.foreach(operators.foreachFun) - def runpar = this.parcoll.pforeach(operators.foreachFun) - def companion = Foreach - } - -} - - - - - -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) - def comparisonMap = collection.Map() - 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) - forkJoinPool.setParallelism(p) - 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 deleted file mode 100644 index 79d038bf3d..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtables/ParallelHashTables.scala +++ /dev/null @@ -1,232 +0,0 @@ -package scala.collection.parallel.benchmarks.hashtables - - - - -import scala.collection.parallel.benchmarks.generic.StandardParIterableBenches -import scala.collection.parallel.benchmarks.generic.Dummy -import scala.collection.parallel.benchmarks.generic.Operators -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 - def comparisonMap = collection.Map("jhashtable" -> runjhashtable _) - def runseq = { - val r = this.seqcoll.asInstanceOf[collection.mutable.HashMap[K, V]].map(operators.mapper2) - result = r.size - } - def runpar = { - result = this.parcoll.map(operators.mapper2).size - } - def runjhashtable = { - val jumap = new java.util.HashMap[K, V]() - val it = this.seqcoll.iterator - val f = operators.mapper2 - while (it.hasNext) { - val p = f(it.next) - jumap.put(p._1, p._2) - } - result = jumap.size - } - override def reset = runWhat match { - case "jhashtable" => this.seqcoll = createSequential(size, parallelism) - case _ => super.reset - } - def companion = Map2 - override def repetitionsPerRun = 50 - override def printResults { - 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() - override def repetitionsPerRun = 25 - 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 - def comparisonMap = collection.Map() - def runseq = { - val r = this.seqcoll.asInstanceOf[collection.mutable.HashMap[K, V]].map(operators.heavymapper) - result = r.size - } - def runpar = { - result = this.parcoll.map(operators.heavymapper).size - } - 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() - def runseq = this.seqcoll.reduceLeft(operators.mediumreducer) - 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() - def runseq = this.seqcoll.foreach(operators.foreachFun) - def runpar = this.parcoll.pforeach(operators.foreachFun) - def companion = Foreach - } - -} - - - - - -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) - def comparisonMap = collection.Map() - 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 { - gcd(b, a - b * (a / b)) - } - result + 1000 - } - def heavy(a: Int): Int = { - var i = 0 - var sum = a - while (i < 3000) { - i += 1 - sum += a + i - } - sum - } - val foreachFun = (t: DPair) => { - t - () - } - val reducer = (x: DPair, y: DPair) => { - //y._2.num = x._2.in + y._2.in - y - } - val mediumreducer = (x: DPair, y: DPair) => { - y._2.num = gcd(x._2.in, y._2.in) - y - } - val filterer = (p: DPair) => { - p._1.num % 2 == 0 - } - val mapper = (p: DPair) => { - val a = p._1 - a.num = a.in % 2 - (a, p._2) - } - val flatmapper = (p: DPair) => { - for (i <- 0 until 20) yield p - } - override val mapper2 = (p: DPair) => { - val a = 1 //heavy(p._1.in) - (new Dummy(p._1.in * -2 + a), p._2) - } - val heavymapper = (p: DPair) => { - var i = -2000 - var t = p._1.in - while (i < 0) { - t += (p._2.num - p._1.num) / 500 - p._1.num += p._2.num + t - i += 1 - } - (p._1, new Dummy(0)) - } - val taker = (p: DPair) => true - val eachFun: DPair => Unit = { dp => - 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))) - forkJoinPool.setParallelism(p) - 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 deleted file mode 100644 index 96598840fd..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala +++ /dev/null @@ -1,66 +0,0 @@ -package scala.collection.parallel.benchmarks -package hashtries - - - - -import collection.immutable.{HashMap => HashTrie} -import collection.mutable.HashMap - - - - - - -class Combine(val size: Int, val parallelism: Int, val runWhat: String) extends Bench with IntInit { - var thattrie = new HashTrie[Int, Int] - 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 = { - hashtrie merge thattrie - // println - // println("both tries: " + HashTrie.bothtries) - // println("one trie, one item: " + HashTrie.onetrie) - // println("both single: " + HashTrie.bothsingle) - // System exit 1 - } - def rundestructive = { - hashtrie merge thattrie - } - def runappendtrie = hashtrie ++ thattrie - def runhashmap = hashmap ++ thatmap - def companion = Combine - def comparisonMap = Map("hashtrie" -> runhashtrie _, "hashmap" -> runhashmap _, "destruct" -> rundestructive _, "appendtrie" -> runappendtrie _) - override def reset = runWhat match { - case "appendtrie" => initHashTrie - case "destruct" => initHashTrie - case _ => super.reset - } -} - - -object Combine extends BenchCompanion { - def collectionName = "HashTrie" - def benchName = "combine"; - def apply(sz: Int, p: Int, what: String) = new Combine(sz, p, what) - override def defaultSize = 5000 -} - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Construct.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Construct.scala deleted file mode 100644 index f65a349ec5..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Construct.scala +++ /dev/null @@ -1,54 +0,0 @@ -package scala.collection.parallel.benchmarks -package hashtries - - - - -import collection.immutable.{HashMap => HashTrie} -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 = { - val hashmap = new HashMap[Int, Int] - for (i <- 0 until size) hashmap += ((i, i)) - } - def runhashtrie = { - var hashtrie = new HashTrie[Int, Int] - for (i <- 0 until size) hashtrie += ((i, i)) - } - - def companion = Construct - def comparisonMap = Map("hashmap" -> runhashmap _, "hashtrie" -> runhashtrie _) -} - - -object Construct extends BenchCompanion { - def collectionName = "HashTrie" - def benchName = "construct"; - def apply(sz: Int, p: Int, what: String) = new Construct(sz, p, what) - override def defaultSize = 5000 -} - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala deleted file mode 100644 index f53ea02e36..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala +++ /dev/null @@ -1,45 +0,0 @@ -package scala.collection.parallel.benchmarks -package hashtries - - - - -import collection.immutable.{HashMap => HashTrie} -import collection.mutable.HashMap - - - - - - -class Foreach(val size: Int, val parallelism: Int, val runWhat: String) extends Bench with IntInit { - def runpar = throw new UnsupportedOperationException - def runseq = runhashtrie - def runhashmap = hashmap.foreach(n => ()) - def runhashtrie = hashtrie.foreach(n => ()) - def companion = Foreach - def comparisonMap = Map("hashmap" -> runhashmap _, "hashtrie" -> runhashtrie _) -} - - -object Foreach extends BenchCompanion { - def collectionName = "HashTrie" - def benchName = "foreach-light"; - def apply(sz: Int, p: Int, what: String) = new Foreach(sz, p, what) - override def defaultSize = 25000 -} - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala deleted file mode 100644 index 79ebd0e98c..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala +++ /dev/null @@ -1,31 +0,0 @@ -package scala.collection.parallel.benchmarks -package hashtries - - - - -import collection.immutable.{HashMap => HashTrie} -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 - case "hashtrie" => initHashTrie - case "seq" => initHashTrie - } - def initHashTrie = { - hashtrie = new HashTrie - for (i <- 0 until size) hashtrie += ((i, i)) - } - def initHashMap = { - hashmap = new HashMap - for (i <- 0 until size) hashmap += ((i, i)) - } - -} diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Iterate.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Iterate.scala deleted file mode 100644 index d27aa200b8..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Iterate.scala +++ /dev/null @@ -1,51 +0,0 @@ -package scala.collection.parallel.benchmarks -package hashtries - - - - -import collection.immutable.{HashMap => HashTrie} -import collection.mutable.HashMap - - - - - - -class Iterate(val size: Int, val parallelism: Int, val runWhat: String) extends Bench with IntInit { - def runpar = throw new UnsupportedOperationException - def runseq = throw new UnsupportedOperationException - def runhashmap = { - val it = hashmap.iterator - while (it.hasNext) it.next - } - def runhashtrie = { - val it = hashtrie.iterator - while (it.hasNext) it.next - } - def companion = Iterate - def comparisonMap = Map("hashmap" -> runhashmap _, "hashtrie" -> runhashtrie _) -} - - -object Iterate extends BenchCompanion { - def collectionName = "HashTrie" - def benchName = "iterate-light"; - def apply(sz: Int, p: Int, what: String) = new Iterate(sz, p, what) - override def defaultSize = 25000 -} - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Lookup.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Lookup.scala deleted file mode 100644 index 4ee8c17118..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Lookup.scala +++ /dev/null @@ -1,57 +0,0 @@ -package scala.collection.parallel.benchmarks -package hashtries - - - - -import collection.immutable.{HashMap => HashTrie} -import collection.mutable.HashMap - - - - - - -class Lookup(val size: Int, val parallelism: Int, val runWhat: String) extends Bench with IntInit { - def runpar = throw new UnsupportedOperationException - def runseq = throw new UnsupportedOperationException - def runhashmap = { - var i = 0 - while (i < size) { - hashmap(i) - i += 1 - } - } - def runhashtrie = { - var i = 0 - while (i < size) { - hashtrie(i) - i += 1 - } - } - def companion = Iterate - def comparisonMap = Map("hashmap" -> runhashmap _, "hashtrie" -> runhashtrie _) -} - - -object Lookup extends BenchCompanion { - def collectionName = "HashTrie" - def benchName = "lookup"; - def apply(sz: Int, p: Int, what: String) = new Lookup(sz, p, what) - override def defaultSize = 25000 -} - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala deleted file mode 100644 index c08d6b5cad..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala +++ /dev/null @@ -1,87 +0,0 @@ -package scala.collection.parallel.benchmarks -package hashtries - - - - -import collection.immutable.{HashMap => HashTrie} -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] - for (i <- ((r + 1) * size) until ((r + 2) * size)) thattrie += ((i, i)) - 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] - for (i <- ((r + 1) * size) until ((r + 2) * size)) thatmap += ((i, i)) - thatmaps(r) = thatmap - } - initMaps - - override def repetitionsPerRun = 25 - def runpar = throw new UnsupportedOperationException - def runseq = runhashtrie - def runhashtrie = { - initHashTrie - var trie = hashtrie - for (r <- 0 until combines) trie = trie merge thattries(r) - } - def runappendtrie = { - initHashTrie - var trie = hashtrie - for (r <- 0 until combines) trie = trie ++ thattries(r) - } - def runhashmap = { - initHashMap - var map = hashmap - for (r <- 0 until combines) map = map ++ thatmaps(r) - } - def rundestructive = { - initHashTrie - var trie = hashtrie - for (r <- 0 until combines) trie = trie merge thattries(r) - } - def companion = MultipleCombine - def comparisonMap = Map("hashtrie" -> runhashtrie _, "hashmap" -> runhashmap _, "appendtrie" -> runappendtrie _, "destruct" -> rundestructive _) - override def reset = runWhat match { - case "appendtrie" => initHashTrie - case "destruct" => initHashTrie - case _ => super.reset - } -} - - -object MultipleCombine extends BenchCompanion { - def collectionName = "HashTrie" - def benchName = "multi-combine"; - def apply(sz: Int, p: Int, what: String) = new MultipleCombine(sz, p, what) - override def defaultSize = 5000 -} - - - - - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala deleted file mode 100644 index dc8804cf57..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala +++ /dev/null @@ -1,180 +0,0 @@ -package scala.collection.parallel.benchmarks.hashtries - - - - -import scala.collection.parallel.benchmarks.generic.StandardParIterableBenches -import scala.collection.parallel.benchmarks.generic.Dummy -import scala.collection.parallel.benchmarks.generic.Operators -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 - def comparisonMap = collection.Map("jhashtable" -> runjhashtable _, "hashtable" -> runhashtable _) - def runseq = { - val r = this.seqcoll.asInstanceOf[collection.immutable.HashMap[K, V]].map(operators.mapper2) - result = r.size - } - def runpar = { - result = this.parcoll.map(operators.mapper2).size - } - def runjhashtable = { - val jumap = new java.util.HashMap[K, V]() - val it = this.seqcoll.iterator - while (it.hasNext) { - val p = it.next - jumap.put(p._1, p._2) - } - result = jumap.size - } - def runhashtable = { - val smap = collection.mutable.HashMap[K, V]() - val it = this.seqcoll.iterator - while (it.hasNext) { - val p = it.next - smap.put(p._1, p._2) - } - result = smap.size - } - override def reset = runWhat match { - case "jhashtable" => this.seqcoll = createSequential(size, parallelism) - case "hashtable" => this.seqcoll = createSequential(size, parallelism) - case _ => super.reset - } - def companion = Map2 - override def repetitionsPerRun = 50 - override def printResults { - 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] = _ - def comparisonMap = collection.Map("hashtable" -> runhashtable _) - def runseq = this.seqcoll.reduceLeft(operators.reducer) - def runpar = this.parcoll.reduce(operators.reducer) - def runhashtable = ht.reduceLeft(operators.reducer) - override def reset = runWhat match { - case "hashtable" => ht = createHashTable(size) - case _ => super.reset - } - def companion = Reduce2 - } - - def createHashTable(sz: Int): collection.mutable.HashMap[K, V] - -} - - - - - -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 { - gcd(b, a - b * (a / b)) - } - result + 1000 - } - def heavy(a: Int): Int = { - var i = 0 - var sum = a - while (i < 3000) { - i += 1 - sum += a + i - } - sum - } - val foreachFun = (t: DPair) => { - t - () - } - val reducer = (x: DPair, y: DPair) => { - //y._2.num = x._2.in + y._2.in - y - } - val mediumreducer = (x: DPair, y: DPair) => { - y._2.num = gcd(x._2.in, y._2.in) - y - } - val filterer = (p: DPair) => { - p._1.num % 2 == 0 - } - val mapper = (p: DPair) => { - val a = p._1 - a.num = a.in % 2 - (a, p._2) - } - val flatmapper = (p: DPair) => { - List(p, p, p, p, p) - } - override val mapper2 = (p: DPair) => { - val a = 1 //heavy(p._1.in) - (new Dummy(p._1.in * -2 + a), p._2) - } - val heavymapper = (p: DPair) => { - val a = p._1 - var i = -100 - while (i < 0) { - if (a.in < i) a.num += 1 - i += 1 - } - (a, p._2) - } - val taker = (p: DPair) => true - val eachFun: DPair => Unit = { dp => - 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))) - forkJoinPool.setParallelism(p) - 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 deleted file mode 100644 index 9cc1f4a0f6..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Coder.scala +++ /dev/null @@ -1,162 +0,0 @@ -package scala.collection.parallel.benchmarks -package misc - - - - - - -import collection._ //immutable._ -import collection.parallel._//immutable._ - - -class SeqCoder(words: List[String]) { - - private val m = Map( - '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] = - for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** 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 - * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) - */ - 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]] = - if (number.isEmpty) Set(Seq()) - else { - val splits = (1 to number.length).toSet - // for { - // split <- splits - // word <- wordsForNum(number take split) - // rest <- encode(number drop split) - // } yield word :: rest - val r = splits.flatMap(split => { - val wfn = wordsForNum(number take split).flatMap(word => { - val subs = encode(number drop split) - subs.map(rest => word +: rest) - }) - wfn - }) - r - } - - /** 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", - '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] = - for ((digit, letters) <- m; letter <- letters) yield letter -> digit - - /** 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 - * them e.g. `5282` -> List(`Java`, `Kata`, `Lava`, ...) - */ - 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()) - else { - val splits = (1 to number.length).toParSet - for { - split <- splits - word <- wordsForNum(number take split) - rest <- encode(number drop split) - } yield word +: rest - } - } else { - if (number.isEmpty) Set(Seq()) - else { - val splits = (1 to number.length).toSet - for { - split <- splits - word <- wordsForNum(number take split) - rest <- encode(number drop split) - } yield word +: rest - } - } - - /** 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 -} - - - - - -object Coder extends BenchCompanion { - def benchName = "Coder" - def collectionName = "General" - def apply(sz: Int, p: Int, what: String) = new Coder(sz, p, what) - override def defaultSize = 100 -} - -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) - val t = seqcoder.translate(code) - println("Translation check: " + t.size) - //println(t) - case "par" => - collection.parallel.tasksupport.environment.asInstanceOf[concurrent.forkjoin.ForkJoinPool].setParallelism(parallelism) - parcoder = new ParCoder(Dictionary.wordlist) - val t = parcoder.translate(code) - println("Translation check: " + t.size) - //println(t) - } - - def comparisonMap = Map() - -} - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Dictionary.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Dictionary.scala deleted file mode 100644 index e6ff55d234..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Dictionary.scala +++ /dev/null @@ -1,13 +0,0 @@ -package scala.collection.parallel.benchmarks.misc - - - - -object Dictionary { - val wordlist = wordlines.split(System.getProperty("line.separator")).filter(_.trim != "").toList - val wordarray = wordlist.toArray - def wordlines = { - val is = getClass.getClassLoader.getResourceAsStream("scala/collection/parallel/benchmarks/misc/dict.txt") - scala.io.Source.fromInputStream(is).mkString - } -} diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Loader.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Loader.scala deleted file mode 100644 index c7e4723e64..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/Loader.scala +++ /dev/null @@ -1,66 +0,0 @@ -package scala.collection.parallel.benchmarks -package misc - - - - - - -import collection._ //immutable._ -import collection.parallel._//immutable._ - - - - - - - -object Loader extends BenchCompanion { - def benchName = "Loader" - def collectionName = "General" - def apply(sz: Int, p: Int, what: String) = new Loader(sz, p, what) - override def defaultSize = 100 -} - - -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", - '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", - '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/misc/dict.txt b/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/dict.txt deleted file mode 100644 index 46e95c907f..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/misc/dict.txt +++ /dev/null @@ -1,58111 +0,0 @@ -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/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala deleted file mode 100644 index 2eaddd7572..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/AggregateLight.scala +++ /dev/null @@ -1,39 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ -import scala.collection.parallel.mutable.ParArray -import extra166y.{ParallelArray => JSR166Array} - - -object AggregateLight extends Companion { - def benchName = "aggregate-light"; - 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 -} - - -class AggregateLight(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { - 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/Companion.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Companion.scala deleted file mode 100644 index f5d6c75abb..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Companion.scala +++ /dev/null @@ -1,9 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -trait Companion extends BenchCompanion { - def collectionName = "ParArray" -} 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 deleted file mode 100644 index 033921d451..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CopyToArray.scala +++ /dev/null @@ -1,21 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object CopyToArray extends Companion { - def benchName = "copytoarray"; - def apply(sz: Int, parallelism: Int, what: String) = new CopyToArray(sz, parallelism, what) - override def comparisons = List() - override def defaultSize = 200000 -} - -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 deleted file mode 100644 index c9b3f07ff3..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Corresponds.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class Corresponds(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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 { - case "seq" => arr(i).asInstanceOf[Cont] - case "par" => pa(i) - } - 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 -} - -object Corresponds extends Companion { - def benchName = "corresponds"; - def apply(sz: Int, p: Int, what: String) = new Corresponds(sz, p, what) - override def comparisons = List() -} - - - - - - - - - - - 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 deleted file mode 100644 index 7438be8447..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountHeavy.scala +++ /dev/null @@ -1,36 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object CountHeavy extends Companion { - def benchName = "count-heavy"; - 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(_ && _) - } - def checkPrime(n: Int) = { - var isPrime = true - for (i <- 2 until (scala.math.sqrt(n).toInt + 1)) if (n % i == 0) isPrime = false - isPrime - } -} - -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 - def comparisonMap = collection.Map("jsr" -> runjsr _) -} 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 deleted file mode 100644 index 21c64358b4..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala +++ /dev/null @@ -1,22 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object CountLight extends Companion { - def benchName = "count-light"; - def apply(sz: Int, parallelism: Int, what: String) = new CountLight(sz, parallelism, what) - override def comparisons = List("jsr") - override def defaultSize = 200000 -} - -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 - def comparisonMap = collection.Map("jsr" -> runjsr _) -} - 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 deleted file mode 100644 index 9c6ac19229..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountList.scala +++ /dev/null @@ -1,30 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object CountList extends Companion { - def benchName = "count-list"; - 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 -} - -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 - def comparisonMap = collection.Map("jsr" -> runjsr _) -} 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 deleted file mode 100644 index 4b27569239..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DiffHalf.scala +++ /dev/null @@ -1,48 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class DiffHalf(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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 { - case "seq" => arr(i).asInstanceOf[Cont] - case "par" => pa(i) - } - 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 -} - -object DiffHalf extends Companion { - def benchName = "diff-half"; - def apply(sz: Int, p: Int, what: String) = new DiffHalf(sz, p, what) - override def comparisons = List() - override def defaultSize = 10000 -} - - - - - - - - - - - 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 deleted file mode 100644 index 443ef2b500..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/DropMany.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object DropMany extends Companion { - def benchName = "drop-many"; - def apply(sz: Int, parallelism: Int, what: String) = new DropMany(sz, parallelism, what) - override def comparisons = Nil - override def defaultSize = 50000 -} - -class DropMany(sz: Int, p: Int, what: String) -extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) -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 deleted file mode 100644 index 2749216735..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ExistsLight.scala +++ /dev/null @@ -1,49 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object ExistsLight extends Companion { - def benchName = "exists-light"; - 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 - } -} - -class ExistsLight(sz: Int, p: Int, what: String) -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 - def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index d4c8395951..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FilterLight.scala +++ /dev/null @@ -1,64 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object FilterLight extends Companion { - def benchName = "filter-light"; - 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 -// while (i < 10) { -// res += n % i -// i += 1 -// } - res % 2 == 0 - } -} - -class FilterLight(sz: Int, p: Int, what: String) -extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) -with HavingResult[Int] { - def companion = FilterLight - 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 } - def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index f08ddf29e3..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FindLight.scala +++ /dev/null @@ -1,52 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object FindLight extends Companion { - def benchName = "find-light"; - 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 - } -} - -class FindLight(sz: Int, p: Int, what: String) -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 } - def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 01ecbbf016..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/FlatMapLight.scala +++ /dev/null @@ -1,24 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - - - -object FlatMapLight extends Companion { - def benchName = "flatmap-light"; - 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 deleted file mode 100644 index 0d61e5aeb5..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallHeavy.scala +++ /dev/null @@ -1,59 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object ForallHeavy extends Companion { - def benchName = "forall-heavy"; - 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 - var i = 0 - while (i < 10000) { - cnt = -2 * cnt - cnt /= 2 - i += 1 - } - cnt += init * 5 + 10 - cnt >= 0 - } -} - -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 - def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 19671d2bc4..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallLight.scala +++ /dev/null @@ -1,46 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object ForallLight extends Companion { - def benchName = "forall-light"; - 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 - } -} - -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 - def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 624266e49d..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallQuickStop.scala +++ /dev/null @@ -1,46 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -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 - } -} - -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 deleted file mode 100644 index c7462ed04b..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForallStop80k.scala +++ /dev/null @@ -1,46 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -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 - } -} - -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 deleted file mode 100644 index d1a3f8085c..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachHeavy.scala +++ /dev/null @@ -1,45 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object ForeachHeavy extends Companion { - def benchName = "foreach-heavy"; - 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 - val until = 550 - while (i < until) { - if (n % i == 0) isPrime = false - i += 1 - } - if (isPrime && (n.toString == z)) z += 1 - isPrime - } -} - -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) - def comparisonMap = collection.Map("jsr" -> runjsr _) -} 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 deleted file mode 100644 index 3d0c5c45c4..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ForeachLight.scala +++ /dev/null @@ -1,26 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object ForeachLight extends Companion { - def benchName = "foreach-light"; - 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 - } -} - -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) - def comparisonMap = collection.Map("jsr" -> runjsr _) -} 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 deleted file mode 100644 index a90227a6e4..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/GroupBy.scala +++ /dev/null @@ -1,45 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - -object GroupByLight extends Companion { - def benchName = "groupby-light"; - 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 -} - - -class GroupByLight(sz: Int, p: Int, what: String) -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 deleted file mode 100644 index 3a22bdd1db..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IndexWhere.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class IndexWhere(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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() -} - -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 - while (i < 5) { - if (in % i == 0) in = 0 - i += 1 - } - c.in >= 0 && in == -1 - } - val pred2 = (c: Cont) => c.in == 280000 -} - - - - - - - - - - - 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 deleted file mode 100644 index e429fb288e..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/IntersectHalf.scala +++ /dev/null @@ -1,48 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class IntersectHalf(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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 { - case "seq" => arr(i).asInstanceOf[Cont] - case "par" => pa(i) - } - 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 -} - -object IntersectHalf extends Companion { - def benchName = "intersect-half"; - def apply(sz: Int, p: Int, what: String) = new IntersectHalf(sz, p, what) - override def comparisons = List() - override def defaultSize = 10000 -} - - - - - - - - - - - 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 deleted file mode 100644 index 427afa5571..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/LastIndexWhere.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class LastIndexWhere(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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() -} - -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 - while (i < 5) { - if (in % i == 0) in = 0 - i += 1 - } - c.in >= 0 || in == 0 - } - val pred2 = (c: Cont) => c.in == 500 -} - - - - - - - - - - - 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 deleted file mode 100644 index 1451f6a57a..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MapLight.scala +++ /dev/null @@ -1,27 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object MapLight extends Companion { - def benchName = "map-light"; - 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 } - } -} - -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) - def runjsr = jsrarr.replaceWithMapping(MapLight.funjsr).all - def comparisonMap = collection.Map("jsr" -> runjsr _) -} 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 deleted file mode 100644 index 6d5b189c3a..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MatrixMultiplication.scala +++ /dev/null @@ -1,84 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - -import collection.parallel.immutable.ParRange - - -object MatrixMultiplication extends Companion { - def benchName = "matrix-mult"; - def apply(sz: Int, parallelism: Int, what: String) = new MatrixMultiplication(sz, parallelism, what) - override def comparisons = List() - override def defaultSize = 100 -} - -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], tag: ClassTag[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], tag: ClassTag[T]) = { - val m = new Matrix[T](n) - for (i <- 0 until n) m(i, i) = num.one - 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 deleted file mode 100644 index a51b5d6176..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/MinLight.scala +++ /dev/null @@ -1,28 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - - -/** Tests reduce method using an operator creating an object as a result. */ -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() -} - -object MinLight extends Companion { - def benchName = "min-light"; - def apply(sz: Int, p: Int, what: String) = new MinLight(sz, p, what) - override def comparisons = List() -} - - - - - - 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 deleted file mode 100644 index f8a985c349..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PadToDouble.scala +++ /dev/null @@ -1,53 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class PadToDouble(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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 { - case "seq" => arr(i).asInstanceOf[Cont] - case "par" => pa(i) - } - 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) -} - - -object PadToDouble extends Companion { - def benchName = "padto-double"; - def apply(sz: Int, p: Int, what: String) = new PadToDouble(sz, p, what) - override def comparisons = List() - override def defaultSize = 25000 -} - - - - - - - - - - - - - - - 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 deleted file mode 100644 index 57f8536b9e..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartialMapLight.scala +++ /dev/null @@ -1,24 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object PartialMapLight extends Companion { - def benchName = "partmap-light"; - 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 - } -} - -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 deleted file mode 100644 index b99a25b285..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PartitionLight.scala +++ /dev/null @@ -1,61 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object PartitionLight extends Companion { - def benchName = "partition-light"; - 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 - while (i < 5) { - res += n % i - i += 1 - } - (res % 2 == 0) && (res % 312 == 0) - } -} - -class PartitionLight(sz: Int, p: Int, what: String) -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 deleted file mode 100644 index 55cc71f129..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PatchHalf.scala +++ /dev/null @@ -1,46 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class PatchHalf(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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 { - case "seq" => arr(i).asInstanceOf[Cont] - case "par" => pa(i) - } - 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() -} - -object PatchHalf extends Companion { - def benchName = "patch-half"; - def apply(sz: Int, p: Int, what: String) = new PatchHalf(sz, p, what) - override def comparisons = List() - override def defaultSize = 25000 -} - - - - - - - - - - - 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 deleted file mode 100644 index 2574621212..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/PlusPlus.scala +++ /dev/null @@ -1,29 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.mutable.ParArray - - -object PlusPlus extends Companion { - def benchName = "plusplus"; - def apply(sz: Int, parallelism: Int, what: String) = new PlusPlus(sz, parallelism, what) - override def comparisons = List() - override def defaultSize = 50000 -} - -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 deleted file mode 100644 index dd660ba8e0..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceHeavy.scala +++ /dev/null @@ -1,22 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -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)) - override def comparisonMap = collection.Map("jsr" -> runjsr _) -} - -object ReduceHeavy extends Companion { - def benchName = "reduce-heavy"; - def apply(sz: Int, p: Int, what: String) = new ReduceHeavy(sz, p, what) - override def comparisons = List("jsr") - override def defaultSize = 16 -} 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 deleted file mode 100644 index f1f2a32403..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceLight.scala +++ /dev/null @@ -1,50 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ -import scala.collection.parallel.mutable.ParArray -import extra166y.{ParallelArray => JSR166Array} - - -object ReduceLight extends Companion { - def benchName = "reduce-light"; - def apply(sz: Int, parallelism: Int, what: String) = new ReduceLight(sz, parallelism, what) - override def comparisons = List("jsr") - override def defaultSize = 200000 -} - - -class ReduceLight(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { - 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 deleted file mode 100644 index f095797d1c..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceList.scala +++ /dev/null @@ -1,53 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - -object ReduceList extends Companion { - def benchName = "reduce-list"; - def apply(sz: Int, p: Int, what: String) = new ReduceList(sz, p, what) - override def comparisons = List("jsr") - override def defaultSize = 20000 -} - -object ListCreator extends (Int => List[Int]) { - def apply(idx: Int) = { - val len = 50 + idx % 100 - (for (i <- 0 until len) yield i).toList - } -} - -object ListOps { - val redop = (a: List[Int], b: List[Int]) => combineLists(a, b) - val reducer = new extra166y.Ops.Reducer[List[Int]] { - def op(a: List[Int], b: List[Int]) = combineLists(a, b) - } - def combineLists(a: List[Int], b: List[Int]) = { - if (a.foldLeft(0)(_ + _) > b.foldLeft(0)(_ + _)) a else b - } -} - -class ReduceList(sz: Int, p: Int, what: String) -extends Resettable[List[Int]](sz, p, what, ListCreator, new Array[Any](_), classOf[List[Int]]) { - 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]()) - override def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - - - - 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 deleted file mode 100644 index 1cf4f4169a..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReduceNew.scala +++ /dev/null @@ -1,30 +0,0 @@ -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), - 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)) - override def comparisonMap = collection.Map("jsr" -> runjsr _) -} - -object ReduceNew extends Companion { - def benchName = "reduce-new"; - def apply(sz: Int, p: Int, what: String) = new ReduceNew(sz, p, what) - override def comparisons = List("jsr") -} - - - - - - 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 deleted file mode 100644 index 8fb90981ac..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReducePrime.scala +++ /dev/null @@ -1,65 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object IntWrapCreator extends (Int => IntWrap) { - def apply(idx: Int) = new IntWrap(shiftaround(idx)) - def shiftaround(idx: Int) = idx * 40192 + 717 -} - -case class IntWrap(val num: Int) - -object IntOps { - val op = (a: IntWrap, b: IntWrap) => primereduce(a, b) - 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 - val until = scala.math.sqrt(n).toInt + 1 - while (i < until) { - if (n % i == 0) isPrime = false - i += 1 - } - isPrime - } -} - -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)) - override def comparisonMap = collection.Map("jsr" -> runjsr _) -} - -object ReducePrime extends Companion { - def benchName = "reduce-prime"; - def apply(sz: Int, p: Int, what: String) = new ReducePrime(sz, p, what) - override def comparisons = List("jsr") - override def defaultSize = 100 -} - - - - - - - - - - - - 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 deleted file mode 100644 index feb1bd9466..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/RemoveDuplicates.scala +++ /dev/null @@ -1,44 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class RemoveDuplicates(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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() -} - -object RemoveDuplicates extends Companion { - def benchName = "remove-duplicates"; - def apply(sz: Int, p: Int, what: String) = new RemoveDuplicates(sz, p, what) - override def comparisons = List() - override def defaultSize = 10000 -} - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index b4403fcb9c..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Resettable.scala +++ /dev/null @@ -1,127 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ -import scala.collection.parallel.mutable.ParArray -import extra166y.{ParallelArray => JSR166Array} - - -class Cont(val in: Int) { - var num = in - override def toString = in.toString -} - -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 - var i = 0 - var res = f * s - while (i < 50000) { - if ((i + f) % 3 == 0) res += s - else res -= f - i += 1 - } - b.num = res - b - } -} - -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) - for (i <- 0 until size) arr(i) = elemcreator(i) - case "par" => - pa = new ParArray[T](size) - collection.parallel.tasksupport.environment = forkjoinpool - for (i <- 0 until size) pa(i) = elemcreator(i) - case "jsr" => - jsrarr = JSR166Array.create(size, cls, papool) - 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) - println("Active threads: " + forkjoinpool.getActiveThreadCount) - println("Work stealings: " + forkjoinpool.getStealCount) - } -} - - - - - - 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 deleted file mode 100644 index ec690d4b2d..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/Reverse.scala +++ /dev/null @@ -1,35 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -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() -} - -object Reverse extends Companion { - def benchName = "reverse"; - def apply(sz: Int, p: Int, what: String) = new Reverse(sz, p, what) - override def comparisons = List() -} - - - - - - - - - - - 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 deleted file mode 100644 index 47ae108c45..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ReverseMap.scala +++ /dev/null @@ -1,48 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -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 - var i = 2 - while (i < 6) { - if (in % i == 0) in = 0 - i += 1 - } - if (in < 0) null - else c - } -} - -object ReverseMap extends Companion { - def benchName = "reverse-map"; - def apply(sz: Int, p: Int, what: String) = new ReverseMap(sz, p, what) - override def comparisons = List() - override def defaultSize = 100000 -} - - - - - - - - - - - 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 deleted file mode 100644 index d22c4df661..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SameElementsLong.scala +++ /dev/null @@ -1,45 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class SameElementsLong(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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 { - case "seq" => arr(i).asInstanceOf[Cont] - case "par" => pa(i) - } - p - } - - def runpar = runresult = pa.sameElements(same) - def runseq = runresult = sequentialSameElements(same, sz) - override def comparisonMap = collection.Map() -} - -object SameElementsLong extends Companion { - def benchName = "same-elements-long"; - def apply(sz: Int, p: Int, what: String) = new SameElementsLong(sz, p, what) - override def comparisons = List() -} - - - - - - - - - - - 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 deleted file mode 100644 index d0ddf9f70e..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanLight.scala +++ /dev/null @@ -1,46 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ -import scala.collection.parallel.mutable.ParArray - - -object ScanLight extends Companion { - def benchName = "scan-light"; - 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) - } - def operation(a: Cont, b: Cont) = { - val m = if (a.in < 0) 1 else 0 - new Cont(a.in + b.in + m * (0 until 2).reduceLeft(_ + _)) - } -} - - -class ScanLight(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { - 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] { - def op(a: Cont, b: Cont) = ScanLight.operation(a, b) - }, new Cont(0)) - override def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - 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 deleted file mode 100644 index a60ba7aa33..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/ScanMedium.scala +++ /dev/null @@ -1,55 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ -import scala.collection.parallel.mutable.ParArray - - -object ScanMedium extends Companion { - def benchName = "scan-medium"; - 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) - } - def operation(a: Cont, b: Cont) = { - val m = if (a.in < 0) 1 else 0 - val k = calc(a.in, b.in, m) - new Cont(a.in + b.in + k * m * (0 until 2).reduceLeft(_ + _)) - } - private def calc(x: Int, y: Int, n: Int) = { - var sum = x - for (i <- 0 until 500) { - sum += y + (if (sum % 2 == 0) n * x else y) - if (sum % 5 == 0) sum -= x * y - n * (x + y) - } - sum - } -} - - -class ScanMedium(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { - 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] { - def op(a: Cont, b: Cont) = ScanMedium.operation(a, b) - }, new Cont(0)) - override def comparisonMap = collection.Map("jsr" -> runjsr _) -} - - - - - - - - - - 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 deleted file mode 100644 index 8fae899b45..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SegmentLength.scala +++ /dev/null @@ -1,42 +0,0 @@ -package scala.collection.parallel.benchmarks -package parallel_array - - - - - - - -class SegmentLength(sz: Int, p: Int, what: String) -extends Resettable[Cont](sz, p, what, (i: Int) => new Cont(i), new Array[Any](_), classOf[Cont]) -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() -} - -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 - while (i < 5) { - if (in % i == 0) in = 0 - i += 1 - } - c.in >= 0 || in == 0 - } - val pred2 = (c: Cont) => c.in >= 0 -} - - - - - - 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 deleted file mode 100644 index ba32036002..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SequentialOps.scala +++ /dev/null @@ -1,562 +0,0 @@ -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 - var sum = init - while (i < until) { - sum = op(sum, arr(i).asInstanceOf[T]) - i += 1 - } - sum - } - - def sequentialScan(z: T, op: (T, T) => T, sz: Int) = { - var outarr = new Array[Any](sz + 1) - outarr(0) = z - var last = z - var i = 0 - var j = 1 - val until = sz - while (i < until) { - last = op(last, arr(i).asInstanceOf[T]) - outarr(j) = last - i += 1 - j += 1 - } - } - - def sequentialCount(pred: T => Boolean, sz: Int) = { - var i = 0 - val until = sz - var sum = 0 - while (i < until) { - if (pred(arr(i).asInstanceOf[T])) sum += 1 - i += 1 - } - sum - } - - def sequentialForeach[U](f: T => U, sz: Int) = { - var i = 0 - val until = sz - var sum = 0 - while (i < until) { - f(arr(i).asInstanceOf[T]) - i += 1 - } - } - - def sequentialSum[U >: T](sz: Int)(implicit num: Numeric[U]) = { - var i = 0 - val until = sz - var sum = num.zero - while (i < until) { - sum = num.plus(sum, arr(i).asInstanceOf[T]) - i += 1 - } - sum - } - - def sequentialMin[U >: T](sz: Int)(implicit ord: Ordering[U]) = { - var i = 1 - val until = sz - var min = arr(0).asInstanceOf[U] - while (i < until) { - val elem = arr(i).asInstanceOf[U] - if (ord.lt(elem, min)) min = elem - i += 1 - } - min - } - - def sequentialForall(pred: T => Boolean, sz: Int) = { - var i = 0 - val until = sz - var all = true - while (i < until) { - if (pred(arr(i).asInstanceOf[T])) i += 1 - else { - all = false - i = until - } - } - all - } - - def sequentialExists(pred: T => Boolean, sz: Int) = { - var i = 0 - val until = sz - var some = false - while (i < until) { - if (pred(arr(i).asInstanceOf[T])) { - some = true - i = until - } else i += 1 - } - some - } - - def sequentialFind(pred: T => Boolean, sz: Int) = { - var i = 0 - val until = sz - var opt: Option[T] = None - while (i < until) { - if (pred(arr(i).asInstanceOf[T])) { - opt = Some(arr(i).asInstanceOf[T]) - i = until - } else i += 1 - } - opt - } - - def sequentialFilter(pred: T => Boolean, sz: Int) = { - var i = 0 - val buff = new collection.mutable.ArrayBuffer[T] - while (i < sz) { - val elem = arr(i).asInstanceOf[T] - if (pred(elem)) buff += elem - i += 1 - } - val resarr = new Array[Any](buff.size) - buff.copyToArray(resarr, 0) - resarr - } - - def sequentialPartition(pred: T => Boolean, sz: Int) = { - var i = 0 - val btrue = new collection.mutable.ArrayBuffer[T] - val bfalse = new collection.mutable.ArrayBuffer[T] - while (i < sz) { - val elem = arr(i).asInstanceOf[T] - if (pred(elem)) btrue += elem - else bfalse += elem - i += 1 - } - val restrue = new Array[Any](btrue.size) - val resfalse = new Array[Any](bfalse.size) - btrue.copyToArray(restrue, 0) - bfalse.copyToArray(resfalse, 0) - (restrue, resfalse) - } - - def sequentialTakeOpt(n: Int, sz: Int) = { - var i = 0 - val until = if (n < sz) n else sz - val res = new Array[Any](until) - Array.copy(arr, 0, res, 0, until) -// while (i < until) { -// res(i) = arr(i) -// i += 1 -// } - res - } - - def sequentialTake(n: Int, sz: Int) = { - var i = 0 - val b = new collection.mutable.ArrayBuffer[T] - val until = if (n < sz) n else sz - b.sizeHint(until) - while (i < until) { - val elem = arr(i).asInstanceOf[T] - b += elem - i += 1 - } - val res = new Array[Any](n) - b.copyToArray(res, 0) - res - } - - def sequentialDrop(n: Int, sz: Int) = { - var i = n - val b = new collection.mutable.ArrayBuffer[T] - b.sizeHint(sz - n) - while (i < sz) { - val elem = arr(i).asInstanceOf[T] - b += elem - i += 1 - } - val res = new Array[Any](n) - b.copyToArray(res, 0) - res - } - - def sequentialSlice(from: Int, until: Int, sz: Int) = { - var i = from - val b = new collection.mutable.ArrayBuffer[T] - b.sizeHint(until - from) - while (i < until) { - val elem = arr(i).asInstanceOf[T] - b += elem - i += 1 - } - val res = new Array[Any](until - from) - b.copyToArray(res, 0) - res - } - - def sequentialSplitAtOpt(n: Int, sz: Int) = { - var i = 0 - val before = new Array[Any](n) - val after = new Array[Any](sz - n) - Array.copy(arr, 0, before, 0, n) - 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] - before.sizeHint(n) - val after = new collection.mutable.ArrayBuffer[T] - after.sizeHint(sz - n) - while (i < sz) { - if (i < n) before += arr(i).asInstanceOf[T] - else after += arr(i).asInstanceOf[T] - i += 1 - } - val resbef = new Array[Any](n) - val resaft = new Array[Any](sz - n) - before.copyToArray(resbef, 0) - after.copyToArray(resaft, 0) - (resbef, resaft) - } - - def sequentialTakeWhile(p: T => Boolean, sz: Int) = { - var i = 0 - val b = new collection.mutable.ArrayBuffer[T] - while (i < sz) { - val elem = arr(i).asInstanceOf[T] - if (p(elem)) { - b += elem - i += 1 - } else i = sz - } - val res = new Array[Any](sz) - 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] - var i = 0 - var prefix = true - var pos = sz - while (i < sz) { - val elem = arr(i).asInstanceOf[T] - if (prefix) { - if (p(elem)) bpref += elem - else { - pos = i - prefix = false - brest += elem - } - } else brest += elem - i += 1 - } - val respref = new Array[Any](pos) - val resrest = new Array[Any](sz - pos) - bpref.copyToArray(respref, 0) - 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) { - res(j) = arr(i) - i -= 1 - j += 1 - } - res - } - - def sequentialReverseMap(f: T => T, sz: Int) = { - val res = new Array[Any](sz) - - var i = sz - 1 - var j = 0 - while (i >= 0) { - res(j) = f(arr(i).asInstanceOf[T]) - i -= 1 - j += 1 - } - res - } - - def sequentialSameElements(sq: Seq[T], sz: Int): Boolean = { - if (sz != sq.length) false - else { - var i = 0 - val jt = sq.iterator - while (i < sz) { - if (arr(i) == jt.next) i += 1 - else i = sz + 1 - } - if (i == sz) true - else false - } - } - - def sequentialCorresponds(sq: Seq[T], f: (T, T) => Boolean, sz: Int): Boolean = { - if (sz != sq.length) false - else { - var i = 0 - val jt = sq.iterator - while (i < sz) { - if (f(arr(i).asInstanceOf[T], jt.next)) i += 1 - else i = sz + 1 - } - if (i == sz) true - 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] - if (occmap(elem) == 0) b += elem - 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] - val num = occmap(elem) - if (num > 0) { - b += elem - occmap(elem) = num - 1 - } - 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] - if (!occ.contains(elem)) { - b += elem - occ.add(elem) - } - 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 deleted file mode 100644 index 450d640b8d..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceFew.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object SliceFew extends Companion { - def benchName = "slice-few"; - def apply(sz: Int, parallelism: Int, what: String) = new SliceFew(sz, parallelism, what) - override def comparisons = Nil - override def defaultSize = 50000 -} - -class SliceFew(sz: Int, p: Int, what: String) -extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) -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 deleted file mode 100644 index 4a30b60e1f..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMany.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object SliceMany extends Companion { - def benchName = "slice-many"; - def apply(sz: Int, parallelism: Int, what: String) = new SliceMany(sz, parallelism, what) - override def comparisons = Nil - override def defaultSize = 50000 -} - -class SliceMany(sz: Int, p: Int, what: String) -extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) -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 deleted file mode 100644 index e16002f15d..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SliceMedium.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object SliceMedium extends Companion { - def benchName = "slice-medium"; - def apply(sz: Int, parallelism: Int, what: String) = new SliceMedium(sz, parallelism, what) - override def comparisons = Nil - override def defaultSize = 50000 -} - -class SliceMedium(sz: Int, p: Int, what: String) -extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) -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 deleted file mode 100644 index 5f1e631bce..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SpanLight.scala +++ /dev/null @@ -1,62 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object SpanLight extends Companion { - def benchName = "span-light"; - 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 - while (i < 10) { - res += n % i - i += 1 - } - if (n != 10000) res % 2 == 0 || n != 10000 - else false - } -} - -class SpanLight(sz: Int, p: Int, what: String) -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 deleted file mode 100644 index ff1e009481..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SplitHalf.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object SplitHalf extends Companion { - def benchName = "split-half"; - def apply(sz: Int, parallelism: Int, what: String) = new SplitHalf(sz, parallelism, what) - override def comparisons = Nil - override def defaultSize = 50000 -} - -class SplitHalf(sz: Int, p: Int, what: String) -extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) -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 deleted file mode 100644 index 6ed6d14370..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/SumLight.scala +++ /dev/null @@ -1,28 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - - - - -/** Tests reduce method using an operator creating an object as a result. */ -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() -} - -object SumLight extends Companion { - def benchName = "sum-light"; - def apply(sz: Int, p: Int, what: String) = new SumLight(sz, p, what) - override def comparisons = List() -} - - - - - - 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 deleted file mode 100644 index 9ddfb77a9d..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeMany.scala +++ /dev/null @@ -1,47 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object TakeMany extends Companion { - def benchName = "take-many"; - def apply(sz: Int, parallelism: Int, what: String) = new TakeMany(sz, parallelism, what) - override def comparisons = Nil - override def defaultSize = 250000 -} - -class TakeMany(sz: Int, p: Int, what: String) -extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) -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 deleted file mode 100644 index a86c67d0d8..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/TakeWhileLight.scala +++ /dev/null @@ -1,61 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_array - - -import scala.collection.parallel.benchmarks._ - - -object TakeWhileLight extends Companion { - def benchName = "takewhile-light"; - 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 - while (i < 10) { - res += n % i - i += 1 - } - res % 2 == 0 || n > 0 - } -} - -class TakeWhileLight(sz: Int, p: Int, what: String) -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 deleted file mode 100644 index af852ce992..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala +++ /dev/null @@ -1,211 +0,0 @@ -package scala.collection.parallel.benchmarks.parallel_range - - - - - -import scala.collection.parallel.benchmarks.generic._ -import scala.collection.parallel.immutable.ParRange -import scala.collection.parallel.benchmarks.generic.StandardParIterableBenches - - - - - -object RangeBenches extends StandardParIterableBenches[Int, ParRange] { - - def nameOfCollection = "ParRange" - def operators = new IntOperators {} - def comparisonMap = collection.Map() - val forkJoinPool = new scala.concurrent.forkjoin.ForkJoinPool - def createSequential(sz: Int, p: Int) = new collection.immutable.Range(0, sz, 1) - def createParallel(sz: Int, p: Int) = { - val pr = collection.parallel.immutable.ParRange(0, sz, 1, false) - forkJoinPool.setParallelism(p) - 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) = { - var i = 0 - var sum = n - while (i < 40) { - i += 1 - sum += n % i - } - 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]) { - modify(n) - () - } - 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) - def modify(n: Int) = array(n) = { - var i = 0 - var sum = 0 - while (i < 15) { - sum += i % 3 - i += i + 1 - } - 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 - while (curr > 1) { - sum += curr - if (curr % 2 == 0) curr = curr / 2 - else curr = curr * 3 + 1 - } - sum - } - - def onesum(n: Int) = { - var left = n - var sum = 0 - while (left > 0) { - sum += left % 2 - left /= 2 - } - sum - } - -} - - - - - - - - - - - diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_view/SeqViewBenches.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_view/SeqViewBenches.scala deleted file mode 100644 index 1c1cd52120..0000000000 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_view/SeqViewBenches.scala +++ /dev/null @@ -1,51 +0,0 @@ -package scala.collection.parallel -package benchmarks.parallel_view - - - -import scala.collection.parallel.benchmarks.generic._ -import scala.collection.SeqView - - - - - - - - - - -trait DummyViewBenches -extends ParSeqViewBenches[Dummy, ParSeqView[Dummy, ParSeq[Dummy], Seq[Dummy]], Seq[Dummy]] { - def nameOfCollection = "ParView" - def operators = DummyOperators - def comparisonMap = collection.Map() - val forkJoinPool = new scala.concurrent.forkjoin.ForkJoinPool - def createSequential(sz: Int, p: Int) = { - val s = new Array[Dummy](sz) - for (i <- 0 until sz) s(i) = new Dummy(i) - s - } - def createParallel(sz: Int, p: Int) = { - val pa = new collection.parallel.mutable.ParArray[Dummy](sz) - forkJoinPool.setParallelism(p) - for (i <- 0 until sz) pa(i) = new Dummy(i) - val v = pa.view - collection.parallel.tasksupport.environment = forkJoinPool - v - } - def createSeqView(sz: Int, p: Int) = createSequential(sz, p).view -} - - -object DummyViewBenchList extends DummyViewBenches - - - - - - - - - - diff --git a/test/benchmarks/src/scala/util/HashSpeedTest.scala b/test/benchmarks/src/scala/util/HashSpeedTest.scala deleted file mode 100644 index a4d310e6d1..0000000000 --- a/test/benchmarks/src/scala/util/HashSpeedTest.scala +++ /dev/null @@ -1,253 +0,0 @@ -object HashSpeedTest { - - import System.{ nanoTime => now } - - def time[A](f: => A) = { - val t0 = now - val ans = f - (ans, now - t0) - } - - def ptime[A](f: => A) = { - val (ans, dt) = time(f) - printf("Elapsed: %.3f\n", dt * 1e-9) - ans - } - - object HashHist { - var enabled = true - val counts = new collection.mutable.HashMap[Int, Int] - def add(i: Int) { if (enabled) counts(i) = counts.get(i).getOrElse(0) + 1 } - def resultAndReset = { - var s = 0L - var o = 0L - var m = 0 - counts.valuesIterator.foreach(i => { - s += i - if (i > 0) o += 1 - if (i > m) m = i - }) - counts.clear - (s, o, m) - } - } - - def report(s: String, res: (Long, Long, Int)) { - println("Hash quality of " + s) - printf(" %5.2f%% of entries are collisions\n", 100 * (res._1 - res._2).toDouble / res._1) - printf(" Max of %d entries mapped to the same value\n", res._3) - } - - // If you have MurmurHash3 installed, uncomment below (and in main) - import scala.util.{ MurmurHash3 => MH3 } - - val justCountString: String => Unit = str => { - var s, i = 0 - while (i < str.length) { s += str.charAt(i); i += 1 } - HashHist.add(s) - } - - val defaultHashString: String => Unit = str => HashHist.add(str.hashCode) - - val murmurHashString: String => Unit = str => HashHist.add(MH3.stringHash(str)) - - def makeCharStrings = { - val a = new Array[Byte](4) - val buffer = new collection.mutable.ArrayBuffer[String] - var i: Int = 'A' - while (i <= 'Z') { - a(0) = (i & 0xFF).toByte - var j: Int = 'a' - while (j <= 'z') { - a(1) = (j & 0xFF).toByte - var k: Int = 'A' - while (k <= 'z') { - a(2) = (k & 0xFF).toByte - var l: Int = 'A' - while (l <= 'z') { - a(3) = (l & 0xFF).toByte - buffer += new String(a) - l += 1 - } - k += 1 - } - j += 1 - } - i += 1 - } - buffer.toArray - } - - def hashCharStrings(ss: Array[String], hash: String => Unit) { - var i = 0 - while (i < ss.length) { - hash(ss(i)) - i += 1 - } - } - - def justCountList: List[List[Int]] => Unit = lli => { - var s = 0 - lli.foreach(_.foreach(s += _)) - HashHist.add(s) - } - - def defaultHashList: List[List[Int]] => Unit = lli => HashHist.add(lli.hashCode) - - def makeBinaryLists = { - def singleLists(depth: Int): List[List[Int]] = { - if (depth <= 0) List(Nil) - else { - val set = singleLists(depth - 1) - val longest = set filter (_.length == depth - 1) - set ::: (longest.map(0 :: _)) ::: (longest.map(1 :: _)) - } - } - val buffer = new collection.mutable.ArrayBuffer[List[List[Int]]] - val blocks = singleLists(4).toArray - buffer += List(Nil) - var i = 0 - while (i < blocks.length) { - val li = blocks(i) :: Nil - buffer += li - var j = 0 - while (j < blocks.length) { - val lj = blocks(j) :: li - buffer += lj - var k = 0 - while (k < blocks.length) { - val lk = blocks(k) :: lj - buffer += lk - var l = 0 - while (l < blocks.length) { - val ll = blocks(l) :: lk - buffer += ll - l += 1 - } - k += 1 - } - j += 1 - } - i += 1 - } - buffer.toArray - } - - def hashBinaryLists(ls: Array[List[List[Int]]], hash: List[List[Int]] => Unit) { - var i = 0 - while (i < ls.length) { - hash(ls(i)) - i += 1 - } - } - - def justCountSets: Set[Int] => Unit = si => { - var s = 0 - si.foreach(s += _) - HashHist.add(s) - } - - def defaultHashSets: Set[Int] => Unit = si => HashHist.add(si.hashCode) - - def makeIntSets = { - def sets(depth: Int): List[Set[Int]] = { - if (depth <= 0) List(Set.empty[Int]) - else { - val set = sets(depth - 1) - set ::: set.map(_ + depth) - } - } - sets(20).toArray - } - - def hashIntSets(ss: Array[Set[Int]], hash: Set[Int] => Unit) { - var i = 0 - while (i < ss.length) { - hash(ss(i)) - i += 1 - } - } - - def defaultHashTuples: (Product with Serializable) => Unit = p => HashHist.add(p.hashCode) - - def makeNestedTuples = { - val basic = Array( - (0, 0), - (0, 1), - (1, 0), - (1, 1), - (0, 0, 0), - (0, 0, 1), - (0, 1, 0), - (1, 0, 0), - (0, 0, 0, 0), - (0, 0, 0, 0, 0), - (false, false), - (true, false), - (false, true), - (true, true), - (0.7, true, "fish"), - ((), true, 'c', 400, 9.2, "galactic")) - basic ++ - (for (i <- basic; j <- basic) yield (i, j)) ++ - (for (i <- basic; j <- basic; k <- basic) yield (i, j, k)) ++ - (for (i <- basic; j <- basic; k <- basic) yield ((i, j), k)) ++ - (for (i <- basic; j <- basic; k <- basic) yield (i, (j, k))) ++ - (for (i <- basic; j <- basic; k <- basic; l <- basic) yield (i, j, k, l)) ++ - (for (i <- basic; j <- basic; k <- basic; l <- basic) yield ((i, j), (k, l))) ++ - (for (i <- basic; j <- basic; k <- basic; l <- basic) yield (i, (j, k, l))) ++ - (for (i <- basic; j <- basic; k <- basic; l <- basic; m <- basic) yield (i, j, k, l, m)) ++ - (for (i <- basic; j <- basic; k <- basic; l <- basic; m <- basic) yield (i, (j, (k, (l, m))))) - } - - def hashNestedTuples(ts: Array[Product with Serializable], hash: (Product with Serializable) => Unit) { - var i = 0 - while (i < ts.length) { - hash(ts(i)) - i += 1 - } - } - - def findSpeed[A](n: Int, h: (Array[A], A => Unit) => Unit, aa: Array[A], f: A => Unit) = { - (time { for (i <- 1 to n) { h(aa, f) } }._2, aa.length.toLong * n) - } - - def reportSpeed[A](repeats: Int, xs: List[(String, () => (Long, Long))]) { - val tn = Array.fill(xs.length)((0L, 0L)) - for (j <- 1 to repeats) { - for ((l, i) <- xs zipWithIndex) { - val x = l._2() - tn(i) = (tn(i)._1 + x._1, tn(i)._2 + x._2) - } - } - for (((t, n), (title, _)) <- (tn zip xs)) { - val rate = (n * 1e-6) / (t * 1e-9) - printf("Hash rate for %s: %4.2f million/second\n", title, rate) - } - } - - def main(args: Array[String]) { - val bl = makeBinaryLists - val is = makeIntSets - val nt = makeNestedTuples - // Uncomment the following for string stats if MurmurHash3 available - val cs = makeCharStrings - report("Java String hash for strings", { hashCharStrings(cs, defaultHashString); HashHist.resultAndReset }) - report("MurmurHash3 for strings", { hashCharStrings(cs, murmurHashString); HashHist.resultAndReset }) - HashHist.enabled = false - reportSpeed(3, List( - ("Java string hash", () => findSpeed[String](30, (x, y) => hashCharStrings(x, y), cs, defaultHashString)), - ("MurmurHash3 string hash", () => findSpeed[String](30, (x, y) => hashCharStrings(x, y), cs, murmurHashString)))) - // reportSpeed("Java string hash",30,hashCharStrings.tupled,cs,defaultHashString) - // reportSpeed("MurmurHash3 string hash",30,hashCharStrings.tupled,cs,murmurHashString) - HashHist.enabled = true - report("lists of binary int lists", { hashBinaryLists(bl, defaultHashList); HashHist.resultAndReset }) - report("small integer sets", { hashIntSets(is, defaultHashSets); HashHist.resultAndReset }) - report("small nested tuples", { hashNestedTuples(nt, defaultHashTuples); HashHist.resultAndReset }) - HashHist.enabled = false - reportSpeed(3, List( - ("lists of lists of binary ints", () => findSpeed(20, hashBinaryLists, bl, defaultHashList)), - ("small integer sets", () => findSpeed(10, hashIntSets, is, defaultHashSets)), - ("small nested tuples", () => findSpeed(5, hashNestedTuples, nt, defaultHashTuples)))) - } -} diff --git a/test/disabled/coder/Coder.scala b/test/disabled/coder/Coder.scala index 4e29c2a6ee..b116a41a5d 100644 --- a/test/disabled/coder/Coder.scala +++ b/test/disabled/coder/Coder.scala @@ -10,7 +10,7 @@ class SeqCoder(words: List[String]) { '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' */ + /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit @@ -65,7 +65,7 @@ class ParCoder(words: List[String]) { '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' */ + /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit @@ -168,7 +168,7 @@ object Test { /* */ def main(args : Array[String]) { - // import scala.concurrent.forkjoin.ForkJoinPool + // import java.util.concurrent.ForkJoinPool // collection.parallel.tasksupport.environment match { // case fj: ForkJoinPool => fj.setParallelism(1) // } diff --git a/test/disabled/pos/spec-List.scala b/test/disabled/pos/spec-List.scala index b31e035c1b..6bed08ae8a 100644 --- a/test/disabled/pos/spec-List.scala +++ b/test/disabled/pos/spec-List.scala @@ -438,7 +438,7 @@ case object Nil extends List[Nothing] { throw new NoSuchElementException("head of empty list") override def tail: List[Nothing] = throw new NoSuchElementException("tail of empty list") - // Removal of equals method here might lead to an infinite recusion similar to IntMap.equals. + // Removal of equals method here might lead to an infinite recursion similar to IntMap.equals. override def equals(that: Any) = that match { case that1: Seq[_] => that1.isEmpty case _ => false diff --git a/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala b/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala index da0b63006a..97bb710e29 100644 --- a/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala +++ b/test/disabled/presentation/akka/src/akka/actor/ActorRef.scala @@ -1384,7 +1384,7 @@ trait ScalaActorRef extends ActorRefShared { ref: ActorRef => "\n\tYou have probably: " + "\n\t\t1. Sent a message to an Actor from an instance that is NOT an Actor." + "\n\t\t2. Invoked a method on an TypedActor from an instance NOT an TypedActor." + - "\n\tElse you might want to use 'reply_?' which returns Boolean(true) if succes and Boolean(false) if no sender in scope") + "\n\tElse you might want to use 'reply_?' which returns Boolean(true) if success and Boolean(false) if no sender in scope") /** * Use <code>reply_?(..)</code> to reply with a message to the original sender of the message currently diff --git a/test/disabled/run/applet-prop.scala b/test/disabled/run/applet-prop.scala index 9c29dfd979..7a98c25cab 100644 --- a/test/disabled/run/applet-prop.scala +++ b/test/disabled/run/applet-prop.scala @@ -8,7 +8,7 @@ class S extends javax.swing.JApplet { object Test extends SecurityTest { val s = new S - // lazy val TestKey = sys.SystemProperties.noTraceSupression.key + // lazy val TestKey = sys.SystemProperties.noTraceSuppression.key // def hitPerm() = new Throwable with scala.util.control.ControlThrowable { } // // var throwing = false diff --git a/test/disabled/run/coder2/Coder2.scala b/test/disabled/run/coder2/Coder2.scala index 43b2e9bcb8..c1ec70b842 100644 --- a/test/disabled/run/coder2/Coder2.scala +++ b/test/disabled/run/coder2/Coder2.scala @@ -10,7 +10,7 @@ class SeqCoder(words: List[String]) { '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' */ + /** Invert the mnemonics map to give a map from chars 'A' ... 'Z' to '2' ... '9' */ private val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit diff --git a/test/disabled/run/indylambda-specialization.scala b/test/disabled/run/indylambda-specialization.scala new file mode 100644 index 0000000000..2c66073e90 --- /dev/null +++ b/test/disabled/run/indylambda-specialization.scala @@ -0,0 +1,15 @@ +object Test { + def assertApply(expected: Boolean) = { + val frames = Thread.currentThread.getStackTrace.takeWhile(_.getMethodName != "main") + val usesObjectApply = frames.exists(_.getMethodName == "apply") + assert(expected == usesObjectApply, frames.mkString("\n")) + } + def assertSpecialized() = assertApply(false) + def assertUnspecialized() = assertApply(true) + def main(args: Array[String]): Unit = { + ((i: String) => {assertUnspecialized(); i}).apply("") + (() => {assertSpecialized(); 0}).apply() + ((i: Int) => {assertSpecialized(); i}).apply(0) + ((i: Int, j: Int) => {assertSpecialized(); i + j}).apply(0, 0) + } +} diff --git a/test/files/jvm/future-spec.check b/test/files/jvm/future-spec.check index 5c80aa5586..50c5d446af 100644 --- a/test/files/jvm/future-spec.check +++ b/test/files/jvm/future-spec.check @@ -1 +1 @@ -warning: there were 21 deprecation warnings; re-run with -deprecation for details +warning: there were 20 deprecation warnings; re-run with -deprecation for details diff --git a/test/files/jvm/future-spec/FutureTests.scala b/test/files/jvm/future-spec/FutureTests.scala index 6b34d5bfaa..abcf1b4cbc 100644 --- a/test/files/jvm/future-spec/FutureTests.scala +++ b/test/files/jvm/future-spec/FutureTests.scala @@ -37,7 +37,7 @@ class FutureTests extends MinimalScalaTest { "A future with custom ExecutionContext" should { "shouldHandleThrowables" in { val ms = new mutable.HashSet[Throwable] with mutable.SynchronizedSet[Throwable] - implicit val ec = scala.concurrent.ExecutionContext.fromExecutor(new scala.concurrent.forkjoin.ForkJoinPool(), { + implicit val ec = scala.concurrent.ExecutionContext.fromExecutor(new java.util.concurrent.ForkJoinPool(), { t => ms += t }) diff --git a/test/files/jvm/innerClassAttribute.check b/test/files/jvm/innerClassAttribute.check deleted file mode 100644 index 7c697f9053..0000000000 --- a/test/files/jvm/innerClassAttribute.check +++ /dev/null @@ -1,54 +0,0 @@ -#partest -Ydelambdafy:inline --- A4 -- -A4$$anonfun$f$1 / null / null / 17 -A4$$anonfun$f$1 / null / null / 17 -A4 / f / (Lscala/collection/immutable/List;)Lscala/collection/immutable/List; --- A19 -- -A19$$anonfun$1 / null / null / 17 -A19$$anonfun$2 / null / null / 17 -A19$$anonfun$3 / null / null / 17 -A19$$anonfun$1 / null / null / 17 -A19$$anonfun$2 / null / null / 17 -A19$$anonfun$3 / null / null / 17 -A19 / null / null -A19 / null / null -A19 / null / null --- A20 -- -A20$$anonfun$4 / null / null / 17 -fun1: attribute for itself and the two child closures `() => ()` and `() => () => 1` -A20$$anonfun$4 / null / null / 17 -A20$$anonfun$4$$anonfun$apply$1 / null / null / 17 -A20$$anonfun$4$$anonfun$apply$2 / null / null / 17 -fun2 () => (): itself and the outer closure -A20$$anonfun$4 / null / null / 17 -A20$$anonfun$4$$anonfun$apply$1 / null / null / 17 -fun3 () => () => (): itself, the outer closure and its child closure -A20$$anonfun$4 / null / null / 17 -A20$$anonfun$4$$anonfun$apply$2 / null / null / 17 -A20$$anonfun$4$$anonfun$apply$2$$anonfun$apply$3 / null / null / 17 -fun4: () => 1: itself and the two outer closures -A20$$anonfun$4 / null / null / 17 -A20$$anonfun$4$$anonfun$apply$2 / null / null / 17 -A20$$anonfun$4$$anonfun$apply$2$$anonfun$apply$3 / null / null / 17 -enclosing: nested closures have outer class defined, but no outer method -A20 / null / null -A20$$anonfun$4 / null / null -A20$$anonfun$4 / null / null -A20$$anonfun$4$$anonfun$apply$2 / null / null -#partest !-Ydelambdafy:inline --- A4 -- -null / null / null --- A19 -- -null / null / null -null / null / null -null / null / null --- A20 -- -fun1: attribute for itself and the two child closures `() => ()` and `() => () => 1` -fun2 () => (): itself and the outer closure -fun3 () => () => (): itself, the outer closure and its child closure -fun4: () => 1: itself and the two outer closures -enclosing: nested closures have outer class defined, but no outer method -null / null / null -null / null / null -null / null / null -null / null / null diff --git a/test/files/jvm/innerClassAttribute/Classes_1.scala b/test/files/jvm/innerClassAttribute/Classes_1.scala index 62c7d94d90..2b690bdd7b 100644 --- a/test/files/jvm/innerClassAttribute/Classes_1.scala +++ b/test/files/jvm/innerClassAttribute/Classes_1.scala @@ -187,41 +187,30 @@ trait A24 extends A24Base { } class SI_9105 { - // the EnclosingMethod attributes depend on the delambdafy strategy (inline vs method) - - // outerClass-inline enclMeth-inline outerClass-method enclMeth-method + // outerClass enclMeth val fun = (s: String) => { - class A // closure null (*) SI_9105 null - def m: Object = { class B; new B } // closure m$1 SI_9105 m$1 - val f: Object = { class C; new C } // closure null (*) SI_9105 null + class A // SI_9105 null + def m: Object = { class B; new B } // SI_9105 m$1 + val f: Object = { class C; new C } // SI_9105 null } def met = (s: String) => { - class D // closure null (*) SI_9105 met - def m: Object = { class E; new E } // closure m$1 SI_9105 m$1 - val f: Object = { class F; new F } // closure null (*) SI_9105 met + class D // SI_9105 met + def m: Object = { class E; new E } // SI_9105 m$1 + val f: Object = { class F; new F } // SI_9105 met } - // (*) the originalOwner chain of A (similar for D) is: SI_9105.fun.$anonfun-value.A - // we can get to the anonfun-class (created by uncurry), but not to the apply method. - // - // for C and F, the originalOwner chain is fun.$anonfun-value.f.C. at later phases, the rawowner of f is - // an apply$sp method of the closure class. we could use that as enclosing method, but it would be unsystematic - // (A / D don't have an encl meth either), and also strange to use the $sp, which is a compilation artifact. - // So using `null` looks more like the situation in the source code: C / F are nested classes of the anon-fun, and - // there's no method in between. - def byName(op: => Any) = 0 val bnV = byName { - class G // closure null (*) SI_9105 null - def m: Object = { class H; new H } // closure m$1 SI_9105 m$1 - val f: Object = { class I; new I } // closure null (*) SI_9105 null + class G // SI_9105 null + def m: Object = { class H; new H } // SI_9105 m$1 + val f: Object = { class I; new I } // SI_9105 null "" } def bnM = byName { - class J // closure null (*) SI_9105 bnM - def m: Object = { class K; new K } // closure m$1 SI_9105 m$1 - val f: Object = { class L; new L } // closure null (*) SI_9105 bnM + class J // SI_9105 bnM + def m: Object = { class K; new K } // SI_9105 m$1 + val f: Object = { class L; new L } // SI_9105 bnM "" } } diff --git a/test/files/jvm/innerClassAttribute/Test.scala b/test/files/jvm/innerClassAttribute/Test.scala index 376b3c895b..702e5e279a 100644 --- a/test/files/jvm/innerClassAttribute/Test.scala +++ b/test/files/jvm/innerClassAttribute/Test.scala @@ -78,9 +78,9 @@ object Test extends BytecodeTest { println(s"${e.outerClass} / ${e.name} / ${e.descriptor}") } - def lambdaClass(anonfunName: String, lambdaName: String): String = { - if (classpath.findClass(anonfunName).isDefined) anonfunName else lambdaName - } + + val methodHandlesLookup = assertMember(_: InnerClassNode, "java/lang/invoke/MethodHandles", "Lookup", flags = publicStatic | Flags.ACC_FINAL) + def testA1() = { val List(b1) = innerClassNodes("A1") @@ -109,11 +109,7 @@ object Test extends BytecodeTest { } def testA4() = { - println("-- A4 --") - printInnerClassNodes("A4") - val fun = lambdaClass("A4$$anonfun$f$1", "A4$lambda$$f$1") - printInnerClassNodes(fun) - printEnclosingMethod(fun) + testInner("A4", methodHandlesLookup) } def testA5() = { @@ -149,9 +145,7 @@ object Test extends BytecodeTest { def testA11() = { val List(ann) = innerClassNodes("A11") - // in the java class file, the INNERCLASS attribute has more flags (public | static | abstract | interface | annotation) - // the scala compiler has its own interpretation of java annotations ant their flags.. it only emits publicStatic. - assertMember(ann, "JavaAnnot_1", "Ann", flags = publicStatic) + assertMember(ann, "JavaAnnot_1", "Ann", flags = publicAbstractInterface | Flags.ACC_STATIC | Flags.ACC_ANNOTATION) } def testA13() = { @@ -247,47 +241,11 @@ object Test extends BytecodeTest { } def testA19() = { - println("-- A19 --") - - printInnerClassNodes("A19") - - val fun1 = lambdaClass("A19$$anonfun$1", "A19$lambda$1") - val fun2 = lambdaClass("A19$$anonfun$2", "A19$lambda$2") - val fun3 = lambdaClass("A19$$anonfun$3", "A19$lambda$3") - - printInnerClassNodes(fun1) - printInnerClassNodes(fun2) - printInnerClassNodes(fun3) - - printEnclosingMethod(fun1) - printEnclosingMethod(fun2) - printEnclosingMethod(fun3) + testInner("A19", methodHandlesLookup) } def testA20() = { - println("-- A20 --") - - printInnerClassNodes("A20") - - val fun1 = lambdaClass("A20$$anonfun$4", "A20$lambda$1") - val fun2 = lambdaClass("A20$$anonfun$4$$anonfun$apply$1", "A20$lambda$$$nestedInAnonfun$5$1") - val fun3 = lambdaClass("A20$$anonfun$4$$anonfun$apply$2", "A20$lambda$$$nestedInAnonfun$5$2") - val fun4 = lambdaClass("A20$$anonfun$4$$anonfun$apply$2$$anonfun$apply$3", "A20$lambda$$$nestedInAnonfun$7$1") - - println("fun1: attribute for itself and the two child closures `() => ()` and `() => () => 1`") - printInnerClassNodes(fun1) - println("fun2 () => (): itself and the outer closure") - printInnerClassNodes(fun2) - println("fun3 () => () => (): itself, the outer closure and its child closure") - printInnerClassNodes(fun3) - println("fun4: () => 1: itself and the two outer closures") - printInnerClassNodes(fun4) - - println("enclosing: nested closures have outer class defined, but no outer method") - printEnclosingMethod(fun1) - printEnclosingMethod(fun2) - printEnclosingMethod(fun3) - printEnclosingMethod(fun4) + testInner("A20", methodHandlesLookup) } def testA21() = { @@ -337,70 +295,30 @@ object Test extends BytecodeTest { } def testSI_9105() { - val isDelambdafyMethod = classpath.findClass("SI_9105$lambda$1").isDefined - if (isDelambdafyMethod) { - assertEnclosingMethod ("SI_9105$A$3" , "SI_9105", null , null) - assertEnclosingMethod ("SI_9105$B$5" , "SI_9105", "m$1", "()Ljava/lang/Object;") - assertEnclosingMethod ("SI_9105$C$1" , "SI_9105", null , null) - assertEnclosingMethod ("SI_9105$D$1" , "SI_9105", "met", "()Lscala/Function1;") - assertEnclosingMethod ("SI_9105$E$1" , "SI_9105", "m$3", "()Ljava/lang/Object;") - assertEnclosingMethod ("SI_9105$F$1" , "SI_9105", "met", "()Lscala/Function1;") - assertNoEnclosingMethod("SI_9105$lambda$$met$1") - assertNoEnclosingMethod("SI_9105$lambda$1") - assertNoEnclosingMethod("SI_9105") - - assertLocal(innerClassNodes("SI_9105$A$3").head, "SI_9105$A$3", "A$3") - assertLocal(innerClassNodes("SI_9105$B$5").head, "SI_9105$B$5", "B$5") - assertLocal(innerClassNodes("SI_9105$C$1").head, "SI_9105$C$1", "C$1") - assertLocal(innerClassNodes("SI_9105$D$1").head, "SI_9105$D$1", "D$1") - assertLocal(innerClassNodes("SI_9105$E$1").head, "SI_9105$E$1", "E$1") - assertLocal(innerClassNodes("SI_9105$F$1").head, "SI_9105$F$1", "F$1") - - // by-name - assertEnclosingMethod("SI_9105$G$1", "SI_9105", null , null) - assertEnclosingMethod("SI_9105$H$1", "SI_9105", "m$2", "()Ljava/lang/Object;") - assertEnclosingMethod("SI_9105$I$1", "SI_9105", null , null) - assertEnclosingMethod("SI_9105$J$1", "SI_9105", "bnM", "()I") - assertEnclosingMethod("SI_9105$K$2", "SI_9105", "m$4", "()Ljava/lang/Object;") - assertEnclosingMethod("SI_9105$L$1", "SI_9105", "bnM", "()I") - - assert(innerClassNodes("SI_9105$lambda$$met$1").isEmpty) - assert(innerClassNodes("SI_9105$lambda$1").isEmpty) - assert(innerClassNodes("SI_9105").length == 12) // the 12 local classes - } else { - // comment in innerClassAttribute/Classes_1.scala explains the difference between A / C and D / F. - assertEnclosingMethod ("SI_9105$$anonfun$5$A$3" , "SI_9105$$anonfun$5" , null , null) - assertEnclosingMethod ("SI_9105$$anonfun$5$B$5" , "SI_9105$$anonfun$5" , "m$1" , "()Ljava/lang/Object;") - assertEnclosingMethod ("SI_9105$$anonfun$5$C$1" , "SI_9105$$anonfun$5" , null , null) - assertEnclosingMethod ("SI_9105$$anonfun$met$1$D$1", "SI_9105$$anonfun$met$1", null , null) - assertEnclosingMethod ("SI_9105$$anonfun$met$1$E$1", "SI_9105$$anonfun$met$1", "m$3" , "()Ljava/lang/Object;") - assertEnclosingMethod ("SI_9105$$anonfun$met$1$F$1", "SI_9105$$anonfun$met$1", null , null) - assertEnclosingMethod ("SI_9105$$anonfun$5" , "SI_9105" , null , null) - assertEnclosingMethod ("SI_9105$$anonfun$met$1" , "SI_9105" , "met" , "()Lscala/Function1;") - assertNoEnclosingMethod("SI_9105") - - assertLocal(ownInnerClassNode("SI_9105$$anonfun$5$A$3"), "SI_9105$$anonfun$5$A$3" , "A$3") - assertLocal(ownInnerClassNode("SI_9105$$anonfun$5$B$5"), "SI_9105$$anonfun$5$B$5" , "B$5") - assertLocal(ownInnerClassNode("SI_9105$$anonfun$5$C$1"), "SI_9105$$anonfun$5$C$1" , "C$1") - assertLocal(ownInnerClassNode("SI_9105$$anonfun$met$1$D$1"), "SI_9105$$anonfun$met$1$D$1", "D$1") - assertLocal(ownInnerClassNode("SI_9105$$anonfun$met$1$E$1"), "SI_9105$$anonfun$met$1$E$1", "E$1") - assertLocal(ownInnerClassNode("SI_9105$$anonfun$met$1$F$1"), "SI_9105$$anonfun$met$1$F$1", "F$1") - - // by-name - assertEnclosingMethod("SI_9105$$anonfun$6$G$1", "SI_9105$$anonfun$6", null, null) - assertEnclosingMethod("SI_9105$$anonfun$6$H$1", "SI_9105$$anonfun$6", "m$2", "()Ljava/lang/Object;") - assertEnclosingMethod("SI_9105$$anonfun$6$I$1", "SI_9105$$anonfun$6", null, null) - assertEnclosingMethod("SI_9105$$anonfun$bnM$1$J$1", "SI_9105$$anonfun$bnM$1", null, null) - assertEnclosingMethod("SI_9105$$anonfun$bnM$1$K$2", "SI_9105$$anonfun$bnM$1", "m$4", "()Ljava/lang/Object;") - assertEnclosingMethod("SI_9105$$anonfun$bnM$1$L$1", "SI_9105$$anonfun$bnM$1", null, null) - - assertAnonymous(ownInnerClassNode("SI_9105$$anonfun$5"), "SI_9105$$anonfun$5") - assertAnonymous(ownInnerClassNode("SI_9105$$anonfun$met$1"), "SI_9105$$anonfun$met$1") - - assert(innerClassNodes("SI_9105$$anonfun$5").length == 4) // itself and three of the local classes - assert(innerClassNodes("SI_9105$$anonfun$met$1").length == 4) // itself and three of the local classes - assert(innerClassNodes("SI_9105").length == 4) // the four anon funs - } + assertEnclosingMethod ("SI_9105$A$3" , "SI_9105", null , null) + assertEnclosingMethod ("SI_9105$B$5" , "SI_9105", "m$1", "()Ljava/lang/Object;") + assertEnclosingMethod ("SI_9105$C$1" , "SI_9105", null , null) + assertEnclosingMethod ("SI_9105$D$1" , "SI_9105", "met", "()Lscala/Function1;") + assertEnclosingMethod ("SI_9105$E$1" , "SI_9105", "m$3", "()Ljava/lang/Object;") + assertEnclosingMethod ("SI_9105$F$1" , "SI_9105", "met", "()Lscala/Function1;") + assertNoEnclosingMethod("SI_9105") + + assertLocal(innerClassNodes("SI_9105$A$3").head, "SI_9105$A$3", "A$3") + assertLocal(innerClassNodes("SI_9105$B$5").head, "SI_9105$B$5", "B$5") + assertLocal(innerClassNodes("SI_9105$C$1").head, "SI_9105$C$1", "C$1") + assertLocal(innerClassNodes("SI_9105$D$1").head, "SI_9105$D$1", "D$1") + assertLocal(innerClassNodes("SI_9105$E$1").head, "SI_9105$E$1", "E$1") + assertLocal(innerClassNodes("SI_9105$F$1").head, "SI_9105$F$1", "F$1") + + // by-name + assertEnclosingMethod("SI_9105$G$1", "SI_9105", null , null) + assertEnclosingMethod("SI_9105$H$1", "SI_9105", "m$2", "()Ljava/lang/Object;") + assertEnclosingMethod("SI_9105$I$1", "SI_9105", null , null) + assertEnclosingMethod("SI_9105$J$1", "SI_9105", "bnM", "()I") + assertEnclosingMethod("SI_9105$K$2", "SI_9105", "m$4", "()Ljava/lang/Object;") + assertEnclosingMethod("SI_9105$L$1", "SI_9105", "bnM", "()I") + + assert(innerClassNodes("SI_9105").length == 13) // the 12 local classes, plus MethodHandles$Lookup } def testSI_9124() { @@ -530,37 +448,8 @@ object Test extends BytecodeTest { testInner("NestedInValueClass$A$B", am, b) testInner("NestedInValueClass$A$C$2", am, c) - val isDelambdafyMethod = classpath.findClass("NestedInValueClass$A$lambda$$f$extension$1").isDefined - if (isDelambdafyMethod) { - List( - "NestedInValueClass$A$lambda$$g$2$1", - "NestedInValueClass$A$lambda$$f$extension$1", - "NestedInValueClass$A$lambda$$$nestedInAnonfun$13$1", - "NestedInValueClass$A$lambda$$NestedInValueClass$A$$$nestedInAnonfun$15$1").foreach(assertNoEnclosingMethod) - testInner("NestedInValueClass$A", a, am) - testInner("NestedInValueClass$A$", a, am, b, c) - testInner("NestedInValueClass$A$lambda$$g$2$1", am) - testInner("NestedInValueClass$A$lambda$$f$extension$1", am) - testInner("NestedInValueClass$A$lambda$$$nestedInAnonfun$13$1", am) - testInner("NestedInValueClass$A$lambda$$NestedInValueClass$A$$$nestedInAnonfun$15$1", am) - } else { - assertEnclosingMethod("NestedInValueClass$A$$anonfun$g$2$1" , "NestedInValueClass$A" , null, null) - assertEnclosingMethod("NestedInValueClass$A$$anonfun$g$2$1$$anonfun$apply$4" , "NestedInValueClass$A$$anonfun$g$2$1" , null, null) - assertEnclosingMethod("NestedInValueClass$A$$anonfun$f$extension$1" , "NestedInValueClass$A" , "f", "()Lscala/collection/immutable/List;") - assertEnclosingMethod("NestedInValueClass$A$$anonfun$f$extension$1$$anonfun$apply$5", "NestedInValueClass$A$$anonfun$f$extension$1", null, null) - - val gfun = assertAnonymous(_: I, "NestedInValueClass$A$$anonfun$g$2$1") - val ffun = assertAnonymous(_: I, "NestedInValueClass$A$$anonfun$f$extension$1") - val gfunfun = assertAnonymous(_: I, "NestedInValueClass$A$$anonfun$g$2$1$$anonfun$apply$4") - val ffunfun = assertAnonymous(_: I, "NestedInValueClass$A$$anonfun$f$extension$1$$anonfun$apply$5") - - testInner("NestedInValueClass$A", a, am, ffun, gfun) - testInner("NestedInValueClass$A$", a, am, ffun, gfun, b, c) - testInner("NestedInValueClass$A$$anonfun$g$2$1", a, am, gfun, gfunfun) - testInner("NestedInValueClass$A$$anonfun$g$2$1$$anonfun$apply$4", am, gfun, gfunfun) - testInner("NestedInValueClass$A$$anonfun$f$extension$1", a, am, ffun, ffunfun) - testInner("NestedInValueClass$A$$anonfun$f$extension$1$$anonfun$apply$5", am, ffun, ffunfun) - } + testInner("NestedInValueClass$A", a, am) + testInner("NestedInValueClass$A$", a, am, b, c, methodHandlesLookup) } def show(): Unit = { diff --git a/test/files/jvm/innerClassEnclMethodJavaReflection.scala b/test/files/jvm/innerClassEnclMethodJavaReflection.scala index ee39cb43bf..a4d64d0b67 100644 --- a/test/files/jvm/innerClassEnclMethodJavaReflection.scala +++ b/test/files/jvm/innerClassEnclMethodJavaReflection.scala @@ -8,7 +8,7 @@ object Test extends App { // Some classes in scala-compiler.jar have references to jline / ant classes, which seem to be // not on the classpath. We just skip over those classes. // PENDING: for now we also allow missing $anonfun classes: the optimizer may eliminate some closures - // that are refferred to in EnclosingClass attributes. SI-9136 + // that are referred to in EnclosingClass attributes. SI-9136 val allowedMissingPackages = Set("jline", "org.apache.tools.ant", "$anonfun") def ok(t: Throwable) = { diff --git a/test/files/jvm/interpreter.check b/test/files/jvm/interpreter.check index 9e875235c7..ce3c8062d7 100644 --- a/test/files/jvm/interpreter.check +++ b/test/files/jvm/interpreter.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> // basics @@ -32,7 +30,7 @@ scala> val four: anotherint = 4 four: anotherint = 4 scala> val bogus: anotherint = "hello" -<console>:11: error: type mismatch; +<console>:12: error: type mismatch; found : String("hello") required: anotherint (which expands to) Int @@ -355,7 +353,7 @@ defined class Term scala> def f(e: Exp) = e match { // non-exhaustive warning here case _:Fact => 3 } -<console>:21: warning: match may not be exhaustive. +<console>:22: warning: match may not be exhaustive. It would fail on the following inputs: Exp(), Term() def f(e: Exp) = e match { // non-exhaustive warning here ^ @@ -365,6 +363,6 @@ scala> :quit plusOne: (x: Int)Int res0: Int = 6 res0: String = after reset -<console>:11: error: not found: value plusOne +<console>:12: error: not found: value plusOne plusOne(5) // should be undefined now ^ diff --git a/test/files/jvm/javaReflection.check b/test/files/jvm/javaReflection.check index 83518c7990..5f7aafe77c 100644 --- a/test/files/jvm/javaReflection.check +++ b/test/files/jvm/javaReflection.check @@ -1,86 +1,3 @@ -#partest -Ydelambdafy:inline -A$$anonfun$$lessinit$greater$1 / null (canon) / $anonfun$$lessinit$greater$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A (cls) / public A(int) (constr) / null (meth) -- properties : true (local) / false (member) -A$$anonfun$$lessinit$greater$1$$anonfun$apply$1 / null (canon) / $anonfun$apply$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A$$anonfun$$lessinit$greater$1 (cls) / null (constr) / null (meth) -- properties : true (local) / false (member) -A$$anonfun$2 / null (canon) / $anonfun$2 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A (cls) / null (constr) / null (meth) -- properties : true (local) / false (member) -A$$anonfun$3 / null (canon) / $anonfun$3 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A (cls) / null (constr) / null (meth) -- properties : true (local) / false (member) -A$$anonfun$4 / null (canon) / $anonfun$4 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A (cls) / null (constr) / null (meth) -- properties : true (local) / false (member) -A$$anonfun$f$1 / null (canon) / $anonfun$f$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth) -- properties : true (local) / false (member) -A$$anonfun$f$2 / null (canon) / $anonfun$f$2 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A (cls) / null (constr) / public java.lang.Object A.f() (meth) -- properties : true (local) / false (member) -A$D$$anonfun$1 / null (canon) / anonfun$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class A$D$ (cls) / null (constr) / null (meth) -- properties : true (local) / false (member) -AO$$anonfun$5 / null (canon) / anonfun$5 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / class AO$ (cls) / null (constr) / null (meth) -- properties : true (local) / false (member) -AT$$anonfun$6 / null (canon) / $anonfun$6 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / interface AT (cls) / null (constr) / null (meth) -- properties : true (local) / false (member) -#partest !-Ydelambdafy:inline -A$D$lambda$1 / A$D$lambda$1 (canon) / A$D$lambda$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -A$lambda$$$lessinit$greater$1 / A$lambda$$$lessinit$greater$1 (canon) / A$lambda$$$lessinit$greater$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -A$lambda$$$nestedInAnonfun$7$1 / A$lambda$$$nestedInAnonfun$7$1 (canon) / A$lambda$$$nestedInAnonfun$7$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -A$lambda$$f$1 / A$lambda$$f$1 (canon) / A$lambda$$f$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -A$lambda$$f$2 / A$lambda$$f$2 (canon) / A$lambda$$f$2 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -A$lambda$1 / A$lambda$1 (canon) / A$lambda$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -A$lambda$2 / A$lambda$2 (canon) / A$lambda$2 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -A$lambda$3 / A$lambda$3 (canon) / A$lambda$3 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -AO$lambda$1 / AO$lambda$1 (canon) / AO$lambda$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -AT$class$lambda$1 / AT$class$lambda$1 (canon) / AT$class$lambda$1 (simple) -- declared cls: List() -- enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) -- properties : false (local) / false (member) -#partest A / A (canon) / A (simple) - declared cls: List(class A$B, interface A$C, class A$D$) - enclosing : null (declaring cls) / null (cls) / null (constr) / null (meth) diff --git a/test/files/jvm/patmat_opt_ignore_underscore/test.scala b/test/files/jvm/patmat_opt_ignore_underscore/test.scala index 6179101a7e..d6630e80a0 100644 --- a/test/files/jvm/patmat_opt_ignore_underscore/test.scala +++ b/test/files/jvm/patmat_opt_ignore_underscore/test.scala @@ -1,3 +1,6 @@ +/* + * filter: inliner warning; re-run with + */ import scala.tools.partest.BytecodeTest import scala.tools.nsc.util.JavaClassPath diff --git a/test/files/jvm/patmat_opt_no_nullcheck/test.scala b/test/files/jvm/patmat_opt_no_nullcheck/test.scala index 2927e763d5..d02c929e01 100644 --- a/test/files/jvm/patmat_opt_no_nullcheck/test.scala +++ b/test/files/jvm/patmat_opt_no_nullcheck/test.scala @@ -1,3 +1,6 @@ +/* + * filter: inliner warning; re-run with + */ import scala.tools.partest.BytecodeTest object Test extends BytecodeTest { diff --git a/test/files/jvm/scala-concurrent-tck.check b/test/files/jvm/scala-concurrent-tck.check index bbe73c9982..9aef07d1e5 100644 --- a/test/files/jvm/scala-concurrent-tck.check +++ b/test/files/jvm/scala-concurrent-tck.check @@ -1 +1 @@ -warning: there were 74 deprecation warnings; re-run with -deprecation for details +warning: there were 73 deprecation warnings; re-run with -deprecation for details diff --git a/test/files/jvm/scala-concurrent-tck.scala b/test/files/jvm/scala-concurrent-tck.scala index ba405e97bd..8069028cf5 100644 --- a/test/files/jvm/scala-concurrent-tck.scala +++ b/test/files/jvm/scala-concurrent-tck.scala @@ -629,7 +629,7 @@ trait BlockContexts extends TestBase { // test BlockContext in our default ExecutionContext def testDefaultFJP(): Unit = { val bc = getBlockContext(BlockContext.current) - assert(bc.isInstanceOf[scala.concurrent.forkjoin.ForkJoinWorkerThread]) + assert(bc.isInstanceOf[java.util.concurrent.ForkJoinWorkerThread]) } // test BlockContext inside BlockContext.withBlockContext diff --git a/test/files/jvm/t7146.check b/test/files/jvm/t7146.check index 7c76040205..b2c6e444f7 100644 --- a/test/files/jvm/t7146.check +++ b/test/files/jvm/t7146.check @@ -1,5 +1,4 @@ -should be scala.concurrent.impl.ExecutionContextImpl == true -should be scala.concurrent.forkjoin.ForkJoinPool == true +ExecutionContext.global is a scala.concurrent.impl.ExecutionContextImpl. should have non-null UncaughtExceptionHandler == true -should be a scala.concurrent.impl.ExecutionContextImpl UncaughtExceptionHandler == true -should just print out on uncaught == true +ExecutionContext.global.executor.getUncaughtExceptionHandler is a scala.concurrent.impl.ExecutionContextImpl. +should just print out on uncaught: true diff --git a/test/files/jvm/t7146.scala b/test/files/jvm/t7146.scala index ea734472d5..89030730a9 100644 --- a/test/files/jvm/t7146.scala +++ b/test/files/jvm/t7146.scala @@ -5,21 +5,21 @@ import scala.concurrent._ import scala.util.control.NoStackTrace object Test { - def main(args: Array[String]) { - println("should be scala.concurrent.impl.ExecutionContextImpl == " + - ExecutionContext.global.toString.startsWith("scala.concurrent.impl.ExecutionContextImpl")) - val i = ExecutionContext.global.asInstanceOf[{ def executor: Executor }] - println("should be scala.concurrent.forkjoin.ForkJoinPool == " + - (i.executor.getClass.getSuperclass.getName == "scala.concurrent.forkjoin.ForkJoinPool")) - val u = i.executor. + def main(args: Array[String]): Unit = { + val ec = ExecutionContext.global.toString + if (ec startsWith "scala.concurrent.impl.ExecutionContextImpl") + println("ExecutionContext.global is a scala.concurrent.impl.ExecutionContextImpl.") + else println(s"!! ExecutionContext.global == $ec") + + val u = ExecutionContext.global.asInstanceOf[{ def executor: Executor }].executor. asInstanceOf[{ def getUncaughtExceptionHandler: Thread.UncaughtExceptionHandler }]. getUncaughtExceptionHandler - println("should have non-null UncaughtExceptionHandler == " + (u ne null)) - println("should be a scala.concurrent.impl.ExecutionContextImpl UncaughtExceptionHandler == " + - u.toString.startsWith("scala.concurrent.impl.ExecutionContextImpl")) - print("should just print out on uncaught == ") - u.uncaughtException(Thread.currentThread, new Throwable { - override def printStackTrace() { println("true") } - }) + println(s"should have non-null UncaughtExceptionHandler == ${u ne null}") + if (u.toString startsWith "scala.concurrent.impl.ExecutionContextImpl") + println("ExecutionContext.global.executor.getUncaughtExceptionHandler is a scala.concurrent.impl.ExecutionContextImpl.") + else println(s"!! ExecutionContext.global.executor.getUncaughtExceptionHandler == $u") + + print("should just print out on uncaught: ") + u.uncaughtException(Thread.currentThread, new Throwable { override def printStackTrace() { println("true") } }) } } diff --git a/test/files/jvm/throws-annot-from-java.check b/test/files/jvm/throws-annot-from-java.check index c541b26fcc..ace264a4f5 100644 --- a/test/files/jvm/throws-annot-from-java.check +++ b/test/files/jvm/throws-annot-from-java.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :power ** Power User mode enabled - BEEP WHIR GYVE ** diff --git a/test/files/jvm/xml05.check b/test/files/jvm/xml05.check index cad907525d..d456c5e1e4 100644 --- a/test/files/jvm/xml05.check +++ b/test/files/jvm/xml05.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> <city name="San José"/> res0: scala.xml.Elem = <city name="San José"/> diff --git a/test/files/neg/incompatibleSettings.check b/test/files/neg/incompatibleSettings.check new file mode 100644 index 0000000000..0f28d41825 --- /dev/null +++ b/test/files/neg/incompatibleSettings.check @@ -0,0 +1,6 @@ +warning: Conflicting compiler settings were detected. Some settings will be ignored. +Compiler settings for the 2.11 optimizer (-optimise) are incompatible with -Ybackend:GenBCode (which is the default in 2.12). +The optimizer settings are ignored. See -Yopt:help for enabling the new optimizer in 2.12. +error: No warnings can be incurred under -Xfatal-warnings. +one warning found +one error found diff --git a/test/files/neg/incompatibleSettings.flags b/test/files/neg/incompatibleSettings.flags new file mode 100644 index 0000000000..00dd9c1c24 --- /dev/null +++ b/test/files/neg/incompatibleSettings.flags @@ -0,0 +1 @@ +-optimise -Ybackend:GenBCode -Xfatal-warnings diff --git a/test/files/neg/incompatibleSettings.scala b/test/files/neg/incompatibleSettings.scala new file mode 100644 index 0000000000..826a1a5bc2 --- /dev/null +++ b/test/files/neg/incompatibleSettings.scala @@ -0,0 +1 @@ +class C diff --git a/test/files/neg/inlineIndyLambdaPrivate.check b/test/files/neg/inlineIndyLambdaPrivate.check new file mode 100644 index 0000000000..dbd142f59e --- /dev/null +++ b/test/files/neg/inlineIndyLambdaPrivate.check @@ -0,0 +1,16 @@ +Test_2.scala:2: warning: A_1::test()Ljava/lang/String; could not be inlined: +The callee A_1::test()Ljava/lang/String; contains the instruction INVOKEDYNAMIC m()LA_1$Fun; [ + // handle kind 0x6 : INVOKESTATIC + java/lang/invoke/LambdaMetafactory.metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + // arguments: + (Ljava/lang/String;)Ljava/lang/String;, + // handle kind 0x6 : INVOKESTATIC + A_1.lambda$test$0(Ljava/lang/String;)Ljava/lang/String;, + (Ljava/lang/String;)Ljava/lang/String; + ] +that would cause an IllegalAccessError when inlined into class Test. + def foo = A_1.test + ^ +error: No warnings can be incurred under -Xfatal-warnings. +one warning found +one error found diff --git a/test/files/neg/inlineIndyLambdaPrivate.flags b/test/files/neg/inlineIndyLambdaPrivate.flags new file mode 100644 index 0000000000..01b466bd8c --- /dev/null +++ b/test/files/neg/inlineIndyLambdaPrivate.flags @@ -0,0 +1 @@ +-Yopt:l:classpath -Yopt-inline-heuristics:everything -Yopt-warnings:_ -Xfatal-warnings
\ No newline at end of file diff --git a/test/files/neg/inlineIndyLambdaPrivate/A_1.java b/test/files/neg/inlineIndyLambdaPrivate/A_1.java new file mode 100644 index 0000000000..a9144a9fa6 --- /dev/null +++ b/test/files/neg/inlineIndyLambdaPrivate/A_1.java @@ -0,0 +1,9 @@ +public class A_1 { + interface Fun { + String m(String s); + } + public static final String test() { + Fun f = s -> s.trim(); + return f.m(" eh "); + } +} diff --git a/test/files/neg/inlineIndyLambdaPrivate/Test_2.scala b/test/files/neg/inlineIndyLambdaPrivate/Test_2.scala new file mode 100644 index 0000000000..dd59c05176 --- /dev/null +++ b/test/files/neg/inlineIndyLambdaPrivate/Test_2.scala @@ -0,0 +1,3 @@ +class Test { + def foo = A_1.test +} diff --git a/test/files/neg/macro-invalidshape.check b/test/files/neg/macro-invalidshape.check index aa694df6d6..5093b87598 100644 --- a/test/files/neg/macro-invalidshape.check +++ b/test/files/neg/macro-invalidshape.check @@ -8,8 +8,9 @@ macro [<static object>].<method name>[[<type args>]] or macro [<macro bundle>].<method name>[[<type args>]] def foo2(x: Any) = macro Impls.foo(null)(null) ^ -Macros_Test_2.scala:4: error: missing arguments for method foo in object Impls; -follow this method with `_' if you want to treat it as a partially applied function +Macros_Test_2.scala:4: error: missing argument list for method foo in object Impls +Unapplied methods are only converted to functions when a function type is expected. +You can make this conversion explicit by writing `foo _` or `foo(_)(_)` instead of `foo`. def foo3(x: Any) = macro {2; Impls.foo} ^ Macros_Test_2.scala:7: error: macro implementation reference has wrong shape. required: diff --git a/test/files/neg/missing-arg-list.check b/test/files/neg/missing-arg-list.check new file mode 100644 index 0000000000..5a011c36f2 --- /dev/null +++ b/test/files/neg/missing-arg-list.check @@ -0,0 +1,21 @@ +missing-arg-list.scala:9: error: missing argument list for method id in trait T +Unapplied methods are only converted to functions when a function type is expected. +You can make this conversion explicit by writing `id _` or `id(_)` instead of `id`. + val w = id + ^ +missing-arg-list.scala:10: error: missing argument list for method f in trait T +Unapplied methods are only converted to functions when a function type is expected. +You can make this conversion explicit by writing `f _` or `f(_)(_)` instead of `f`. + val x = f + ^ +missing-arg-list.scala:11: error: missing argument list for method g in trait T +Unapplied methods are only converted to functions when a function type is expected. +You can make this conversion explicit by writing `g _` or `g(_,_,_)` instead of `g`. + val y = g + ^ +missing-arg-list.scala:12: error: missing argument list for method h in trait T +Unapplied methods are only converted to functions when a function type is expected. +You can make this conversion explicit by writing `h _` or `h(_,_,_)(_)` instead of `h`. + val z = h + ^ +four errors found diff --git a/test/files/neg/missing-arg-list.scala b/test/files/neg/missing-arg-list.scala new file mode 100644 index 0000000000..c422dd32fe --- /dev/null +++ b/test/files/neg/missing-arg-list.scala @@ -0,0 +1,13 @@ + +trait T { + + def id(i: Int) = i + def f(i: Int)(j: Int) = i+j + def g(i: Int, j: Int, k: Int) = i+j+k + def h(i: Int, j: Int, k: Int)(implicit s: String) = s*(i+j+k) + + val w = id + val x = f + val y = g + val z = h +} diff --git a/test/files/neg/sealed-final-neg.flags b/test/files/neg/sealed-final-neg.flags index cfabf7a5b4..3f0fcd2201 100644 --- a/test/files/neg/sealed-final-neg.flags +++ b/test/files/neg/sealed-final-neg.flags @@ -1 +1 @@ --Xfatal-warnings -Yinline-warnings -optimise
\ No newline at end of file +-Xfatal-warnings -Ybackend:GenASM -Yinline-warnings -optimise
\ No newline at end of file diff --git a/test/files/neg/t4425.flags b/test/files/neg/t4425.flags deleted file mode 100644 index 1182725e86..0000000000 --- a/test/files/neg/t4425.flags +++ /dev/null @@ -1 +0,0 @@ --optimize
\ No newline at end of file diff --git a/test/files/neg/t5120.scala b/test/files/neg/t5120.scala index f28b2cfb4f..0df67bc09b 100644 --- a/test/files/neg/t5120.scala +++ b/test/files/neg/t5120.scala @@ -12,7 +12,7 @@ object Test { str.x1.length } } -// another way demonstrating the same underlying problem, as reported by roman kalukiewicz +// another way demonstrating the same underlying problem, as reported by Roman Kalukiewicz class Holder[_T](_f1 : _T, _f2 : _T) { type T = _T diff --git a/test/files/neg/t5639b.flags b/test/files/neg/t5639b.flags new file mode 100644 index 0000000000..90b87663af --- /dev/null +++ b/test/files/neg/t5639b.flags @@ -0,0 +1 @@ +-Xsource:2.11
\ No newline at end of file diff --git a/test/files/neg/t6013/Base.java b/test/files/neg/t6013/Base.java index b73d7fd821..ce6ee47e64 100644 --- a/test/files/neg/t6013/Base.java +++ b/test/files/neg/t6013/Base.java @@ -2,7 +2,7 @@ abstract public class Base { // This must considered to be overridden by Abstract#foo based // on the erased signatures. This special case is handled by // `javaErasedOverridingSym` in `RefChecks`. - public abstract void bar(java.util.List<java.lang.String> foo) { return; } + public void bar(java.util.List<java.lang.String> foo) { return; } // But, a concrete method in a Java superclass must not excuse // a deferred method in the Java subclass! diff --git a/test/files/neg/t6895.check b/test/files/neg/t6895.check new file mode 100644 index 0000000000..df01031fff --- /dev/null +++ b/test/files/neg/t6895.check @@ -0,0 +1,6 @@ +t6895.scala:19: error: polymorphic expression cannot be instantiated to expected type; + found : [F3[F3_P]]Foo[F3] + required: Foo[[X3]Bar[[X1]String]] + val nok: Foo[({type L[X3] = Bar[M]})#L] = barFoo /* Type inference can't unify F with L */ + ^ +one error found diff --git a/test/files/neg/t6895.scala b/test/files/neg/t6895.scala new file mode 100644 index 0000000000..5fb20d8c61 --- /dev/null +++ b/test/files/neg/t6895.scala @@ -0,0 +1,26 @@ +trait Foo[F1[F1_P]] +trait Bar[F2[F2_P]] + +class Test { + def barFoo[F3[F3_P]]: Foo[F3] = ??? + + // Now we can define a couple of type aliases: + type M[X1] = String + type N[X2] = Bar[M] + + // val ok1: Foo[N] = barFoo + // Foo[?F3] <:< Foo[Test.this.N] + // [X2]Test.this.N[X2] <:< [F3_P]?F3[F3_P] + // Test.this.N[X2] <:< ?F3[X2] + // true, ?F3=N + + // val ok2: Foo[({type L[X] = Bar[M]})#L] = barFoo[N] + + val nok: Foo[({type L[X3] = Bar[M]})#L] = barFoo /* Type inference can't unify F with L */ + // Foo[?F3] <:< Foo[[X3]Bar[[X1]String]] + // [X3]Bar[[X1]String] <:< ?F3 + // [X3]Bar[[X1]String] <:< [F3_P]?F3[F3_P] + // Bar[[X1]String] <:< ?F3[X3] + // X3 <:< [X1]String + // false +} diff --git a/test/files/neg/t6895b.check b/test/files/neg/t6895b.check new file mode 100644 index 0000000000..565925127b --- /dev/null +++ b/test/files/neg/t6895b.check @@ -0,0 +1,9 @@ +t6895b.scala:20: error: could not find implicit value for parameter e: Foo[[X]Bar[[X]Or[String,X],X]] + implicitly[Foo[({type L[X] = Bar[StringOr, X]})#L]] + ^ +t6895b.scala:23: error: polymorphic expression cannot be instantiated to expected type; + found : [F[_]]Foo[[X(in type L)]Bar[F,X(in type L)]] + required: Foo[[X(in type L)]Bar[[X]Or[String,X],X(in type L)]] + barFoo(null) : Foo[({type L[X] = Bar[StringOr, X]})#L] + ^ +two errors found diff --git a/test/files/neg/t6895b.scala b/test/files/neg/t6895b.scala new file mode 100644 index 0000000000..c465065011 --- /dev/null +++ b/test/files/neg/t6895b.scala @@ -0,0 +1,39 @@ +trait Foo[F[_]] +trait Bar[F[_], A] + +trait Or[A, B] + +class Test { + implicit def orFoo[A]: Foo[({type L[X] = Or[A, X]})#L] = ??? + implicit def barFoo[F[_]](implicit f: Foo[F]): Foo[({type L[X] = Bar[F, X]})#L] = ??? + + // Now we can define a couple of type aliases: + type StringOr[X] = Or[String, X] + type BarStringOr[X] = Bar[StringOr, X] + + // ok + implicitly[Foo[BarStringOr]] + barFoo[StringOr](null) : Foo[BarStringOr] + barFoo(null) : Foo[BarStringOr] + + // nok + implicitly[Foo[({type L[X] = Bar[StringOr, X]})#L]] + // Let's write the application explicitly, and then + // compile with just this line enabled and -explaintypes. + barFoo(null) : Foo[({type L[X] = Bar[StringOr, X]})#L] + + // Foo[[X]Bar[F,X]] <: Foo[[X]Bar[[X]Or[String,X],X]]? + // Bar[[X]Or[String,X],X] <: Bar[F,X]? + // F[_] <: Or[String,_]? + // false + // false + // false + + // Note that the type annotation above is typechecked as + // Foo[[X]Bar[[X]Or[String,X],X]], ie the type alias `L` + // is eta expanded. + // + // This is done so that it does not escape its defining scope. + // However, one this is done, higher kinded inference + // no longer is able to unify F with `StringOr` (SI-2712) +} diff --git a/test/files/neg/t7214neg.scala b/test/files/neg/t7214neg.scala index ff1ea8082d..e2b2d908d8 100644 --- a/test/files/neg/t7214neg.scala +++ b/test/files/neg/t7214neg.scala @@ -1,4 +1,4 @@ -// pattern matcher crashes here trying to synthesize an uneeded outer test. +// pattern matcher crashes here trying to synthesize an unneeded outer test. // no-symbol does not have an owner // at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:49) // at scala.tools.nsc.Global.abort(Global.scala:253) diff --git a/test/files/neg/t836.scala b/test/files/neg/t836.scala index 3633b816c6..4b86d04013 100644 --- a/test/files/neg/t836.scala +++ b/test/files/neg/t836.scala @@ -12,5 +12,5 @@ abstract class A { class B extends A { type MyObj = ObjImpl val myString: S = "hello" - val realString: String = myString // error: type missmatch + val realString: String = myString // error: type mismatch } diff --git a/test/files/neg/t8675b.scala b/test/files/neg/t8675b.scala index 2c5015b1d0..bffed2141c 100644 --- a/test/files/neg/t8675b.scala +++ b/test/files/neg/t8675b.scala @@ -13,7 +13,7 @@ object Test { // in the backend. // // This error is itself a regression (or at least a change) in 2.11.0-M7, - // specifically in SI-7944. The type paramaters to the implicit view + // specifically in SI-7944. The type parameters to the implicit view // `EngineTools1` are undetermined, and are now treated as type variables // in the expected type of the closure argument to `withFilter`. for (path: List[Any] <- (null : Engine1).asRequirement.pathsIncludingSelf.toList) { diff --git a/test/files/neg/t8777.check b/test/files/neg/t8777.check new file mode 100644 index 0000000000..cd05f1ec11 --- /dev/null +++ b/test/files/neg/t8777.check @@ -0,0 +1,6 @@ +t8777.scala:3: error: type mismatch; + found : Foo.this.TreePrinter(in trait Printers) + required: Foo.this.TreePrinter(in trait Printers) + super.newCodePrinter(out, tree, printRootPkg) + ^ +one error found diff --git a/test/files/neg/t8777.scala b/test/files/neg/t8777.scala new file mode 100644 index 0000000000..5b7d123202 --- /dev/null +++ b/test/files/neg/t8777.scala @@ -0,0 +1,4 @@ +trait Foo extends scala.tools.nsc.Global { + override def newCodePrinter(out: java.io.PrintWriter, tree: Tree, printRootPkg: Boolean): TreePrinter = + super.newCodePrinter(out, tree, printRootPkg) +} diff --git a/test/files/neg/t8892.check b/test/files/neg/t8892.check new file mode 100644 index 0000000000..5930be58c5 --- /dev/null +++ b/test/files/neg/t8892.check @@ -0,0 +1,7 @@ +t8892.scala:2: error: type mismatch; + found : B + required: C.this.B + (which expands to) String +class C[B](x: B) extends A { def f: B = x } + ^ +one error found diff --git a/test/files/neg/t8892.scala b/test/files/neg/t8892.scala new file mode 100644 index 0000000000..f857e6f115 --- /dev/null +++ b/test/files/neg/t8892.scala @@ -0,0 +1,2 @@ +trait A { type B = String } +class C[B](x: B) extends A { def f: B = x } diff --git a/test/files/neg/t9401.check b/test/files/neg/t9401.check new file mode 100644 index 0000000000..638d56db63 --- /dev/null +++ b/test/files/neg/t9401.check @@ -0,0 +1,4 @@ +t9401.scala:3: error: cannot find class tag for element type T + gencastarray = new Array[T](0) + ^ +one error found diff --git a/test/files/neg/t9401.scala b/test/files/neg/t9401.scala new file mode 100644 index 0000000000..f42ecc7f74 --- /dev/null +++ b/test/files/neg/t9401.scala @@ -0,0 +1,4 @@ +class Resetting[T] { + var gencastarray: Any = null + gencastarray = new Array[T](0) +} diff --git a/test/files/neg/warn-unused-imports.check b/test/files/neg/warn-unused-imports.check index 36c6dd03c3..0a53d7a9cd 100644 --- a/test/files/neg/warn-unused-imports.check +++ b/test/files/neg/warn-unused-imports.check @@ -1,33 +1,55 @@ -warn-unused-imports.scala:57: warning: Unused import +warn-unused-imports_2.scala:133: error: type mismatch; + found : Int(42) + required: Sample.X + f(42) // error + ^ +warn-unused-imports_2.scala:57: warning: Unused import import p1.A // warn ^ -warn-unused-imports.scala:62: warning: Unused import +warn-unused-imports_2.scala:62: warning: Unused import import p1.{ A, B } // warn on A ^ -warn-unused-imports.scala:67: warning: Unused import +warn-unused-imports_2.scala:67: warning: Unused import import p1.{ A, B } // warn on both ^ -warn-unused-imports.scala:67: warning: Unused import +warn-unused-imports_2.scala:67: warning: Unused import import p1.{ A, B } // warn on both ^ -warn-unused-imports.scala:73: warning: Unused import +warn-unused-imports_2.scala:73: warning: Unused import import c._ // warn ^ -warn-unused-imports.scala:78: warning: Unused import +warn-unused-imports_2.scala:78: warning: Unused import import p1._ // warn ^ -warn-unused-imports.scala:85: warning: Unused import +warn-unused-imports_2.scala:85: warning: Unused import import c._ // warn ^ -warn-unused-imports.scala:91: warning: Unused import +warn-unused-imports_2.scala:91: warning: Unused import import p1.c._ // warn ^ -warn-unused-imports.scala:98: warning: Unused import +warn-unused-imports_2.scala:98: warning: Unused import import p1._ // warn ^ -warn-unused-imports.scala:118: warning: Unused import +warn-unused-imports_2.scala:118: warning: Unused import import p1.A // warn ^ -error: No warnings can be incurred under -Xfatal-warnings. -10 warnings found +warn-unused-imports_2.scala:132: warning: Unused import + import Sample.Implicits._ // warn + ^ +warn-unused-imports_2.scala:143: warning: Unused import + import Sample.Implicits.useless // warn + ^ +warn-unused-imports_2.scala:147: warning: Unused import + import java.io.File // warn + ^ +warn-unused-imports_2.scala:148: warning: Unused import + import scala.concurrent.Future // warn + ^ +warn-unused-imports_2.scala:149: warning: Unused import + import scala.concurrent.ExecutionContext.Implicits.global // warn + ^ +warn-unused-imports_2.scala:150: warning: Unused import + import p1.A // warn + ^ +16 warnings found one error found diff --git a/test/files/neg/warn-unused-imports/sample_1.scala b/test/files/neg/warn-unused-imports/sample_1.scala new file mode 100644 index 0000000000..d2f86239db --- /dev/null +++ b/test/files/neg/warn-unused-imports/sample_1.scala @@ -0,0 +1,17 @@ + +import language._ + +object Sample { + trait X + trait Y + + // import of the non-implicit should be unused + object Implicits { + def `int to X`(i: Int): X = null + implicit def `int to Y`(i: Int): Y = null + implicit def useless(i: Int): String = null + } + + def f(x: X) = ??? + def g(y: Y) = ??? +} diff --git a/test/files/neg/warn-unused-imports.scala b/test/files/neg/warn-unused-imports/warn-unused-imports_2.scala index b7a2f1c414..ded1186209 100644 --- a/test/files/neg/warn-unused-imports.scala +++ b/test/files/neg/warn-unused-imports/warn-unused-imports_2.scala @@ -123,3 +123,33 @@ trait Nested { println(new Warn { }) } } + +// test unusage of imports from other compilation units after implicit search +trait Outsiders { + { + //implicit search should not disable warning + import Sample._ + import Sample.Implicits._ // warn + f(42) // error + } + { + import Sample._ + import Sample.Implicits._ // nowarn + g(42) // ok + } + { + import Sample._ + import Sample.Implicits.`int to Y` // nowarn + import Sample.Implicits.useless // warn + g(42) // ok + } + { + import java.io.File // warn + import scala.concurrent.Future // warn + import scala.concurrent.ExecutionContext.Implicits.global // warn + import p1.A // warn + import p1.B // no warn + println("abc".bippy) + //Future("abc".bippy) + } +} diff --git a/test/files/neg/warn-unused-privates.scala b/test/files/neg/warn-unused-privates.scala index 2faa07e759..2eda280d40 100644 --- a/test/files/neg/warn-unused-privates.scala +++ b/test/files/neg/warn-unused-privates.scala @@ -21,7 +21,7 @@ class B3(msg0: String) extends A("msg") /*** Early defs warnings disabled primarily due to SI-6595. * The test case is here to assure we aren't issuing false positives; - * the ones labeled "warn" don't warn. + * the ones labelled "warn" don't warn. ***/ class Boppy extends { private val hmm: String = "abc" // no warn, used in early defs diff --git a/test/files/pos/inline-access-levels.flags b/test/files/pos/inline-access-levels.flags index 882f40f050..9bda07eb6c 100644 --- a/test/files/pos/inline-access-levels.flags +++ b/test/files/pos/inline-access-levels.flags @@ -1 +1 @@ --optimise -Xfatal-warnings -Yinline-warnings +-optimise -Ybackend:GenASM -Xfatal-warnings -Yinline-warnings diff --git a/test/files/pos/inliner2.flags b/test/files/pos/inliner2.flags index ea03113c66..bff4bb8afa 100644 --- a/test/files/pos/inliner2.flags +++ b/test/files/pos/inliner2.flags @@ -1 +1 @@ --optimise -Xfatal-warnings
\ No newline at end of file +-optimise -Ybackend:GenASM -Xfatal-warnings
\ No newline at end of file diff --git a/test/files/pos/sealed-final.flags b/test/files/pos/sealed-final.flags index cfabf7a5b4..63f5e65527 100644 --- a/test/files/pos/sealed-final.flags +++ b/test/files/pos/sealed-final.flags @@ -1 +1 @@ --Xfatal-warnings -Yinline-warnings -optimise
\ No newline at end of file +-Xfatal-warnings -Yinline-warnings -Ybackend:GenASM -optimise
\ No newline at end of file diff --git a/test/files/pos/t3420.flags b/test/files/pos/t3420.flags index ea03113c66..bff4bb8afa 100644 --- a/test/files/pos/t3420.flags +++ b/test/files/pos/t3420.flags @@ -1 +1 @@ --optimise -Xfatal-warnings
\ No newline at end of file +-optimise -Ybackend:GenASM -Xfatal-warnings
\ No newline at end of file diff --git a/test/files/pos/t6089b.scala b/test/files/pos/t6089b.scala index ff7ca157eb..040987413e 100644 --- a/test/files/pos/t6089b.scala +++ b/test/files/pos/t6089b.scala @@ -1,5 +1,5 @@ // this crazy code simply tries to nest pattern matches so that the last call is in a tricky-to-determine -// tail position (my initial tightenign of tailpos detection for SI-6089 ruled this out) +// tail position (my initial tightening of tailpos detection for SI-6089 ruled this out) class BKTree { @annotation.tailrec final def -?-[AA](a: AA): Boolean = this match { diff --git a/test/files/pos/t6601/UsePrivateValueClass_2.scala b/test/files/pos/t6601/UsePrivateValueClass_2.scala index 461b8397b2..3b2b3dcc21 100644 --- a/test/files/pos/t6601/UsePrivateValueClass_2.scala +++ b/test/files/pos/t6601/UsePrivateValueClass_2.scala @@ -1,5 +1,5 @@ object Test { - // After the first attempt to make seprately compiled value + // After the first attempt to make separately compiled value // classes respect the privacy of constructors, we got: // // exception when typing v.a().==(v.a())/class scala.reflect.internal.Trees$Apply diff --git a/test/files/pos/t7689.scala b/test/files/pos/t7689.scala index 022e7ab7a0..72cca99bc0 100644 --- a/test/files/pos/t7689.scala +++ b/test/files/pos/t7689.scala @@ -2,6 +2,6 @@ object A { // The default getter must have an explicit return type (List[_] => Int) // This wasn't happening since e28c3edda4. That commit encoded upper/lower // bounds of Any/Nothing as EmptyTree, which were triggering an .isEmpty - // check in Namers#TypeTreeSubstitutor + // check in Namers#TypeTreeSubstituter def x(f: List[_] => Int = _ => 3) = 9 } diff --git a/test/files/pos/t8111.scala b/test/files/pos/t8111.scala index 0d63a16ba4..09463ce697 100644 --- a/test/files/pos/t8111.scala +++ b/test/files/pos/t8111.scala @@ -7,10 +7,10 @@ trait T { foo((u: Unit) => ma) foo(0, (u: Any) => ma) apply () - // crash due to side effects on the onwer of the symbol in the + // crash due to side effects on the owner of the symbol in the // qualifier or arguments of the application during an abandoned - // names/defaults transform. The code type checkes because of - // autp-tupling which promotes and empty parmater list to `(): Unit` + // names/defaults transform. The code type checks because of + // auto-tupling which promotes an empty parameter list to `(): Unit` foo((u: Any) => ma)() {{(u: Any) => ma}; this}.foo(0)() diff --git a/test/files/pos/t8410.flags b/test/files/pos/t8410.flags index dcd5943c2f..2f32e3b26a 100644 --- a/test/files/pos/t8410.flags +++ b/test/files/pos/t8410.flags @@ -1 +1 @@ --optimise -Xfatal-warnings -deprecation:false -Yinline-warnings:false +-optimise -Ybackend:GenASM -Xfatal-warnings -deprecation:false -Yinline-warnings:false diff --git a/test/files/pos/t8954/t2.scala b/test/files/pos/t8954/t2.scala index 4def127832..c178486bc9 100644 --- a/test/files/pos/t8954/t2.scala +++ b/test/files/pos/t8954/t2.scala @@ -19,7 +19,7 @@ class C { } // 2.1 overriding with a deprecated def should be fine -// and also shoudln't trigger the "deprecation is useless" +// and also should not trigger the "deprecation is useless" // warning class D extends C { @deprecated("","") override def foo(): Unit = ??? diff --git a/test/files/pos/t9370/ThePlugin.scala b/test/files/pos/t9370/ThePlugin.scala new file mode 100644 index 0000000000..cd800781dc --- /dev/null +++ b/test/files/pos/t9370/ThePlugin.scala @@ -0,0 +1,31 @@ +package scala.test.plugins + +import scala.tools.nsc +import nsc.Global +import nsc.Phase +import nsc.plugins.Plugin +import nsc.plugins.PluginComponent + +class ThePlugin(val global: Global) extends Plugin { + import global._ + + val name = "timebomb" + val description = "Explodes if run. Maybe I haven't implemented it yet." + val components = List[PluginComponent](thePhase1) + + private object thePhase1 extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]("parser") + override val runsBefore = List[String]("namer") + val phaseName = ThePlugin.this.name + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private class ThePhase(prev: Phase) extends Phase(prev) { + override def name = ThePlugin.this.name + override def run = ??? + } +} + diff --git a/test/files/pos/t9370/sample_2.flags b/test/files/pos/t9370/sample_2.flags new file mode 100644 index 0000000000..03baca3030 --- /dev/null +++ b/test/files/pos/t9370/sample_2.flags @@ -0,0 +1 @@ +-Xplugin:/tmp:. -Xplugin-require:timebomb -Ystop-after:parser diff --git a/test/files/pos/t9370/sample_2.scala b/test/files/pos/t9370/sample_2.scala new file mode 100644 index 0000000000..7eb11b8204 --- /dev/null +++ b/test/files/pos/t9370/sample_2.scala @@ -0,0 +1,6 @@ + +package sample + +// just a sample that is compiled with the explosive plugin disabled +object Sample extends App { +} diff --git a/test/files/pos/t9370/scalac-plugin.xml b/test/files/pos/t9370/scalac-plugin.xml new file mode 100644 index 0000000000..2558d6fd03 --- /dev/null +++ b/test/files/pos/t9370/scalac-plugin.xml @@ -0,0 +1,5 @@ +<plugin> + <name>ignored</name> + <classname>scala.test.plugins.ThePlugin</classname> +</plugin> + diff --git a/test/files/pos/t9392/client_2.scala b/test/files/pos/t9392/client_2.scala new file mode 100644 index 0000000000..6b706fea12 --- /dev/null +++ b/test/files/pos/t9392/client_2.scala @@ -0,0 +1,4 @@ +class Client { + Macro() +} + diff --git a/test/files/pos/t9392/macro_1.scala b/test/files/pos/t9392/macro_1.scala new file mode 100644 index 0000000000..3f67ac17b2 --- /dev/null +++ b/test/files/pos/t9392/macro_1.scala @@ -0,0 +1,16 @@ +import language.experimental.macros + + +object Macro { + + import reflect.macros.blackbox.Context + def impl(c: Context)(): c.Tree = { + import c.universe._ + val tree = q"""class C; new C""" + val tree1 = c.typecheck(tree) + val tpe = tree1.tpe + val tree2 = c.typecheck(c.untypecheck(tree1)) + q"""$tree2.asInstanceOf[$tpe]""" + } + def apply(): Any = macro impl +} diff --git a/test/files/pos/t9393/NamedImpl_1.java b/test/files/pos/t9393/NamedImpl_1.java new file mode 100644 index 0000000000..02ec9b4671 --- /dev/null +++ b/test/files/pos/t9393/NamedImpl_1.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2009-2015 Typesafe Inc. <http://www.typesafe.com> + */ +package bug; + +import bug.Named_1; +import java.io.Serializable; +import java.lang.annotation.Annotation; + +public class NamedImpl_1 implements Named_1 { + + public Class<? extends Annotation> annotationType() { + return null; + } +} diff --git a/test/files/pos/t9393/NamedImpl_2.java b/test/files/pos/t9393/NamedImpl_2.java new file mode 100644 index 0000000000..c87e94016d --- /dev/null +++ b/test/files/pos/t9393/NamedImpl_2.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2009-2015 Typesafe Inc. <http://www.typesafe.com> + */ +package bug; + +import bug.Named_2; +import java.io.Serializable; +import java.lang.annotation.Annotation; + +public class NamedImpl_2 implements Named_2 { + + public Class<? extends Annotation> annotationType() { + return null; + } +} diff --git a/test/files/pos/t9393/Named_1.java b/test/files/pos/t9393/Named_1.java new file mode 100644 index 0000000000..30a6c9839a --- /dev/null +++ b/test/files/pos/t9393/Named_1.java @@ -0,0 +1,3 @@ +package bug; + +public @interface Named_1 {} diff --git a/test/files/pos/t9393/Named_2.java b/test/files/pos/t9393/Named_2.java new file mode 100644 index 0000000000..3210fb636a --- /dev/null +++ b/test/files/pos/t9393/Named_2.java @@ -0,0 +1,3 @@ +package bug; + +public @interface Named_2 {} diff --git a/test/files/pos/t9393/test_2.scala b/test/files/pos/t9393/test_2.scala new file mode 100644 index 0000000000..8ea346129d --- /dev/null +++ b/test/files/pos/t9393/test_2.scala @@ -0,0 +1,4 @@ +class C { + new bug.NamedImpl_1 // separate compilation, testing the classfile parser + new bug.NamedImpl_2 // mixed compilation, testing the java source parser +} diff --git a/test/files/presentation/t8941b/IdempotencyTest.scala b/test/files/presentation/t8941b/IdempotencyTest.scala index af01b36898..ffbbc0d03b 100644 --- a/test/files/presentation/t8941b/IdempotencyTest.scala +++ b/test/files/presentation/t8941b/IdempotencyTest.scala @@ -6,9 +6,9 @@ import reporters.{Reporter => CompilerReporter} import scala.tools.nsc.interactive.InteractiveReporter import scala.reflect.internal.util.SourceFile -/** Determistically interrupts typechecking of `code` when a defintion named - * `MagicInterruptionMarker` is typechecked, and then performs a targetted - * typecheck of the tree at the specal comment marker marker +/** Deterministically interrupts typechecking of `code` when a definition named + * `MagicInterruptionMarker` is typechecked, and then performs a targeted + * typecheck of the tree at the special comment marker marker */ abstract class IdempotencyTest { self => private val settings = new Settings diff --git a/test/files/run/ReplacementMatching.scala b/test/files/run/ReplacementMatching.scala index 05040d98a3..81034aa510 100644 --- a/test/files/run/ReplacementMatching.scala +++ b/test/files/run/ReplacementMatching.scala @@ -32,12 +32,12 @@ object Test { 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.") { + for (Regex.Groups(a, b, c) <- Date findFirstMatchIn "1/1/2001 marks the start of the millennium. 31/12/2000 doesn't.") { assert(a == "1") assert(b == "1") assert(c == "2001") } - for (Regex.Groups(a, b, c) <- (Date findAllIn "1/1/2001 marks the start of the millenium. 31/12/2000 doesn't.").matchData) { + for (Regex.Groups(a, b, c) <- (Date findAllIn "1/1/2001 marks the start of the millennium. 31/12/2000 doesn't.").matchData) { assert(a == "1" || a == "31") assert(b == "1" || b == "12") assert(c == "2001" || c == "2000") diff --git a/test/files/run/blame_eye_triple_eee-double.flags b/test/files/run/blame_eye_triple_eee-double.flags deleted file mode 100644 index c9b68d70dc..0000000000 --- a/test/files/run/blame_eye_triple_eee-double.flags +++ /dev/null @@ -1 +0,0 @@ --optimise diff --git a/test/files/run/blame_eye_triple_eee-float.flags b/test/files/run/blame_eye_triple_eee-float.flags deleted file mode 100644 index c9b68d70dc..0000000000 --- a/test/files/run/blame_eye_triple_eee-float.flags +++ /dev/null @@ -1 +0,0 @@ --optimise diff --git a/test/files/run/class-symbol-contravariant.check b/test/files/run/class-symbol-contravariant.check index cbb90b52c2..1d95273b50 100644 --- a/test/files/run/class-symbol-contravariant.check +++ b/test/files/run/class-symbol-contravariant.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :power ** Power User mode enabled - BEEP WHIR GYVE ** diff --git a/test/files/run/classfile-format-51.scala b/test/files/run/classfile-format-51.scala index da322bb5d9..3ef0640b84 100644 --- a/test/files/run/classfile-format-51.scala +++ b/test/files/run/classfile-format-51.scala @@ -13,10 +13,10 @@ import Opcodes._ // // By its nature the test can only work on JDK 7+ because under JDK 6 some of the // classes referred to by DynamicInvoker won't be available and DynamicInvoker won't -// verify. So the test includes a version check that short-circuites the whole test +// verify. So the test includes a version check that short-circuits the whole test // on JDK 6 object Test extends DirectTest { - override def extraSettings: String = "-optimise -usejavacp -d " + testOutput.path + " -cp " + testOutput.path + override def extraSettings: String = "-Yopt:l:classpath -usejavacp -d " + testOutput.path + " -cp " + testOutput.path def generateClass() { val invokerClassName = "DynamicInvoker" diff --git a/test/files/run/classfile-format-52.scala b/test/files/run/classfile-format-52.scala index e278d40b8b..ebd0826303 100644 --- a/test/files/run/classfile-format-52.scala +++ b/test/files/run/classfile-format-52.scala @@ -13,7 +13,7 @@ import Opcodes._ // By its nature the test can only work on JDK 8+ because under JDK 7- the // interface won't verify. object Test extends DirectTest { - override def extraSettings: String = "-optimise -usejavacp -d " + testOutput.path + " -cp " + testOutput.path + override def extraSettings: String = "-Yopt:l:classpath -usejavacp -d " + testOutput.path + " -cp " + testOutput.path def generateInterface() { val interfaceName = "HasDefaultMethod" diff --git a/test/files/run/complicatedmatch.scala b/test/files/run/complicatedmatch.scala index 681029aa13..1676a4115a 100644 --- a/test/files/run/complicatedmatch.scala +++ b/test/files/run/complicatedmatch.scala @@ -7,7 +7,7 @@ object Even{ } object Test extends App{ - val LongWord = "supercalifragilisticexpialadocious"; + val LongWord = "supercalifragilisticexpialidocious"; def foo(x : Int, y : String) : Int = (x, y) match { case (Even(i), "bar") => 1 diff --git a/test/files/run/constant-optimization.flags b/test/files/run/constant-optimization.flags index c9b68d70dc..6c9965e749 100644 --- a/test/files/run/constant-optimization.flags +++ b/test/files/run/constant-optimization.flags @@ -1 +1 @@ --optimise +-optimise -Ybackend:GenASM diff --git a/test/files/run/constant-type.check b/test/files/run/constant-type.check index a7ba5a46c2..b92f1481a3 100644 --- a/test/files/run/constant-type.check +++ b/test/files/run/constant-type.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :power ** Power User mode enabled - BEEP WHIR GYVE ** diff --git a/test/files/run/constrained-types.check b/test/files/run/constrained-types.check index 6dbf8088c9..5444cf2088 100644 --- a/test/files/run/constrained-types.check +++ b/test/files/run/constrained-types.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class Annot(obj: Any) extends annotation.Annotation with annotation.TypeConstraint defined class Annot @@ -135,16 +133,16 @@ y: String = hello scala> scala> val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message -<console>:11: error: not found: value e +<console>:12: error: not found: value e val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message ^ -<console>:11: error: not found: value f +<console>:12: error: not found: value f val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message ^ -<console>:11: error: not found: value g +<console>:12: error: not found: value g val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message ^ -<console>:11: error: not found: value h +<console>:12: error: not found: value h val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message ^ diff --git a/test/files/run/dead-code-elimination.flags b/test/files/run/dead-code-elimination.flags index 49d036a887..b9bb09167e 100644 --- a/test/files/run/dead-code-elimination.flags +++ b/test/files/run/dead-code-elimination.flags @@ -1 +1 @@ --optimize +-optimize -Ybackend:GenASM diff --git a/test/files/run/delambdafyLambdaClassNames.check b/test/files/run/delambdafyLambdaClassNames.check deleted file mode 100644 index d425d15dd0..0000000000 --- a/test/files/run/delambdafyLambdaClassNames.check +++ /dev/null @@ -1 +0,0 @@ -A$$nestedInAnon$1$lambda$$run$1 diff --git a/test/files/run/delambdafyLambdaClassNames.flags b/test/files/run/delambdafyLambdaClassNames.flags deleted file mode 100644 index b10233d322..0000000000 --- a/test/files/run/delambdafyLambdaClassNames.flags +++ /dev/null @@ -1 +0,0 @@ --Ybackend:GenBCode -Ydelambdafy:method
\ No newline at end of file diff --git a/test/files/run/delambdafyLambdaClassNames/A_1.scala b/test/files/run/delambdafyLambdaClassNames/A_1.scala deleted file mode 100644 index 10489414b7..0000000000 --- a/test/files/run/delambdafyLambdaClassNames/A_1.scala +++ /dev/null @@ -1,5 +0,0 @@ -class A { - def f = new Runnable { - def run(): Unit = List(1,2).foreach(println) - } -} diff --git a/test/files/run/delambdafyLambdaClassNames/Test.scala b/test/files/run/delambdafyLambdaClassNames/Test.scala deleted file mode 100644 index 49a397d1d2..0000000000 --- a/test/files/run/delambdafyLambdaClassNames/Test.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Test extends App { - val c = Class.forName("A$$nestedInAnon$1$lambda$$run$1") - println(c.getName) -} diff --git a/test/files/run/elidable-opt.flags b/test/files/run/elidable-opt.flags index 62897ff218..6537d2f57a 100644 --- a/test/files/run/elidable-opt.flags +++ b/test/files/run/elidable-opt.flags @@ -1 +1 @@ --optimise -Xelide-below 900 +-optimise -Ybackend:GenASM -Xelide-below 900 diff --git a/test/files/run/elidable-opt.scala b/test/files/run/elidable-opt.scala index a2f29d2caf..ebada46de8 100644 --- a/test/files/run/elidable-opt.scala +++ b/test/files/run/elidable-opt.scala @@ -1,3 +1,6 @@ +/* + * filter: inliner warnings; re-run with + */ import annotation._ import elidable._ diff --git a/test/files/run/finally.check b/test/files/run/finally.check index 901a797426..b0f2293d11 100644 --- a/test/files/run/finally.check +++ b/test/files/run/finally.check @@ -29,7 +29,7 @@ body in finally java.lang.Exception ---------------------------------------- -Running nestedFinalies +Running nestedFinallyBlocks in finally 1 in finally 2 ---------------------------------------- diff --git a/test/files/run/finally.scala b/test/files/run/finally.scala index b66354ca03..467c9e5868 100644 --- a/test/files/run/finally.scala +++ b/test/files/run/finally.scala @@ -94,7 +94,7 @@ object Test extends App { } // nested finally blocks with return value - def nestedFinalies: Int = + def nestedFinallyBlocks: Int = try { try { return 10 @@ -123,5 +123,5 @@ object Test extends App { test(throwBody, "throwBody") test(retFinally, "retFinally") test(throwFinally, "throwFinally") - test(nestedFinalies, "nestedFinalies") + test(nestedFinallyBlocks, "nestedFinallyBlocks") } diff --git a/test/files/run/finalvar.flags b/test/files/run/finalvar.flags index aee3039bec..8d9be3d62e 100644 --- a/test/files/run/finalvar.flags +++ b/test/files/run/finalvar.flags @@ -1 +1 @@ --Yoverride-vars -Yinline
\ No newline at end of file +-Yoverride-vars -Yinline -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/icode-reader-dead-code.scala b/test/files/run/icode-reader-dead-code.scala index 00ba58829f..535ef2a2e2 100644 --- a/test/files/run/icode-reader-dead-code.scala +++ b/test/files/run/icode-reader-dead-code.scala @@ -36,7 +36,7 @@ object Test extends DirectTest { // If inlining fails, the compiler will issue an inliner warning that is not present in the // check file - compileString(newCompiler("-usejavacp", "-optimise"))(bCode) + compileString(newCompiler("-usejavacp", "-optimise", "-Ybackend:GenASM"))(bCode) } def readClass(file: String) = { diff --git a/test/files/run/kind-repl-command.check b/test/files/run/kind-repl-command.check index 1853213555..560529ba03 100644 --- a/test/files/run/kind-repl-command.check +++ b/test/files/run/kind-repl-command.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :kind scala.Option scala.Option's kind is F[+A] @@ -21,7 +19,7 @@ scala> :k new { def empty = false } AnyRef{def empty: Boolean}'s kind is A scala> :k Nonexisting -<console>:11: error: not found: value Nonexisting +<console>:12: error: not found: value Nonexisting Nonexisting ^ diff --git a/test/files/run/lub-visibility.check b/test/files/run/lub-visibility.check index 135cb3cb76..61dca979a1 100644 --- a/test/files/run/lub-visibility.check +++ b/test/files/run/lub-visibility.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> // should infer List[scala.collection.immutable.Seq[Nothing]] diff --git a/test/files/run/macro-bundle-repl.check b/test/files/run/macro-bundle-repl.check index 75c5c2adda..ce5c980f6e 100644 --- a/test/files/run/macro-bundle-repl.check +++ b/test/files/run/macro-bundle-repl.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.language.experimental.macros import scala.language.experimental.macros diff --git a/test/files/run/macro-repl-basic.check b/test/files/run/macro-repl-basic.check index fab03d1558..7e1cb61583 100644 --- a/test/files/run/macro-repl-basic.check +++ b/test/files/run/macro-repl-basic.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import language.experimental.macros import language.experimental.macros diff --git a/test/files/run/macro-repl-dontexpand.check b/test/files/run/macro-repl-dontexpand.check index 6ecc9245fa..a307ffb26e 100644 --- a/test/files/run/macro-repl-dontexpand.check +++ b/test/files/run/macro-repl-dontexpand.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> def bar1(c: scala.reflect.macros.blackbox.Context) = ??? bar1: (c: scala.reflect.macros.blackbox.Context)Nothing diff --git a/test/files/run/macro-system-properties.check b/test/files/run/macro-system-properties.check index e2e2bd32b9..e20a5bbdfb 100644 --- a/test/files/run/macro-system-properties.check +++ b/test/files/run/macro-system-properties.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.language.experimental._, scala.reflect.macros.blackbox.Context import scala.language.experimental._ diff --git a/test/files/run/macroPlugins-namerHooks.check b/test/files/run/macroPlugins-namerHooks.check index c2db5935d4..56b170cbd9 100644 --- a/test/files/run/macroPlugins-namerHooks.check +++ b/test/files/run/macroPlugins-namerHooks.check @@ -28,7 +28,7 @@ enterStat(<synthetic> val C$1: C = x$1.asInstanceOf[C]) enterSym(def <init>() = { super.<init>(); () }) enterSym(final override <synthetic> def toString() = "C") enterSym(case <synthetic> def apply(x: Int, y: Int): C = new C(x, y)) -enterSym(case <synthetic> def unapply(x$0: C) = if (x$0.==(null)) scala.this.None else Some(scala.Tuple2(x$0.x, x$0.y))) +enterSym(case <synthetic> def unapply(x$0: C): _root_.scala.Option[scala.Tuple2[Int, Int]] = if (x$0.==(null)) scala.this.None else Some(scala.Tuple2(x$0.x, x$0.y))) enterStat(def <init>() = { super.<init>(); () }) enterStat(final override <synthetic> def toString() = "C") enterSym(def <init>() = { super.<init>(); () }) diff --git a/test/files/run/noInlineUnknownIndy.check b/test/files/run/noInlineUnknownIndy.check new file mode 100644 index 0000000000..7cc6d1b675 --- /dev/null +++ b/test/files/run/noInlineUnknownIndy.check @@ -0,0 +1,13 @@ +newSource1.scala:1: warning: A_1::test()Ljava/lang/String; could not be inlined: +Failed to check if A_1::test()Ljava/lang/String; can be safely inlined to T without causing an IllegalAccessError. Checking instruction INVOKEDYNAMIC m()LA_1$Fun; [ + // handle kind 0x6 : INVOKESTATIC + not/java/lang/SomeLambdaMetafactory.notAMetaFactoryMethod(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; + // arguments: + (Ljava/lang/String;)Ljava/lang/String;, + // handle kind 0x6 : INVOKESTATIC + A_1.lambda$test$0(Ljava/lang/String;)Ljava/lang/String;, + (Ljava/lang/String;)Ljava/lang/String; + ] failed: +The callee contains an InvokeDynamic instruction with an unknown bootstrap method (not a LambdaMetaFactory). +class T { def foo = A_1.test } + ^ diff --git a/test/files/run/noInlineUnknownIndy/A_1.java b/test/files/run/noInlineUnknownIndy/A_1.java new file mode 100644 index 0000000000..a9144a9fa6 --- /dev/null +++ b/test/files/run/noInlineUnknownIndy/A_1.java @@ -0,0 +1,9 @@ +public class A_1 { + interface Fun { + String m(String s); + } + public static final String test() { + Fun f = s -> s.trim(); + return f.m(" eh "); + } +} diff --git a/test/files/run/noInlineUnknownIndy/Test.scala b/test/files/run/noInlineUnknownIndy/Test.scala new file mode 100644 index 0000000000..16d8126543 --- /dev/null +++ b/test/files/run/noInlineUnknownIndy/Test.scala @@ -0,0 +1,28 @@ +import java.io.File + +import scala.collection.convert.decorateAsScala._ +import scala.tools.asm.tree.{ClassNode, InvokeDynamicInsnNode} +import scala.tools.asm.{Handle, Opcodes} +import scala.tools.partest.BytecodeTest.modifyClassFile +import scala.tools.partest._ + +object Test extends DirectTest { + def code = ??? + + def compileCode(code: String) = { + val classpath = List(sys.props("partest.lib"), testOutput.path) mkString sys.props("path.separator") + compileString(newCompiler("-cp", classpath, "-d", testOutput.path, "-Yopt:l:classpath", "-Yopt-inline-heuristics:everything", "-Yopt-warnings:_"))(code) + } + + def show(): Unit = { + val unknownBootstrapMethod = new Handle(Opcodes.H_INVOKESTATIC, "not/java/lang/SomeLambdaMetafactory", "notAMetaFactoryMethod", "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;") + modifyClassFile(new File(testOutput.toFile, "A_1.class"))((cn: ClassNode) => { + val testMethod = cn.methods.iterator.asScala.find(_.name == "test").head + val indy = testMethod.instructions.iterator.asScala.collect({ case i: InvokeDynamicInsnNode => i }).next() + indy.bsm = unknownBootstrapMethod + cn + }) + + compileCode("class T { def foo = A_1.test }") + } +} diff --git a/test/files/run/optimizer-array-load.flags b/test/files/run/optimizer-array-load.flags index eb4d19bcb9..99bd6c895d 100644 --- a/test/files/run/optimizer-array-load.flags +++ b/test/files/run/optimizer-array-load.flags @@ -1 +1 @@ --optimise
\ No newline at end of file +-optimise -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/reflection-equality.check b/test/files/run/reflection-equality.check index d60d861a90..09a0858630 100644 --- a/test/files/run/reflection-equality.check +++ b/test/files/run/reflection-equality.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class X { def methodIntIntInt(x: Int, y: Int) = x+y diff --git a/test/files/run/reflection-magicsymbols-repl.check b/test/files/run/reflection-magicsymbols-repl.check index ca8857ada4..dd26c08349 100644 --- a/test/files/run/reflection-magicsymbols-repl.check +++ b/test/files/run/reflection-magicsymbols-repl.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.runtime.universe._ import scala.reflect.runtime.universe._ diff --git a/test/files/run/reflection-repl-classes.check b/test/files/run/reflection-repl-classes.check index 5ebf993a87..df889b9da6 100644 --- a/test/files/run/reflection-repl-classes.check +++ b/test/files/run/reflection-repl-classes.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class A defined class A diff --git a/test/files/run/reflection-repl-elementary.check b/test/files/run/reflection-repl-elementary.check index e948c9fd61..2a7f5d90fe 100644 --- a/test/files/run/reflection-repl-elementary.check +++ b/test/files/run/reflection-repl-elementary.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> scala.reflect.runtime.universe.typeOf[List[Nothing]] res0: reflect.runtime.universe.Type = scala.List[Nothing] diff --git a/test/files/run/reify-repl-fail-gracefully.check b/test/files/run/reify-repl-fail-gracefully.check index eac4d25869..32ed876356 100644 --- a/test/files/run/reify-repl-fail-gracefully.check +++ b/test/files/run/reify-repl-fail-gracefully.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import language.experimental.macros import language.experimental.macros @@ -10,7 +8,7 @@ import scala.reflect.runtime.universe._ scala> scala> reify -<console>:15: error: too few argument lists for macro invocation +<console>:16: error: too few argument lists for macro invocation reify ^ diff --git a/test/files/run/reify_newimpl_22.check b/test/files/run/reify_newimpl_22.check index 24334df92c..985f646579 100644 --- a/test/files/run/reify_newimpl_22.check +++ b/test/files/run/reify_newimpl_22.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.runtime.universe._ import scala.reflect.runtime.universe._ @@ -17,7 +15,7 @@ scala> { } println(code.eval) } -<console>:18: free term: Ident(TermName("x")) defined by res0 in <console>:17:14 +<console>:19: free term: Ident(TermName("x")) defined by res0 in <console>:18:14 val code = reify { ^ 2 diff --git a/test/files/run/reify_newimpl_23.check b/test/files/run/reify_newimpl_23.check index f8379958db..f60113c69f 100644 --- a/test/files/run/reify_newimpl_23.check +++ b/test/files/run/reify_newimpl_23.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.runtime.universe._ import scala.reflect.runtime.universe._ @@ -16,7 +14,7 @@ scala> def foo[T]{ } println(code.eval) } -<console>:16: free type: Ident(TypeName("T")) defined by foo in <console>:15:16 +<console>:17: free type: Ident(TypeName("T")) defined by foo in <console>:16:16 val code = reify { ^ foo: [T]=> Unit diff --git a/test/files/run/reify_newimpl_25.check b/test/files/run/reify_newimpl_25.check index f9a5d7b578..9104d8df0b 100644 --- a/test/files/run/reify_newimpl_25.check +++ b/test/files/run/reify_newimpl_25.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> { import scala.reflect.runtime.universe._ @@ -7,7 +5,7 @@ scala> { val tt = implicitly[TypeTag[x.type]] println(tt) } -<console>:14: free term: Ident(TermName("x")) defined by res0 in <console>:13:14 +<console>:15: free term: Ident(TermName("x")) defined by res0 in <console>:14:14 val tt = implicitly[TypeTag[x.type]] ^ TypeTag[x.type] diff --git a/test/files/run/reify_newimpl_26.check b/test/files/run/reify_newimpl_26.check index bd77d3d707..cbb21854ba 100644 --- a/test/files/run/reify_newimpl_26.check +++ b/test/files/run/reify_newimpl_26.check @@ -1,12 +1,10 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> def foo[T]{ import scala.reflect.runtime.universe._ val tt = implicitly[WeakTypeTag[List[T]]] println(tt) } -<console>:12: free type: Ident(TypeName("T")) defined by foo in <console>:10:16 +<console>:13: free type: Ident(TypeName("T")) defined by foo in <console>:11:16 val tt = implicitly[WeakTypeTag[List[T]]] ^ foo: [T]=> Unit diff --git a/test/files/run/reify_newimpl_35.check b/test/files/run/reify_newimpl_35.check index bd9b3a2fb1..4f9b43dbbf 100644 --- a/test/files/run/reify_newimpl_35.check +++ b/test/files/run/reify_newimpl_35.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.runtime.universe._ import scala.reflect.runtime.universe._ diff --git a/test/files/run/repl-assign.check b/test/files/run/repl-assign.check index faa8a93244..a9e0a2204a 100644 --- a/test/files/run/repl-assign.check +++ b/test/files/run/repl-assign.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> var x = 10 x: Int = 10 diff --git a/test/files/run/repl-bare-expr.check b/test/files/run/repl-bare-expr.check index 38ad7e818d..e0a1f4ecd6 100644 --- a/test/files/run/repl-bare-expr.check +++ b/test/files/run/repl-bare-expr.check @@ -1,14 +1,12 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> 2 ; 3 -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 2 ;; ^ res0: Int = 3 scala> { 2 ; 3 } -<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:12: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses { 2 ; 3 } ^ res1: Int = 3 @@ -17,16 +15,16 @@ scala> 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Mooo 1 + 2 + 3 } ; bippy+88+11 -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ defined object Cow diff --git a/test/files/run/repl-colon-type.check b/test/files/run/repl-colon-type.check index fa33af3beb..21fbe34d96 100644 --- a/test/files/run/repl-colon-type.check +++ b/test/files/run/repl-colon-type.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :type List[1, 2, 3] <console>:1: error: identifier expected but integer literal found. diff --git a/test/files/run/repl-empty-package.check b/test/files/run/repl-empty-package.check index d3b75f685e..69488ecdcf 100644 --- a/test/files/run/repl-empty-package.check +++ b/test/files/run/repl-empty-package.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> println(Bippy.bippy) bippy! diff --git a/test/files/run/repl-out-dir.check b/test/files/run/repl-out-dir.check index c354492898..6fd85f5bba 100644 --- a/test/files/run/repl-out-dir.check +++ b/test/files/run/repl-out-dir.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> case class Bippy(x: Int) defined class Bippy diff --git a/test/files/run/repl-parens.check b/test/files/run/repl-parens.check index 756a063b68..6516f4ea90 100644 --- a/test/files/run/repl-parens.check +++ b/test/files/run/repl-parens.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> (2) res0: Int = 2 @@ -20,10 +18,10 @@ scala> ( (2 + 2 ) ) res5: Int = 4 scala> 5 ; ( (2 + 2 ) ) ; ((5)) -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; ( (2 + 2 ) ) ;; ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; ( (2 + 2 ) ) ;; ^ res6: Int = 5 @@ -40,16 +38,16 @@ res9: String = 4423 scala> scala> 55 ; ((2 + 2)) ; (1, 2, 3) -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ; ((2 + 2)) ;; ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ; ((2 + 2)) ;; ^ res10: (Int, Int, Int) = (1,2,3) scala> 55 ; (x: Int) => x + 1 ; () => ((5)) -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ; (x: Int) => x + 1 ;; ^ res11: () => Int = <function0> @@ -60,7 +58,7 @@ scala> () => 5 res12: () => Int = <function0> scala> 55 ; () => 5 -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ;; ^ res13: () => Int = <function0> diff --git a/test/files/run/repl-parens.scala b/test/files/run/repl-parens.scala index e25933b1a2..43e642a806 100644 --- a/test/files/run/repl-parens.scala +++ b/test/files/run/repl-parens.scala @@ -26,4 +26,11 @@ foo(5)(10)(15)+foo(5)(10)(15) List(1) ++ List('a') """.trim + + // replace indylambda function names by <function0> + override def eval() = { + val lines = super.eval + val r = """\$\$Lambda.*""".r + lines.map(l => r.replaceAllIn(l, "<function0>")) + } } diff --git a/test/files/run/repl-paste-2.check b/test/files/run/repl-paste-2.check index bc80615107..dbf5363c0f 100644 --- a/test/files/run/repl-paste-2.check +++ b/test/files/run/repl-paste-2.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> scala> 999l @@ -44,7 +42,7 @@ scala> res5 + res6 res1: Int = 690 scala> val x = dingus -<console>:10: error: not found: value dingus +<console>:11: error: not found: value dingus val x = dingus ^ diff --git a/test/files/run/repl-paste-3.check b/test/files/run/repl-paste-3.check index 23e402852f..603fcfa174 100644 --- a/test/files/run/repl-paste-3.check +++ b/test/files/run/repl-paste-3.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> println(3) 3 diff --git a/test/files/run/repl-paste-4.scala b/test/files/run/repl-paste-4.scala index cb0a6aa768..90f0c1802b 100644 --- a/test/files/run/repl-paste-4.scala +++ b/test/files/run/repl-paste-4.scala @@ -3,9 +3,7 @@ import scala.tools.partest.SessionTest object Test extends SessionTest { def session = -s"""|Type in expressions to have them evaluated. - |Type :help for more information. - | +s"""| |scala> :paste $pastie |Pasting file $pastie... |defined class Foo diff --git a/test/files/run/repl-paste-raw.scala b/test/files/run/repl-paste-raw.scala index 3b41254e96..9bd5e8e63e 100644 --- a/test/files/run/repl-paste-raw.scala +++ b/test/files/run/repl-paste-raw.scala @@ -3,9 +3,7 @@ import scala.tools.partest.SessionTest object Test extends SessionTest { def session = -s"""|Type in expressions to have them evaluated. - |Type :help for more information. - | +s"""| |scala> :paste -raw $pastie |Pasting file $pastie... | diff --git a/test/files/run/repl-paste.check b/test/files/run/repl-paste.check index 171447214f..3bcfd33c94 100644 --- a/test/files/run/repl-paste.check +++ b/test/files/run/repl-paste.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :paste // Entering paste mode (ctrl-D to finish) diff --git a/test/files/run/repl-power.check b/test/files/run/repl-power.check index e2318c93f2..2a7b7783d9 100644 --- a/test/files/run/repl-power.check +++ b/test/files/run/repl-power.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :power ** Power User mode enabled - BEEP WHIR GYVE ** diff --git a/test/files/run/repl-reset.check b/test/files/run/repl-reset.check index a2d88fd445..cf4d9a149e 100644 --- a/test/files/run/repl-reset.check +++ b/test/files/run/repl-reset.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val x1 = 1 x1: Int = 1 @@ -30,13 +28,13 @@ Forgetting all expression results and named terms: $intp, BippyBungus, x1, x2, x Forgetting defined types: BippyBungus scala> x1 + x2 + x3 -<console>:11: error: not found: value x1 +<console>:12: error: not found: value x1 x1 + x2 + x3 ^ -<console>:11: error: not found: value x2 +<console>:12: error: not found: value x2 x1 + x2 + x3 ^ -<console>:11: error: not found: value x3 +<console>:12: error: not found: value x3 x1 + x2 + x3 ^ @@ -44,7 +42,7 @@ scala> val x1 = 4 x1: Int = 4 scala> new BippyBungus -<console>:11: error: not found: type BippyBungus +<console>:12: error: not found: type BippyBungus new BippyBungus ^ diff --git a/test/files/run/repl-save.scala b/test/files/run/repl-save.scala index c98e6aebc3..8a3a887a8c 100644 --- a/test/files/run/repl-save.scala +++ b/test/files/run/repl-save.scala @@ -2,9 +2,7 @@ import scala.tools.partest.SessionTest object Test extends SessionTest { def session = -s"""|Type in expressions to have them evaluated. - |Type :help for more information. - | +s"""| |scala> val i = 7 |i: Int = 7 | diff --git a/test/files/run/repl-term-macros.check b/test/files/run/repl-term-macros.check index 2cd0b93cd0..b020611167 100644 --- a/test/files/run/repl-term-macros.check +++ b/test/files/run/repl-term-macros.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.macros.blackbox.Context import scala.reflect.macros.blackbox.Context diff --git a/test/files/run/repl-transcript.check b/test/files/run/repl-transcript.check index b0f106387b..762a96b9cc 100644 --- a/test/files/run/repl-transcript.check +++ b/test/files/run/repl-transcript.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> scala> class Bippity diff --git a/test/files/run/repl-trim-stack-trace.scala b/test/files/run/repl-trim-stack-trace.scala index b8c1668691..c0814905f9 100644 --- a/test/files/run/repl-trim-stack-trace.scala +++ b/test/files/run/repl-trim-stack-trace.scala @@ -5,15 +5,14 @@ import scala.tools.partest.{ SessionTest, Welcoming } object Test extends SessionTest with Welcoming { def session = """Welcome to Scala -Type in expressions to have them evaluated. -Type :help for more information. +Type in expressions for evaluation. Or try :help. scala> def f = throw new Exception("Uh-oh") f: Nothing scala> f java.lang.Exception: Uh-oh - at .f(<console>:10) + at .f(<console>:11) ... 69 elided scala> def f = throw new Exception("") @@ -21,7 +20,7 @@ f: Nothing scala> f java.lang.Exception: - at .f(<console>:10) + at .f(<console>:11) ... 69 elided scala> def f = throw new Exception @@ -29,7 +28,7 @@ f: Nothing scala> f java.lang.Exception - at .f(<console>:10) + at .f(<console>:11) ... 69 elided scala> :quit""" @@ -37,7 +36,6 @@ scala> :quit""" // normalize the "elided" lines because the frame count depends on test context lazy val elided = """(\s+\.{3} )\d+( elided)""".r override def normalize(line: String) = line match { - case welcome(w) => w case elided(ellipsis, suffix) => s"$ellipsis???$suffix" case s => s } diff --git a/test/files/run/repl-type-verbose.check b/test/files/run/repl-type-verbose.check index 6f6b47b86d..10a9c1217c 100644 --- a/test/files/run/repl-type-verbose.check +++ b/test/files/run/repl-type-verbose.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> // verbose! diff --git a/test/files/run/run-bug4840.flags b/test/files/run/run-bug4840.flags deleted file mode 100644 index eb4d19bcb9..0000000000 --- a/test/files/run/run-bug4840.flags +++ /dev/null @@ -1 +0,0 @@ --optimise
\ No newline at end of file diff --git a/test/files/run/sbt-icode-interface.scala b/test/files/run/sbt-icode-interface.scala new file mode 100644 index 0000000000..84d38cc65a --- /dev/null +++ b/test/files/run/sbt-icode-interface.scala @@ -0,0 +1,42 @@ +import scala.tools.partest._ +import scala.tools.nsc._ + +object Test extends DirectTest { + + def code = """ + class C { class D } + object O + """.trim + + def show() { + for (b <- List("GenASM", "GenBCode")) { + val global = newCompiler("-usejavacp", s"-Ybackend:$b") + import global._ + val r = new Run + r.compileSources(newSourceFile(code) :: Nil) + + val results = collection.mutable.Buffer[(Boolean, String)]() + + // Nailing down defacto compiler API from SBT's usage + // https://github.com/sbt/sbt/blob/adb41611cf73260938274915d8462d924df200c8/compile/interface/src/main/scala/xsbt/Analyzer.scala#L29-L41 + def isTopLevelModule(sym: Symbol) = sym.isTopLevel && sym.isModule + for (unit <- currentRun.units if !unit.isJava) { + val sourceFile = unit.source.file.file + for (iclass <- unit.icode) { + val sym = iclass.symbol + def addGenerated(separatorRequired: Boolean) { + results += (separatorRequired -> sym.fullName) + } + if (sym.isModuleClass && !sym.isImplClass) { + if (isTopLevelModule(sym) && sym.companionClass == NoSymbol) + addGenerated(false) + addGenerated(true) + } else + addGenerated(false) + } + } + val expected = List((false, "C"), (true, "O"), (false, "C$D")) + assert(results.toList == expected, b + ": " + results.toList) + } + } +} diff --git a/test/files/run/scalapInvokedynamic.check b/test/files/run/scalapInvokedynamic.check new file mode 100644 index 0000000000..8e4b08f234 --- /dev/null +++ b/test/files/run/scalapInvokedynamic.check @@ -0,0 +1,5 @@ +class C extends scala.AnyRef { + def this() = { /* compiled code */ } + def m: java.lang.String = { /* compiled code */ } +} + diff --git a/test/files/run/scalapInvokedynamic.scala b/test/files/run/scalapInvokedynamic.scala new file mode 100644 index 0000000000..670cf26662 --- /dev/null +++ b/test/files/run/scalapInvokedynamic.scala @@ -0,0 +1,11 @@ +class C { + def m = { + val f = (x: String) => x.trim + f(" H ae i ") + } +} + +object Test extends App { + val testClassesDir = System.getProperty("partest.output") + scala.tools.scalap.Main.main(Array("-cp", testClassesDir, "C")) +}
\ No newline at end of file diff --git a/test/files/run/synchronized.flags b/test/files/run/synchronized.flags index 49d036a887..b9bb09167e 100644 --- a/test/files/run/synchronized.flags +++ b/test/files/run/synchronized.flags @@ -1 +1 @@ --optimize +-optimize -Ybackend:GenASM diff --git a/test/files/run/t1931.scala b/test/files/run/t1931.scala new file mode 100644 index 0000000000..eedfa9b03d --- /dev/null +++ b/test/files/run/t1931.scala @@ -0,0 +1,43 @@ + +import scala.tools.partest.SessionTest + +object Test extends SessionTest { + + def session = +""" +scala> val x: Any = 42 +x: Any = 42 + +scala> x + " works" +res0: String = 42 works + +scala> import Predef.{ any2stringadd => _, _ } +import Predef.{any2stringadd=>_, _} + +scala> x + " works" +<console>:14: error: value + is not a member of Any + x + " works" + ^ + +scala> import Predef._ +import Predef._ + +scala> x + " works" +res2: String = 42 works + +scala> object Predef { def f = 42 } +defined object Predef + +scala> import Predef._ +import Predef._ + +scala> f +<console>:14: error: not found: value f + f + ^ + +scala> Predef.f +res4: Int = 42 + +scala> :quit""" +} diff --git a/test/files/run/t1987b/cce_test.scala b/test/files/run/t1987b/cce_test.scala index 4f9acf0264..e131df7956 100644 --- a/test/files/run/t1987b/cce_test.scala +++ b/test/files/run/t1987b/cce_test.scala @@ -1,5 +1,5 @@ package scales.xml -//import scales.xml._ // using another pacakge and importing doesn't CCE +//import scales.xml._ // using another package and importing doesn't CCE object CCE_Test { def main(args: Array[String]): Unit = { diff --git a/test/files/run/t2106.check b/test/files/run/t2106.check index c6457216b5..b19165824b 100644 --- a/test/files/run/t2106.check +++ b/test/files/run/t2106.check @@ -1,13 +1,5 @@ -#partest !-Ybackend:GenASM t2106.scala:7: warning: A::foo()Ljava/lang/Object; is annotated @inline but could not be inlined: The callee A::foo()Ljava/lang/Object; contains the instruction INVOKEVIRTUAL java/lang/Object.clone ()Ljava/lang/Object; that would cause an IllegalAccessError when inlined into class Test$. def main(args: Array[String]): Unit = x.foo ^ -#partest -Ybackend:GenASM -t2106.scala:7: warning: Could not inline required method foo because access level required by callee not matched by caller. - def main(args: Array[String]): Unit = x.foo - ^ -t2106.scala:7: warning: At the end of the day, could not inline @inline-marked method foo - def main(args: Array[String]): Unit = x.foo - ^ diff --git a/test/files/run/t2106.flags b/test/files/run/t2106.flags index a2e413bb22..5d6ee831df 100644 --- a/test/files/run/t2106.flags +++ b/test/files/run/t2106.flags @@ -1 +1 @@ --optimise -Yinline-warnings -Yopt:l:classpath +-Yinline-warnings -Yopt:l:classpath diff --git a/test/files/run/t2127.scala b/test/files/run/t2127.scala index 869d8a38d6..839c8d6a5c 100755 --- a/test/files/run/t2127.scala +++ b/test/files/run/t2127.scala @@ -28,5 +28,5 @@ } -The constructor invocation of Bar is done within the scope of object Foo's constructor, and therefor the private constructor of Foo should be visible and accessible. +The constructor invocation of Bar is done within the scope of object Foo's constructor, and therefore the private constructor of Foo should be visible and accessible. */ diff --git a/test/files/run/t3158.scala b/test/files/run/t3158.scala index c824b62e96..1e5ec186f5 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 _).map(_ => "<function1>").deep) } def foo(xs: String*) { diff --git a/test/files/run/t3368-c.check b/test/files/run/t3368-c.check index e0c10cc0dd..4cbe98c577 100644 --- a/test/files/run/t3368-c.check +++ b/test/files/run/t3368-c.check @@ -6,8 +6,8 @@ package <empty> { }; def x = { val $buf = new _root_.scala.xml.NodeBuffer(); - $buf.$amp$plus(new _root_.scala.xml.Text("hi & bye")); - $buf.$amp$plus(new _root_.scala.xml.Text("red & black")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hi & bye")); + $buf.$amp$plus(new _root_.scala.xml.PCData("red & black")); $buf } }; @@ -24,7 +24,8 @@ package <empty> { new _root_.scala.xml.Elem(null, "b", _root_.scala.xml.Null, $scope, true) } }); - $buf.$amp$plus(new _root_.scala.xml.Text("starthi & bye")); + $buf.$amp$plus(new _root_.scala.xml.Text("start")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hi & bye")); $buf.$amp$plus({ { new _root_.scala.xml.Elem(null, "c", _root_.scala.xml.Null, $scope, true) @@ -36,7 +37,8 @@ package <empty> { new _root_.scala.xml.Elem(null, "d", _root_.scala.xml.Null, $scope, true) } }); - $buf.$amp$plus(new _root_.scala.xml.Text("stuffred & black")); + $buf.$amp$plus(new _root_.scala.xml.Text("stuff")); + $buf.$amp$plus(new _root_.scala.xml.PCData("red & black")); $buf }: _*)) } @@ -46,18 +48,19 @@ package <empty> { def $init$() = { () }; - def d = new _root_.scala.xml.Text("hello, world"); + def d = new _root_.scala.xml.PCData("hello, world"); def e = { val $buf = new _root_.scala.xml.NodeBuffer(); - $buf.$amp$plus(new _root_.scala.xml.Text("hello, world")); - $buf.$amp$plus(new _root_.scala.xml.Text("hello, world")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hello, world")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hello, world")); $buf }; def f = { { new _root_.scala.xml.Elem(null, "foo", _root_.scala.xml.Null, $scope, false, ({ val $buf = new _root_.scala.xml.NodeBuffer(); - $buf.$amp$plus(new _root_.scala.xml.Text("xhello, world")); + $buf.$amp$plus(new _root_.scala.xml.Text("x")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hello, world")); $buf }: _*)) } @@ -66,7 +69,7 @@ package <empty> { { new _root_.scala.xml.Elem(null, "foo", _root_.scala.xml.Null, $scope, false, ({ val $buf = new _root_.scala.xml.NodeBuffer(); - $buf.$amp$plus(new _root_.scala.xml.Text("hello, world")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hello, world")); $buf }: _*)) } @@ -75,7 +78,8 @@ package <empty> { { new _root_.scala.xml.Elem(null, "foo", _root_.scala.xml.Null, $scope, false, ({ val $buf = new _root_.scala.xml.NodeBuffer(); - $buf.$amp$plus(new _root_.scala.xml.Text("hello, worldhello, world")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hello, world")); + $buf.$amp$plus(new _root_.scala.xml.PCData("hello, world")); $buf }: _*)) } diff --git a/test/files/run/t3376.check b/test/files/run/t3376.check index b8fd2843f6..0af54d6a53 100644 --- a/test/files/run/t3376.check +++ b/test/files/run/t3376.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class M[@specialized T] { override def toString = "mmm" } defined class M diff --git a/test/files/run/t3509.flags b/test/files/run/t3509.flags index 6933d924d3..9c59981aa9 100644 --- a/test/files/run/t3509.flags +++ b/test/files/run/t3509.flags @@ -1 +1 @@ --Yinline
\ No newline at end of file +-Yinline -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t3569.flags b/test/files/run/t3569.flags index 6933d924d3..9c59981aa9 100644 --- a/test/files/run/t3569.flags +++ b/test/files/run/t3569.flags @@ -1 +1 @@ --Yinline
\ No newline at end of file +-Yinline -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t4025.check b/test/files/run/t4025.check index e8c6851236..ed3f254024 100644 --- a/test/files/run/t4025.check +++ b/test/files/run/t4025.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class Color(val red: Int) defined class Color diff --git a/test/files/run/t4172.check b/test/files/run/t4172.check index 315c1c9dbd..3141647dba 100644 --- a/test/files/run/t4172.check +++ b/test/files/run/t4172.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val c = { class C { override def toString = "C" }; ((new C, new C { def f = 2 })) } warning: there was one feature warning; re-run with -feature for details diff --git a/test/files/run/t4216.check b/test/files/run/t4216.check index e4610e87d3..3ec394b939 100644 --- a/test/files/run/t4216.check +++ b/test/files/run/t4216.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.ClassTag import scala.reflect.ClassTag diff --git a/test/files/run/t4285.check b/test/files/run/t4285.check index b952cb8e1b..465aee75f1 100644 --- a/test/files/run/t4285.check +++ b/test/files/run/t4285.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val x = Array(1,2,3,4,5,6,7) x: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7) diff --git a/test/files/run/t4285.flags b/test/files/run/t4285.flags index eb4d19bcb9..99bd6c895d 100644 --- a/test/files/run/t4285.flags +++ b/test/files/run/t4285.flags @@ -1 +1 @@ --optimise
\ No newline at end of file +-optimise -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t4542.check b/test/files/run/t4542.check index f7aad3deb2..6e099222b0 100644 --- a/test/files/run/t4542.check +++ b/test/files/run/t4542.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> @deprecated("foooo", "ReplTest version 1.0-FINAL") class Foo() { override def toString = "Bippy" @@ -7,7 +5,7 @@ scala> @deprecated("foooo", "ReplTest version 1.0-FINAL") class Foo() { defined class Foo scala> val f = new Foo -<console>:11: warning: class Foo is deprecated: foooo +<console>:12: warning: class Foo is deprecated: foooo val f = new Foo ^ f: Foo = Bippy diff --git a/test/files/run/t4594-repl-settings.scala b/test/files/run/t4594-repl-settings.scala index 1b883983cf..f2d1a8b3f8 100644 --- a/test/files/run/t4594-repl-settings.scala +++ b/test/files/run/t4594-repl-settings.scala @@ -4,23 +4,21 @@ import scala.tools.partest.SessionTest // Detected repl transcript paste: ctrl-D to finish. object Test extends SessionTest { def session = -""" |Type in expressions to have them evaluated. - |Type :help for more information. - | - |scala> @deprecated(message="Please don't do that.", since="Time began.") def depp = "john" - |depp: String - | - |scala> def a = depp - |warning: there was one deprecation warning; re-run with -deprecation for details - |a: String - | - |scala> :settings -deprecation - | - |scala> def b = depp - |<console>:11: warning: method depp is deprecated: Please don't do that. - | def b = depp - | ^ - |b: String - | - |scala> :quit""" +"""| + |scala> @deprecated(message="Please don't do that.", since="Time began.") def depp = "john" + |depp: String + | + |scala> def a = depp + |warning: there was one deprecation warning; re-run with -deprecation for details + |a: String + | + |scala> :settings -deprecation + | + |scala> def b = depp + |<console>:12: warning: method depp is deprecated: Please don't do that. + | def b = depp + | ^ + |b: String + | + |scala> :quit""" } diff --git a/test/files/run/t4671.check b/test/files/run/t4671.check index 1640dac8e4..b267befee9 100644 --- a/test/files/run/t4671.check +++ b/test/files/run/t4671.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> object o { val file = sys.props("partest.cwd") + "/t4671.scala" } defined object o diff --git a/test/files/run/t4710.check b/test/files/run/t4710.check index 0dd49dfbd3..5f90c68ed1 100644 --- a/test/files/run/t4710.check +++ b/test/files/run/t4710.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> def method : String = { implicit def f(s: Symbol) = "" ; 'symbol } warning: there was one feature warning; re-run with -feature for details diff --git a/test/files/run/t4935.flags b/test/files/run/t4935.flags index 49d036a887..b9bb09167e 100644 --- a/test/files/run/t4935.flags +++ b/test/files/run/t4935.flags @@ -1 +1 @@ --optimize +-optimize -Ybackend:GenASM diff --git a/test/files/run/t4950.check b/test/files/run/t4950.check index 3f3a302b62..8994441163 100644 --- a/test/files/run/t4950.check +++ b/test/files/run/t4950.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val 1 = 2 scala.MatchError: 2 (of class java.lang.Integer) diff --git a/test/files/run/t5072.check b/test/files/run/t5072.check index ab34e49869..586c0a6004 100644 --- a/test/files/run/t5072.check +++ b/test/files/run/t5072.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class C defined class C diff --git a/test/files/run/t5256d.check b/test/files/run/t5256d.check index c2b49989ab..3cdcb577b0 100644 --- a/test/files/run/t5256d.check +++ b/test/files/run/t5256d.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.runtime.universe._ import scala.reflect.runtime.universe._ diff --git a/test/files/run/t5535.check b/test/files/run/t5535.check index 84097ccea9..11d298c602 100644 --- a/test/files/run/t5535.check +++ b/test/files/run/t5535.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> def h()(i: Int) = 1 + i h: ()(i: Int)Int diff --git a/test/files/run/t5535.scala b/test/files/run/t5535.scala index 7bc12f3470..2833b9c94b 100644 --- a/test/files/run/t5535.scala +++ b/test/files/run/t5535.scala @@ -7,4 +7,11 @@ println(h()(5)) val f = h() _ println(f(10)) """ + + // replace indylambda function names by <function1> + override def eval() = { + val lines = super.eval + val r = """\$\$Lambda.*""".r + lines.map(l => r.replaceAllIn(l, "<function1>")) + } } diff --git a/test/files/run/t5537.check b/test/files/run/t5537.check index 98265ccc92..bffa02f334 100644 --- a/test/files/run/t5537.check +++ b/test/files/run/t5537.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> List[Predef.type]() res0: List[scala.Predef.type] = List() diff --git a/test/files/run/t5583.check b/test/files/run/t5583.check index 32d285cbb3..72ad898e90 100644 --- a/test/files/run/t5583.check +++ b/test/files/run/t5583.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> var s = 0 s: Int = 0 diff --git a/test/files/run/t5655.check b/test/files/run/t5655.check index e8375c3e90..9191997624 100644 --- a/test/files/run/t5655.check +++ b/test/files/run/t5655.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> object x { def x={} } defined object x @@ -8,7 +6,7 @@ scala> import x._ import x._ scala> x -<console>:15: error: reference to x is ambiguous; +<console>:16: error: reference to x is ambiguous; it is imported twice in the same scope by import x._ and import x @@ -16,7 +14,7 @@ and import x ^ scala> x -<console>:15: error: reference to x is ambiguous; +<console>:16: error: reference to x is ambiguous; it is imported twice in the same scope by import x._ and import x diff --git a/test/files/run/t5789.check b/test/files/run/t5789.check index 193abfaff0..d286922acc 100644 --- a/test/files/run/t5789.check +++ b/test/files/run/t5789.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val n = 2 n: Int = 2 diff --git a/test/files/run/t5789.scala b/test/files/run/t5789.scala index 461f6a4aae..c8d95f2153 100644 --- a/test/files/run/t5789.scala +++ b/test/files/run/t5789.scala @@ -5,10 +5,17 @@ import scala.tools.partest.ReplTest object Test extends ReplTest { - override def extraSettings = "-Yinline" + override def extraSettings = "-Yinline -Ybackend:GenASM" def code = """ val n = 2 () => n """ + + // replace indylambda function names by <function0> + override def eval() = { + val lines = super.eval + val r = """\$\$Lambda.*""".r + lines.map(l => r.replaceAllIn(l, "<function0>")) + } } diff --git a/test/files/run/t6086-repl.check b/test/files/run/t6086-repl.check index b904f118e8..f022e841cd 100644 --- a/test/files/run/t6086-repl.check +++ b/test/files/run/t6086-repl.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> case class X(s: String) defined class X diff --git a/test/files/run/t6102.check b/test/files/run/t6102.check index 395864f57c..ce01362503 100644 --- a/test/files/run/t6102.check +++ b/test/files/run/t6102.check @@ -1,37 +1 @@ -[running phase parser on t6102.scala] -[running phase namer on t6102.scala] -[running phase packageobjects on t6102.scala] -[running phase typer on t6102.scala] -[running phase patmat on t6102.scala] -[running phase superaccessors on t6102.scala] -[running phase extmethods on t6102.scala] -[running phase pickler on t6102.scala] -[running phase refchecks on t6102.scala] -[running phase uncurry on t6102.scala] -[running phase tailcalls on t6102.scala] -[running phase specialize on t6102.scala] -[running phase explicitouter on t6102.scala] -[running phase erasure on t6102.scala] -[running phase posterasure on t6102.scala] -[running phase lazyvals on t6102.scala] -[running phase lambdalift on t6102.scala] -[running phase constructors on t6102.scala] -[running phase flatten on t6102.scala] -[running phase mixin on t6102.scala] -[running phase cleanup on t6102.scala] -[running phase delambdafy on t6102.scala] -[running phase icode on t6102.scala] -#partest -optimise -[running phase inliner on t6102.scala] -[running phase inlinehandlers on t6102.scala] -[running phase closelim on t6102.scala] -[running phase constopt on t6102.scala] -#partest -[running phase dce on t6102.scala] -#partest -Ybackend:GenASM -[running phase jvm on icode] -#partest !-Ybackend:GenASM -[running phase jvm on t6102.scala] -[running phase jvm on t6102.scala] -#partest hello diff --git a/test/files/run/t6102.flags b/test/files/run/t6102.flags index 726e2a997f..db58cf3b4c 100644 --- a/test/files/run/t6102.flags +++ b/test/files/run/t6102.flags @@ -1 +1 @@ --Ydead-code -Ydebug -Xfatal-warnings +-Yopt:l:classpath -Xfatal-warnings diff --git a/test/files/run/t6146b.check b/test/files/run/t6146b.check index 6998873fb7..0e0c216cd7 100644 --- a/test/files/run/t6146b.check +++ b/test/files/run/t6146b.check @@ -2,8 +2,6 @@ t6146b.scala:15: warning: match may not be exhaustive. It would fail on the following inputs: S2(), S3() def foo(f: F[Int]) = f match { case X.S1 => } ^ -Type in expressions to have them evaluated. -Type :help for more information. scala> :power ** Power User mode enabled - BEEP WHIR GYVE ** diff --git a/test/files/run/t6187.check b/test/files/run/t6187.check index 9a9e266ec6..28bc7e34b6 100644 --- a/test/files/run/t6187.check +++ b/test/files/run/t6187.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.language.experimental.macros, scala.reflect.macros.blackbox.Context import scala.language.experimental.macros diff --git a/test/files/run/t6188.flags b/test/files/run/t6188.flags index 0ebca3e7af..b9bb09167e 100644 --- a/test/files/run/t6188.flags +++ b/test/files/run/t6188.flags @@ -1 +1 @@ - -optimize +-optimize -Ybackend:GenASM diff --git a/test/files/run/t6260-delambdafy.check b/test/files/run/t6260-delambdafy.check index b2a7bed988..2fea68afb1 100644 --- a/test/files/run/t6260-delambdafy.check +++ b/test/files/run/t6260-delambdafy.check @@ -1,4 +1,4 @@ f(C@2e) -Test$lambda$1$$apply apply +writeReplace diff --git a/test/files/run/t6260-delambdafy.flags b/test/files/run/t6260-delambdafy.flags deleted file mode 100644 index 48b438ddf8..0000000000 --- a/test/files/run/t6260-delambdafy.flags +++ /dev/null @@ -1 +0,0 @@ --Ydelambdafy:method diff --git a/test/files/run/t6260c.check b/test/files/run/t6260c.check index 1f17b1791b..388f6690d6 100644 --- a/test/files/run/t6260c.check +++ b/test/files/run/t6260c.check @@ -1,9 +1,5 @@ f(C@2e) -#partest -Ydelambdafy:inline -Test$$anonfun$$apply -#partest !-Ydelambdafy:inline -Test$lambda$1$$apply -#partest apply +writeReplace g(C@2e) diff --git a/test/files/run/t6273.check b/test/files/run/t6273.check index 3b682800df..6190ff254e 100644 --- a/test/files/run/t6273.check +++ b/test/files/run/t6273.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val y = 55 y: Int = 55 diff --git a/test/files/run/t6320.check b/test/files/run/t6320.check index af7c865690..08ef7fc211 100644 --- a/test/files/run/t6320.check +++ b/test/files/run/t6320.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.language.dynamics import scala.language.dynamics diff --git a/test/files/run/t6329_repl.check b/test/files/run/t6329_repl.check index ebb1aace7c..8909c47e79 100644 --- a/test/files/run/t6329_repl.check +++ b/test/files/run/t6329_repl.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.classTag import scala.reflect.classTag diff --git a/test/files/run/t6329_repl_bug.check b/test/files/run/t6329_repl_bug.check index 84297a629f..4b539f9e58 100644 --- a/test/files/run/t6329_repl_bug.check +++ b/test/files/run/t6329_repl_bug.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.runtime.universe._ import scala.reflect.runtime.universe._ diff --git a/test/files/run/t6381.check b/test/files/run/t6381.check index 49c6a784ad..c66eb4c376 100644 --- a/test/files/run/t6381.check +++ b/test/files/run/t6381.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.language.experimental.macros import scala.language.experimental.macros diff --git a/test/files/run/t6434.check b/test/files/run/t6434.check index 0a75ae2bd5..1f123ee9cd 100644 --- a/test/files/run/t6434.check +++ b/test/files/run/t6434.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> def f(x: => Int): Int = x f: (x: => Int)Int diff --git a/test/files/run/t6434.scala b/test/files/run/t6434.scala index e4a4579613..6b6a783299 100644 --- a/test/files/run/t6434.scala +++ b/test/files/run/t6434.scala @@ -5,4 +5,11 @@ object Test extends ReplTest { """def f(x: => Int): Int = x f _ """ + + // replace indylambda function names by <function1> + override def eval() = { + val lines = super.eval + val r = """\$\$Lambda.*""".r + lines.map(l => r.replaceAllIn(l, "<function1>")) + } } diff --git a/test/files/run/t6439.check b/test/files/run/t6439.check index c4b7591069..eee2da1b12 100644 --- a/test/files/run/t6439.check +++ b/test/files/run/t6439.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class A defined class A diff --git a/test/files/run/t6440b.scala b/test/files/run/t6440b.scala index 974aca2844..7ab9529ccb 100644 --- a/test/files/run/t6440b.scala +++ b/test/files/run/t6440b.scala @@ -35,7 +35,7 @@ object Test extends StoreReporterDirectTest { def app2 = """ package pack3 object Test { - pack2.V.u.t // we have to fail if T.class is misisng + pack2.V.u.t // we have to fail if T.class is missing } """ diff --git a/test/files/run/t6502.scala b/test/files/run/t6502.scala index d6b15a0189..f4fc39a03d 100644 --- a/test/files/run/t6502.scala +++ b/test/files/run/t6502.scala @@ -1,11 +1,14 @@ import scala.tools.nsc.Settings -import scala.tools.nsc.interpreter.ILoop +import scala.tools.nsc.interpreter.{ ILoop, replProps } import scala.tools.nsc.settings.ClassPathRepresentationType import scala.tools.partest._ object Test extends StoreReporterDirectTest { def code = ??? + lazy val headerLength = replProps.welcome.lines.size + lazy val promptLength = replProps.prompt.lines.size - 1 // extra newlines + def compileCode(code: String, jarFileName: String) = { val classpath = List(sys.props("partest.lib"), testOutput.path) mkString sys.props("path.separator") compileString(newCompiler("-cp", classpath, "-d", s"${testOutput.path}/$jarFileName"))(code) @@ -56,14 +59,21 @@ object Test extends StoreReporterDirectTest { val jar = "test1.jar" compileCode(app1, jar) - val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar", "test.Test.test()") + val codeToRun = s""" + |:require ${testOutput.path}/$jar + |test.Test.test() + |""".stripMargin.trim val output = ILoop.run(codeToRun, settings) - val lines = output.split("\n") - assert { - lines(4).contains("Added") && lines(4).contains("test1.jar") - } + var lines = output.lines.drop(headerLength) + lines = lines drop promptLength + val added = lines.next + assert ( + added.contains("Added") && added.contains("test1.jar"), + s"[${added}] in [${output.lines.mkString("/")}]" + ) + lines = lines drop promptLength assert { - lines(lines.length-3).contains("testing...") + lines.next.contains("testing...") } } @@ -73,14 +83,21 @@ object Test extends StoreReporterDirectTest { val jar2 = "test2.jar" compileCode(app2, jar2) - val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar1", s":require ${testOutput.path}/$jar2") + val codeToRun = s""" + |:require ${testOutput.path}/$jar1 + |:require ${testOutput.path}/$jar2 + |""".stripMargin.trim val output = ILoop.run(codeToRun, settings) - val lines = output.split("\n") + var lines = output.lines.drop(headerLength) + lines = lines drop promptLength + val added = lines.next assert { - lines(4).contains("Added") && lines(4).contains("test1.jar") + added.contains("Added") && added.contains("test1.jar") } + lines = lines drop promptLength + val msg = lines.next assert { - lines(lines.length-3).contains("test2.jar") && lines(lines.length-3).contains("existing classpath entries conflict") + msg.contains("test2.jar") && msg.contains("existing classpath entries conflict") } } @@ -90,28 +107,42 @@ object Test extends StoreReporterDirectTest { val jar3 = "test3.jar" compileCode(app3, jar3) - val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar1", s":require ${testOutput.path}/$jar3", "test.Test3.test()") + val codeToRun = s""" + |:require ${testOutput.path}/$jar1 + |:require ${testOutput.path}/$jar3 + |test.Test3.test() + |""".stripMargin.trim val output = ILoop.run(codeToRun, settings) - val lines = output.split("\n") + var lines = output.lines.drop(headerLength) + lines = lines drop promptLength + val added = lines.next assert { - lines(4).contains("Added") && lines(4).contains("test1.jar") + added.contains("Added") && added.contains("test1.jar") } + lines = lines drop (2 * promptLength + 1) assert { - lines(lines.length-3).contains("new object in existing package") + lines.next.contains("new object in existing package") } } def test4(): Unit = { // twice the same jar should be rejected val jar1 = "test1.jar" - val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar1", s":require ${testOutput.path}/$jar1") + val codeToRun = s""" + |:require ${testOutput.path}/$jar1 + |:require ${testOutput.path}/$jar1 + |""".stripMargin.trim val output = ILoop.run(codeToRun, settings) - val lines = output.split("\n") + var lines = output.lines.drop(headerLength) + lines = lines drop promptLength + val added = lines.next assert { - lines(4).contains("Added") && lines(4).contains("test1.jar") + added.contains("Added") && added.contains("test1.jar") } + lines = lines drop promptLength + val msg = lines.next assert { - lines(lines.length-3).contains("test1.jar") && lines(lines.length-3).contains("existing classpath entries conflict") + msg.contains("test1.jar") && msg.contains("existing classpath entries conflict") } } @@ -127,7 +158,10 @@ object Test extends StoreReporterDirectTest { // classloader to parse .class files in order to read their names. val jar = "test6.jar" compileCode(app6, jar) - val codeToRun = toCodeInSeparateLines(s":require ${testOutput.path}/$jar", "import test6._; new A; new Z") + val codeToRun = s""" + |:require ${testOutput.path}/$jar + |import test6._; new A; new Z + |""".stripMargin.trim val output = ILoop.run(codeToRun, settings) assert(output.contains("created test6.A"), output) assert(output.contains("created test6.Z"), output) @@ -141,6 +175,4 @@ object Test extends StoreReporterDirectTest { test5() test6() } - - def toCodeInSeparateLines(lines: String*): String = lines mkString "\n" } diff --git a/test/files/run/t6507.check b/test/files/run/t6507.check index 5da4aa3a24..75cf392304 100644 --- a/test/files/run/t6507.check +++ b/test/files/run/t6507.check @@ -1,8 +1,5 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :silent -Switched off result printing. scala> class A { override def toString() = { println("!"); "A" } } @@ -15,7 +12,6 @@ scala> b = new A scala> new A scala> :silent -Switched on result printing. scala> res0 ! diff --git a/test/files/run/t6546.flags b/test/files/run/t6546.flags index eb4d19bcb9..6015e7c61f 100644 --- a/test/files/run/t6546.flags +++ b/test/files/run/t6546.flags @@ -1 +1 @@ --optimise
\ No newline at end of file +-Ybackend:GenASM -optimise
\ No newline at end of file diff --git a/test/files/run/t6549.check b/test/files/run/t6549.check index be3445927e..00203d5cc7 100644 --- a/test/files/run/t6549.check +++ b/test/files/run/t6549.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> case class `X"`(var xxx: Any) defined class X$u0022 diff --git a/test/files/run/t6634.check b/test/files/run/t6634.check index f6cbb30c67..b085f397e6 100644 --- a/test/files/run/t6634.check +++ b/test/files/run/t6634.check @@ -4,27 +4,31 @@ String OK. Length OK. Trying lb1 ... +java.lang.IndexOutOfBoundsException: at 6 deleting 6 Checking ... String OK. Length OK. Trying lb2 ... +java.lang.IndexOutOfBoundsException: at 99 deleting 6 Checking ... String OK. Length OK. Trying lb3 ... +java.lang.IndexOutOfBoundsException: at 1 deleting 9 Checking ... String OK. Length OK. Trying lb4 ... +java.lang.IndexOutOfBoundsException: at -1 deleting 1 Checking ... String OK. Length OK. Trying lb5 ... -java.lang.IllegalArgumentException: removing negative number (-1) of elements +java.lang.IllegalArgumentException: removing negative number of elements: -1 Checking ... String OK. Length OK. diff --git a/test/files/run/t6634.scala b/test/files/run/t6634.scala index 759e6d519d..081cca7502 100644 --- a/test/files/run/t6634.scala +++ b/test/files/run/t6634.scala @@ -8,7 +8,7 @@ object Test extends App { try { lb0.remove(5, 0) } catch { - // Not thrown in 2.10, will be thrown in 2.11 + // Should not be thrown--nothing is deleted so nothing to do case ex: IndexOutOfBoundsException => println(ex) } checkNotCorrupted(lb0) @@ -17,8 +17,8 @@ object Test extends App { println("Trying lb1 ...") try { lb1.remove(6, 6) - } catch { - // Not thrown in 2.10, will be thrown in 2.11 + } catch { + // Not thrown in 2.11, is thrown in 2.12 case ex: IndexOutOfBoundsException => println(ex) } checkNotCorrupted(lb1) @@ -28,7 +28,7 @@ object Test extends App { try { lb2.remove(99, 6) } catch { - // Not thrown in 2.10, will be thrown in 2.11 + // Not thrown in 2.11, is thrown in 2.12 case ex: IndexOutOfBoundsException => println(ex) } checkNotCorrupted(lb2) @@ -38,26 +38,27 @@ object Test extends App { try { lb3.remove(1, 9) } catch { - // Not thrown in 2.10, will be thrown in 2.11 - case ex: IllegalArgumentException => println(ex) + // Not thrown in 2.11, is thrown in 2.12 + case ex: IndexOutOfBoundsException => println(ex) } - checkNotCorrupted(lb3, "ListBuffer('a)", 1) + checkNotCorrupted(lb3) val lb4 = newLB println("Trying lb4 ...") try { lb4.remove(-1, 1) } catch { - // Not thrown in 2.10, will be thrown in 2.11 + // Not thrown in 2.11, is thrown in 2.12 case ex: IndexOutOfBoundsException => println(ex) } - checkNotCorrupted(lb4, "ListBuffer('b, 'c, 'd, 'e)", 4) + checkNotCorrupted(lb4) val lb5 = newLB println("Trying lb5 ...") try { lb5.remove(1, -1) } catch { + // Was thrown prior to 2.12 also case ex: IllegalArgumentException => println(ex) } checkNotCorrupted(lb5) @@ -77,4 +78,4 @@ object Test extends App { else println("!!! length FAILED: " + len) println() } -}
\ No newline at end of file +} diff --git a/test/files/run/t6937.check b/test/files/run/t6937.check index 5c5d4485b6..b7b2f45385 100644 --- a/test/files/run/t6937.check +++ b/test/files/run/t6937.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.reflect.runtime.{universe => ru} import scala.reflect.runtime.{universe=>ru} diff --git a/test/files/run/t7008-scala-defined/Test_3.scala b/test/files/run/t7008-scala-defined/Test_3.scala index ee7b9d9cde..26178142ab 100644 --- a/test/files/run/t7008-scala-defined/Test_3.scala +++ b/test/files/run/t7008-scala-defined/Test_3.scala @@ -1,3 +1,6 @@ +/* + * filter: inliner warning; re-run with + */ import scala.reflect.runtime.universe._ object Test extends App { diff --git a/test/files/run/t7185.check b/test/files/run/t7185.check index e4f80a8ff9..6b7fbaf0b1 100644 --- a/test/files/run/t7185.check +++ b/test/files/run/t7185.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.tools.reflect.ToolBox import scala.tools.reflect.ToolBox diff --git a/test/files/run/t720.scala b/test/files/run/t720.scala new file mode 100644 index 0000000000..a5cb2495cf --- /dev/null +++ b/test/files/run/t720.scala @@ -0,0 +1,48 @@ +class Lazy(f: => Int) { + lazy val get: Int = f +} + +class UsedLater(f: => Int) { + lazy val get: Int = f + def other = f +} + +class TransientLazy(f: => Int) { + @transient + lazy val get: Int = f +} + +object Test { + def main(args: Array[String]): Unit = { + testLazy() + testUsedLater() + } + + def testLazy() { + val o = new Lazy("".length) + val f = classOf[Lazy].getDeclaredField("f") + f.setAccessible(true) + assert(f.get(o) != null) + o.get + assert(f.get(o) == null) + } + + def testUsedLater() { + val o = new UsedLater("".length) + val f = classOf[UsedLater].getDeclaredField("f") + f.setAccessible(true) + assert(f.get(o) != null) + o.get + assert(f.get(o) != null) + } + + def testTransientLazy() { + val o = new TransientLazy("".length) + val f = classOf[TransientLazy].getDeclaredField("f") + f.setAccessible(true) + assert(f.get(o) != null) + o.get + assert(f.get(o) != null) // SI-9365 + } +} + diff --git a/test/files/run/t7214.scala b/test/files/run/t7214.scala index 15c2c24fa0..b2ef53eeab 100644 --- a/test/files/run/t7214.scala +++ b/test/files/run/t7214.scala @@ -1,4 +1,4 @@ -// pattern matcher crashes here trying to synthesize an uneeded outer test. +// pattern matcher crashes here trying to synthesize an unneeded outer test. // no-symbol does not have an owner // at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:49) // at scala.tools.nsc.Global.abort(Global.scala:253) diff --git a/test/files/run/t7319.check b/test/files/run/t7319.check index 885136b432..4d8429e8f2 100644 --- a/test/files/run/t7319.check +++ b/test/files/run/t7319.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> class M[A] defined class M @@ -17,21 +15,21 @@ warning: there was one feature warning; re-run with -feature for details convert: [F[X <: F[X]]](builder: F[_ <: F[_]])Int scala> convert(Some[Int](0)) -<console>:15: error: no type parameters for method convert: (builder: F[_ <: F[_]])Int exist so that it can be applied to arguments (Some[Int]) +<console>:16: error: no type parameters for method convert: (builder: F[_ <: F[_]])Int exist so that it can be applied to arguments (Some[Int]) --- because --- argument expression's type is not compatible with formal parameter type; found : Some[Int] required: ?F[_$1] forSome { type _$1 <: ?F[_$2] forSome { type _$2 } } convert(Some[Int](0)) ^ -<console>:15: error: type mismatch; +<console>:16: error: type mismatch; found : Some[Int] required: F[_ <: F[_]] convert(Some[Int](0)) ^ scala> Range(1,2).toArray: Seq[_] -<console>:14: error: polymorphic expression cannot be instantiated to expected type; +<console>:15: error: polymorphic expression cannot be instantiated to expected type; found : [B >: Int]Array[B] required: Seq[_] Range(1,2).toArray: Seq[_] diff --git a/test/files/run/t7459b-optimize.flags b/test/files/run/t7459b-optimize.flags index 49d036a887..b9bb09167e 100644 --- a/test/files/run/t7459b-optimize.flags +++ b/test/files/run/t7459b-optimize.flags @@ -1 +1 @@ --optimize +-optimize -Ybackend:GenASM diff --git a/test/files/run/t7482a.check b/test/files/run/t7482a.check index a21ef7b68f..1120bb0271 100644 --- a/test/files/run/t7482a.check +++ b/test/files/run/t7482a.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val v: java.util.ArrayList[String] = new java.util.ArrayList[String](5) v: java.util.ArrayList[String] = [] diff --git a/test/files/run/t7582.flags b/test/files/run/t7582.flags index 1182725e86..2cd4b38726 100644 --- a/test/files/run/t7582.flags +++ b/test/files/run/t7582.flags @@ -1 +1 @@ --optimize
\ No newline at end of file +-optimize -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t7582b.flags b/test/files/run/t7582b.flags index 1182725e86..2cd4b38726 100644 --- a/test/files/run/t7582b.flags +++ b/test/files/run/t7582b.flags @@ -1 +1 @@ --optimize
\ No newline at end of file +-optimize -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t7634.check b/test/files/run/t7634.check index 9c6b8b47dd..879aea67a2 100644 --- a/test/files/run/t7634.check +++ b/test/files/run/t7634.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> .lines diff --git a/test/files/run/t7747-repl.check b/test/files/run/t7747-repl.check index 98e3d3b821..487daf4878 100644 --- a/test/files/run/t7747-repl.check +++ b/test/files/run/t7747-repl.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> var x = 10 x: Int = 10 @@ -17,13 +15,13 @@ scala> val z = x * y z: Int = 156 scala> 2 ; 3 -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 2 ;; ^ res0: Int = 3 scala> { 2 ; 3 } -<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:12: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses { 2 ; 3 } ^ res1: Int = 3 @@ -32,16 +30,16 @@ scala> 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Mooo 1 + 2 + 3 } ; bippy+88+11 -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { ^ defined object Cow @@ -83,10 +81,10 @@ scala> ( (2 + 2 ) ) res10: Int = 4 scala> 5 ; ( (2 + 2 ) ) ; ((5)) -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; ( (2 + 2 ) ) ;; ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 5 ; ( (2 + 2 ) ) ;; ^ res11: Int = 5 @@ -103,16 +101,16 @@ res14: String = 4423 scala> scala> 55 ; ((2 + 2)) ; (1, 2, 3) -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ; ((2 + 2)) ;; ^ -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ; ((2 + 2)) ;; ^ res15: (Int, Int, Int) = (1,2,3) scala> 55 ; (x: Int) => x + 1 ; () => ((5)) -<console>:12: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:13: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ; (x: Int) => x + 1 ;; ^ res16: () => Int = <function0> @@ -123,7 +121,7 @@ scala> () => 5 res17: () => Int = <function0> scala> 55 ; () => 5 -<console>:10: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses +<console>:11: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses 55 ;; ^ res18: () => Int = <function0> @@ -211,13 +209,13 @@ Forgetting all expression results and named terms: $intp, BippyBungus, Bovine, C Forgetting defined types: BippyBungus, Moo, Ruminant scala> x1 + x2 + x3 -<console>:11: error: not found: value x1 +<console>:12: error: not found: value x1 x1 + x2 + x3 ^ -<console>:11: error: not found: value x2 +<console>:12: error: not found: value x2 x1 + x2 + x3 ^ -<console>:11: error: not found: value x3 +<console>:12: error: not found: value x3 x1 + x2 + x3 ^ @@ -225,7 +223,7 @@ scala> val x1 = 4 x1: Int = 4 scala> new BippyBungus -<console>:11: error: not found: type BippyBungus +<console>:12: error: not found: type BippyBungus new BippyBungus ^ diff --git a/test/files/run/t7747-repl.scala b/test/files/run/t7747-repl.scala index 141c2d9844..9b2d1c40be 100644 --- a/test/files/run/t7747-repl.scala +++ b/test/files/run/t7747-repl.scala @@ -8,6 +8,13 @@ object Test extends ReplTest { s } + // replace indylambda function names by <function0> + override def eval() = { + val lines = super.eval + val r = """\$Lambda.*""".r + lines.map(l => r.replaceAllIn(l, "<function0>")) + } + def code = """ |var x = 10 |var y = 11 diff --git a/test/files/run/t7801.check b/test/files/run/t7801.check index e0b656b784..4ec89f0de6 100644 --- a/test/files/run/t7801.check +++ b/test/files/run/t7801.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> val g: scala.reflect.internal.SymbolTable = null; import g.abort g: scala.reflect.internal.SymbolTable = null diff --git a/test/files/run/t7805-repl-i.check b/test/files/run/t7805-repl-i.check index 7f66c06a11..24512c0067 100644 --- a/test/files/run/t7805-repl-i.check +++ b/test/files/run/t7805-repl-i.check @@ -2,8 +2,7 @@ Loading t7805-repl-i.script... import util._ Welcome to Scala -Type in expressions to have them evaluated. -Type :help for more information. +Type in expressions for evaluation. Or try :help. scala> Console println Try(8) Success(8) diff --git a/test/files/run/t8010.scala b/test/files/run/t8010.scala index 8636bbd12e..c78d45a43b 100644 --- a/test/files/run/t8010.scala +++ b/test/files/run/t8010.scala @@ -5,7 +5,7 @@ trait Base { def bt(n: Int) = n } trait Derived extends Base { - // was: double defintion error + // was: double definition error override def t = 1 + super.t override def t(n: Int) = 1 + super.t(n) override def bt = 1 + super.bt @@ -14,7 +14,7 @@ trait Derived extends Base { object Test extends App { val d = new Derived {} - // not the focus of thie bug, but let's just check the runtime behaviour while we're here. + // not the focus of this bug, but let's just check the runtime behaviour while we're here. assert(d.t == 2) assert(d.t(1) == 2) assert(d.bt == 3) diff --git a/test/files/run/t8346.check b/test/files/run/t8346.check deleted file mode 100644 index 1ba5c31abe..0000000000 --- a/test/files/run/t8346.check +++ /dev/null @@ -1,6 +0,0 @@ -BitSet: List(invariant, invariant, invariant, invariant) -HashSet: List(covariant (true), covariant (true), covariant (true), covariant (true)) -ListSet: List(covariant (true), covariant (true), covariant (true), covariant (true)) -SortedSet: List(invariant, invariant, invariant, invariant) -TreeSet: List(invariant, invariant, invariant, invariant) -ValueSet: invariant diff --git a/test/files/run/t8346.scala b/test/files/run/t8346.scala deleted file mode 100644 index 5f3df84174..0000000000 --- a/test/files/run/t8346.scala +++ /dev/null @@ -1,34 +0,0 @@ -object Test extends App { - import reflect.ClassTag - - object SomeEnum extends Enumeration { - val one, two, three, four = Value - } - - def sctor[A <: Set[Int]](f: Int => A)(implicit A: ClassTag[A]) - : (String, Int => Set[Int]) = - (A.runtimeClass.getSimpleName, f) - - val inits: Seq[(String, Int => Set[Int])] = { - import collection.immutable.{Seq => _, _} - Seq(sctor(BitSet(_)), - sctor(HashSet(_)), - sctor(ListSet(_)), - sctor(SortedSet(_)), - sctor(TreeSet(_))) - } - - def sVarInfo[A](sa: Set[A]): String = { - val saa = sa.toSet[Any] - if (sa eq saa) s"""covariant (${(saa + "hi") contains "hi"})""" - else "invariant" - } - - inits foreach {case (name, singleton) => - print(s"${name}: ") - val one = singleton(1) - println(Seq(2,3,4).scanLeft(one)(_ + _) map sVarInfo toList) - } - - println(s"ValueSet: ${sVarInfo(SomeEnum.values)}") -} diff --git a/test/files/run/t8502b.scala b/test/files/run/t8502b.scala new file mode 100644 index 0000000000..4f70d13bb0 --- /dev/null +++ b/test/files/run/t8502b.scala @@ -0,0 +1,46 @@ +import scala.tools.partest._ +import java.io.File + +// used to crash with an assertion failure in flatten because the type symbol created for the missing +// package was a ClassSymbol, not a PackageClassSymbol +// - isFlattenablePrefix(vanishingPackage) was true (wrongly) +// - therefore flatten tried to flatten the class defined in the package, but the class is +// top-level, vanishingClass.enclosingTopLevelClass is NoSymbol +object Test extends StoreReporterDirectTest { + def code = ??? + + def compileCode(code: String) = { + val classpath = List(sys.props("partest.lib"), testOutput.path) mkString sys.props("path.separator") + compileString(newCompiler("-cp", classpath, "-d", testOutput.path))(code) + } + + def show(): Unit = { + compileCode(""" + class Outer { + class Nested extends vanishing.Vanishing + } + + package vanishing { + class Vanishing + } + """) + assert(filteredInfos.isEmpty, filteredInfos) + deletePackage("vanishing") + compileCode(""" + class Test { + def f(o: Outer): Outer = o + } + """) + assert(storeReporter.infos.isEmpty, storeReporter.infos.mkString("\n")) // Included a MissingRequirementError before. + } + + def deletePackage(name: String) { + val directory = new File(testOutput.path, name) + for (f <- directory.listFiles()) { + assert(f.getName.endsWith(".class")) + assert(f.delete()) + } + assert(directory.listFiles().isEmpty) + assert(directory.delete()) + } +} diff --git a/test/files/run/t8549.scala b/test/files/run/t8549.scala index da1a9d58c1..0f2be6a4cd 100644 --- a/test/files/run/t8549.scala +++ b/test/files/run/t8549.scala @@ -79,7 +79,7 @@ object Test extends App { } } - // Generated on 20150519-10:11:14 with Scala version 2.12.0-20150517-213212-4c1ce60ef9) + // Generated on 20150627-00:51:59 with Scala version 2.12.0-20150626-225838-66bdc5200f) overwrite.foreach(updateComment) check(Some(1))("rO0ABXNyAApzY2FsYS5Tb21lESLyaV6hi3QCAAFMAAF4dAASTGphdmEvbGFuZy9PYmplY3Q7eHIADHNjYWxhLk9wdGlvbv5pN/3bDmZ0AgAAeHBzcgARamF2YS5sYW5nLkludGVnZXIS4qCk94GHOAIAAUkABXZhbHVleHIAEGphdmEubGFuZy5OdW1iZXKGrJUdC5TgiwIAAHhwAAAAAQ==") @@ -115,6 +115,19 @@ object Test extends App { // TODO SI-8576 unstable under -Xcheckinit check(collection.convert.Wrappers)( "rO0ABXNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcA==") + + check(new collection.convert.Wrappers.SetWrapper(immutable.Set()))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkU2V0V3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkU2V0V3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL1NldDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyAChzY2FsYS5jb2xsZWN0aW9uLmltbXV0YWJsZS5TZXQkRW1wdHlTZXQk8Hk3TFN0uDYCAAB4cA==") + check(new collection.convert.Wrappers.SetWrapper(immutable.Set(1, 2, 3)))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkU2V0V3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkU2V0V3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL1NldDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyACNzY2FsYS5jb2xsZWN0aW9uLmltbXV0YWJsZS5TZXQkU2V0M84syT0560SgAgADTAAFZWxlbTF0ABJMamF2YS9sYW5nL09iamVjdDtMAAVlbGVtMnEAfgAZTAAFZWxlbTNxAH4AGXhwc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAFzcQB+ABsAAAACc3EAfgAbAAAAAw==") + check(new collection.convert.Wrappers.SetWrapper(mutable.Set()))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkU2V0V3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkU2V0V3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL1NldDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuSGFzaFNldAAAAAAAAAABAwAAeHB3DQAAAcIAAAAAAAAABQB4") + check(new collection.convert.Wrappers.SetWrapper(mutable.Set(1, 2, 3)))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkU2V0V3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkU2V0V3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL1NldDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuSGFzaFNldAAAAAAAAAABAwAAeHB3DQAAAcIAAAADAAAABQBzcgARamF2YS5sYW5nLkludGVnZXIS4qCk94GHOAIAAUkABXZhbHVleHIAEGphdmEubGFuZy5OdW1iZXKGrJUdC5TgiwIAAHhwAAAAAXNxAH4AGgAAAAJzcQB+ABoAAAADeA==") + check(new collection.convert.Wrappers.MutableSetWrapper(mutable.Set()))("rO0ABXNyADNzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXK9XXTONonwwgIAAUwACnVuZGVybHlpbmd0AB5Mc2NhbGEvY29sbGVjdGlvbi9tdXRhYmxlL1NldDt4cgAsc2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJFNldFdyYXBwZXIAAAAAAAAAAQIAAkwABiRvdXRlcnQAI0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnM7TAA4c2NhbGEkY29sbGVjdGlvbiRjb252ZXJ0JFdyYXBwZXJzJFNldFdyYXBwZXIkJHVuZGVybHlpbmd0ABZMc2NhbGEvY29sbGVjdGlvbi9TZXQ7eHBzcgAic2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJK60s4os2ryBAgASTAAYRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA2THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyREaWN0aW9uYXJ5V3JhcHBlciQ7TAAWSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSXRlcmFibGVXcmFwcGVyJDtMABZJdGVyYXRvcldyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYXRvcldyYXBwZXIkO0wAGUpDb2xsZWN0aW9uV3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpDb2xsZWN0aW9uV3JhcHBlciQ7TAAcSkNvbmN1cnJlbnRNYXBXcmFwcGVyJG1vZHVsZXQAOkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbmN1cnJlbnRNYXBXcmFwcGVyJDtMABlKRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRGljdGlvbmFyeVdyYXBwZXIkO0wAGkpFbnVtZXJhdGlvbldyYXBwZXIkbW9kdWxldAA4THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRW51bWVyYXRpb25XcmFwcGVyJDtMABdKSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhYmxlV3JhcHBlciQ7TAAXSkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADVMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpJdGVyYXRvcldyYXBwZXIkO0wAE0pMaXN0V3JhcHBlciRtb2R1bGV0ADFMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpMaXN0V3JhcHBlciQ7TAASSk1hcFdyYXBwZXIkbW9kdWxldAAwTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKTWFwV3JhcHBlciQ7TAAZSlByb3BlcnRpZXNXcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlByb3BlcnRpZXNXcmFwcGVyJDtMABJKU2V0V3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpTZXRXcmFwcGVyJDtMABtNdXRhYmxlQnVmZmVyV3JhcHBlciRtb2R1bGV0ADlMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVCdWZmZXJXcmFwcGVyJDtMABhNdXRhYmxlTWFwV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVNYXBXcmFwcGVyJDtMABhNdXRhYmxlU2VxV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXFXcmFwcGVyJDtMABhNdXRhYmxlU2V0V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXRXcmFwcGVyJDtMABFTZXFXcmFwcGVyJG1vZHVsZXQAL0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkU2VxV3JhcHBlciQ7eHBwcHBwcHBwcHBwcHBwcHBwcHBzcgAgc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLkhhc2hTZXQAAAAAAAAAAQMAAHhwdw0AAAHCAAAAAAAAAAUAeHEAfgAb") + check(new collection.convert.Wrappers.MutableSetWrapper(mutable.Set(1, 2, 3)))("rO0ABXNyADNzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXK9XXTONonwwgIAAUwACnVuZGVybHlpbmd0AB5Mc2NhbGEvY29sbGVjdGlvbi9tdXRhYmxlL1NldDt4cgAsc2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJFNldFdyYXBwZXIAAAAAAAAAAQIAAkwABiRvdXRlcnQAI0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnM7TAA4c2NhbGEkY29sbGVjdGlvbiRjb252ZXJ0JFdyYXBwZXJzJFNldFdyYXBwZXIkJHVuZGVybHlpbmd0ABZMc2NhbGEvY29sbGVjdGlvbi9TZXQ7eHBzcgAic2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJK60s4os2ryBAgASTAAYRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA2THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyREaWN0aW9uYXJ5V3JhcHBlciQ7TAAWSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSXRlcmFibGVXcmFwcGVyJDtMABZJdGVyYXRvcldyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYXRvcldyYXBwZXIkO0wAGUpDb2xsZWN0aW9uV3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpDb2xsZWN0aW9uV3JhcHBlciQ7TAAcSkNvbmN1cnJlbnRNYXBXcmFwcGVyJG1vZHVsZXQAOkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbmN1cnJlbnRNYXBXcmFwcGVyJDtMABlKRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRGljdGlvbmFyeVdyYXBwZXIkO0wAGkpFbnVtZXJhdGlvbldyYXBwZXIkbW9kdWxldAA4THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRW51bWVyYXRpb25XcmFwcGVyJDtMABdKSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhYmxlV3JhcHBlciQ7TAAXSkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADVMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpJdGVyYXRvcldyYXBwZXIkO0wAE0pMaXN0V3JhcHBlciRtb2R1bGV0ADFMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpMaXN0V3JhcHBlciQ7TAASSk1hcFdyYXBwZXIkbW9kdWxldAAwTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKTWFwV3JhcHBlciQ7TAAZSlByb3BlcnRpZXNXcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlByb3BlcnRpZXNXcmFwcGVyJDtMABJKU2V0V3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpTZXRXcmFwcGVyJDtMABtNdXRhYmxlQnVmZmVyV3JhcHBlciRtb2R1bGV0ADlMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVCdWZmZXJXcmFwcGVyJDtMABhNdXRhYmxlTWFwV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVNYXBXcmFwcGVyJDtMABhNdXRhYmxlU2VxV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXFXcmFwcGVyJDtMABhNdXRhYmxlU2V0V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXRXcmFwcGVyJDtMABFTZXFXcmFwcGVyJG1vZHVsZXQAL0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkU2VxV3JhcHBlciQ7eHBwcHBwcHBwcHBwcHBwcHBwcHBzcgAgc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLkhhc2hTZXQAAAAAAAAAAQMAAHhwdw0AAAHCAAAAAwAAAAUAc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAFzcQB+ABwAAAACc3EAfgAcAAAAA3hxAH4AGw==") + check(new collection.convert.Wrappers.MapWrapper(immutable.Map()))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTWFwV3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkTWFwV3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL01hcDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyAChzY2FsYS5jb2xsZWN0aW9uLmltbXV0YWJsZS5NYXAkRW1wdHlNYXAknTcK54mVQiQCAAB4cA==") + check(new collection.convert.Wrappers.MapWrapper(immutable.Map[Int, Int](1 -> 2, 2 -> 3, 3 -> 4)))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTWFwV3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkTWFwV3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL01hcDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyACNzY2FsYS5jb2xsZWN0aW9uLmltbXV0YWJsZS5NYXAkTWFwM6csFD+HjyRxAgAGTAAEa2V5MXQAEkxqYXZhL2xhbmcvT2JqZWN0O0wABGtleTJxAH4AGUwABGtleTNxAH4AGUwABnZhbHVlMXEAfgAZTAAGdmFsdWUycQB+ABlMAAZ2YWx1ZTNxAH4AGXhwc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAFzcQB+ABsAAAACc3EAfgAbAAAAA3EAfgAecQB+AB9zcQB+ABsAAAAE") + check(new collection.convert.Wrappers.MapWrapper(mutable.Map()))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTWFwV3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkTWFwV3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL01hcDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuSGFzaE1hcAAAAAAAAAABAwAAeHB3DQAAAu4AAAAAAAAABAB4") + check(new collection.convert.Wrappers.MapWrapper(mutable.Map[Int, Int](1 -> 2, 2 -> 3, 3 -> 4)))("rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTWFwV3JhcHBlcgAAAAAAAAABAgACTAAGJG91dGVydAAjTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycztMADhzY2FsYSRjb2xsZWN0aW9uJGNvbnZlcnQkV3JhcHBlcnMkTWFwV3JhcHBlciQkdW5kZXJseWluZ3QAFkxzY2FsYS9jb2xsZWN0aW9uL01hcDt4cHNyACJzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkrrSziizavIECABJMABhEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJERpY3Rpb25hcnlXcmFwcGVyJDtMABZJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYWJsZVdyYXBwZXIkO0wAFkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADRMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEl0ZXJhdG9yV3JhcHBlciQ7TAAZSkNvbGxlY3Rpb25XcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbGxlY3Rpb25XcmFwcGVyJDtMABxKQ29uY3VycmVudE1hcFdyYXBwZXIkbW9kdWxldAA6THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKQ29uY3VycmVudE1hcFdyYXBwZXIkO0wAGUpEaWN0aW9uYXJ5V3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpEaWN0aW9uYXJ5V3JhcHBlciQ7TAAaSkVudW1lcmF0aW9uV3JhcHBlciRtb2R1bGV0ADhMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpFbnVtZXJhdGlvbldyYXBwZXIkO0wAF0pJdGVyYWJsZVdyYXBwZXIkbW9kdWxldAA1THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKSXRlcmFibGVXcmFwcGVyJDtMABdKSXRlcmF0b3JXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhdG9yV3JhcHBlciQ7TAATSkxpc3RXcmFwcGVyJG1vZHVsZXQAMUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkxpc3RXcmFwcGVyJDtMABJKTWFwV3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpNYXBXcmFwcGVyJDtMABlKUHJvcGVydGllc1dyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKUHJvcGVydGllc1dyYXBwZXIkO0wAEkpTZXRXcmFwcGVyJG1vZHVsZXQAMExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlNldFdyYXBwZXIkO0wAG011dGFibGVCdWZmZXJXcmFwcGVyJG1vZHVsZXQAOUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZUJ1ZmZlcldyYXBwZXIkO0wAGE11dGFibGVNYXBXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXIkO0wAGE11dGFibGVTZXFXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNlcVdyYXBwZXIkO0wAGE11dGFibGVTZXRXcmFwcGVyJG1vZHVsZXQANkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkTXV0YWJsZVNldFdyYXBwZXIkO0wAEVNlcVdyYXBwZXIkbW9kdWxldAAvTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRTZXFXcmFwcGVyJDt4cHBwcHBwcHBwcHBwcHBwcHBwcHNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuSGFzaE1hcAAAAAAAAAABAwAAeHB3DQAAAu4AAAADAAAABABzcgARamF2YS5sYW5nLkludGVnZXIS4qCk94GHOAIAAUkABXZhbHVleHIAEGphdmEubGFuZy5OdW1iZXKGrJUdC5TgiwIAAHhwAAAAAnNxAH4AGgAAAANzcQB+ABoAAAABcQB+ABxxAH4AHXNxAH4AGgAAAAR4") + check(new collection.convert.Wrappers.MutableMapWrapper(mutable.Map()))("rO0ABXNyADNzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXJ4TG6ffKy11wIAAUwACnVuZGVybHlpbmd0AB5Mc2NhbGEvY29sbGVjdGlvbi9tdXRhYmxlL01hcDt4cgAsc2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJE1hcFdyYXBwZXIAAAAAAAAAAQIAAkwABiRvdXRlcnQAI0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnM7TAA4c2NhbGEkY29sbGVjdGlvbiRjb252ZXJ0JFdyYXBwZXJzJE1hcFdyYXBwZXIkJHVuZGVybHlpbmd0ABZMc2NhbGEvY29sbGVjdGlvbi9NYXA7eHBzcgAic2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJK60s4os2ryBAgASTAAYRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA2THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyREaWN0aW9uYXJ5V3JhcHBlciQ7TAAWSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSXRlcmFibGVXcmFwcGVyJDtMABZJdGVyYXRvcldyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYXRvcldyYXBwZXIkO0wAGUpDb2xsZWN0aW9uV3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpDb2xsZWN0aW9uV3JhcHBlciQ7TAAcSkNvbmN1cnJlbnRNYXBXcmFwcGVyJG1vZHVsZXQAOkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbmN1cnJlbnRNYXBXcmFwcGVyJDtMABlKRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRGljdGlvbmFyeVdyYXBwZXIkO0wAGkpFbnVtZXJhdGlvbldyYXBwZXIkbW9kdWxldAA4THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRW51bWVyYXRpb25XcmFwcGVyJDtMABdKSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhYmxlV3JhcHBlciQ7TAAXSkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADVMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpJdGVyYXRvcldyYXBwZXIkO0wAE0pMaXN0V3JhcHBlciRtb2R1bGV0ADFMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpMaXN0V3JhcHBlciQ7TAASSk1hcFdyYXBwZXIkbW9kdWxldAAwTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKTWFwV3JhcHBlciQ7TAAZSlByb3BlcnRpZXNXcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlByb3BlcnRpZXNXcmFwcGVyJDtMABJKU2V0V3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpTZXRXcmFwcGVyJDtMABtNdXRhYmxlQnVmZmVyV3JhcHBlciRtb2R1bGV0ADlMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVCdWZmZXJXcmFwcGVyJDtMABhNdXRhYmxlTWFwV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVNYXBXcmFwcGVyJDtMABhNdXRhYmxlU2VxV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXFXcmFwcGVyJDtMABhNdXRhYmxlU2V0V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXRXcmFwcGVyJDtMABFTZXFXcmFwcGVyJG1vZHVsZXQAL0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkU2VxV3JhcHBlciQ7eHBwcHBwcHBwcHBwcHBwcHBwcHBzcgAgc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLkhhc2hNYXAAAAAAAAAAAQMAAHhwdw0AAALuAAAAAAAAAAQAeHEAfgAb") + check(new collection.convert.Wrappers.MutableMapWrapper(mutable.Map[Int, Int](1 -> 2, 2 -> 3, 3 -> 4)))("rO0ABXNyADNzY2FsYS5jb2xsZWN0aW9uLmNvbnZlcnQuV3JhcHBlcnMkTXV0YWJsZU1hcFdyYXBwZXJ4TG6ffKy11wIAAUwACnVuZGVybHlpbmd0AB5Mc2NhbGEvY29sbGVjdGlvbi9tdXRhYmxlL01hcDt4cgAsc2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJE1hcFdyYXBwZXIAAAAAAAAAAQIAAkwABiRvdXRlcnQAI0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnM7TAA4c2NhbGEkY29sbGVjdGlvbiRjb252ZXJ0JFdyYXBwZXJzJE1hcFdyYXBwZXIkJHVuZGVybHlpbmd0ABZMc2NhbGEvY29sbGVjdGlvbi9NYXA7eHBzcgAic2NhbGEuY29sbGVjdGlvbi5jb252ZXJ0LldyYXBwZXJzJK60s4os2ryBAgASTAAYRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA2THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyREaWN0aW9uYXJ5V3JhcHBlciQ7TAAWSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANExzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSXRlcmFibGVXcmFwcGVyJDtMABZJdGVyYXRvcldyYXBwZXIkbW9kdWxldAA0THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRJdGVyYXRvcldyYXBwZXIkO0wAGUpDb2xsZWN0aW9uV3JhcHBlciRtb2R1bGV0ADdMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpDb2xsZWN0aW9uV3JhcHBlciQ7TAAcSkNvbmN1cnJlbnRNYXBXcmFwcGVyJG1vZHVsZXQAOkxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkNvbmN1cnJlbnRNYXBXcmFwcGVyJDtMABlKRGljdGlvbmFyeVdyYXBwZXIkbW9kdWxldAA3THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRGljdGlvbmFyeVdyYXBwZXIkO0wAGkpFbnVtZXJhdGlvbldyYXBwZXIkbW9kdWxldAA4THNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKRW51bWVyYXRpb25XcmFwcGVyJDtMABdKSXRlcmFibGVXcmFwcGVyJG1vZHVsZXQANUxzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSkl0ZXJhYmxlV3JhcHBlciQ7TAAXSkl0ZXJhdG9yV3JhcHBlciRtb2R1bGV0ADVMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpJdGVyYXRvcldyYXBwZXIkO0wAE0pMaXN0V3JhcHBlciRtb2R1bGV0ADFMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpMaXN0V3JhcHBlciQ7TAASSk1hcFdyYXBwZXIkbW9kdWxldAAwTHNjYWxhL2NvbGxlY3Rpb24vY29udmVydC9XcmFwcGVycyRKTWFwV3JhcHBlciQ7TAAZSlByb3BlcnRpZXNXcmFwcGVyJG1vZHVsZXQAN0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkSlByb3BlcnRpZXNXcmFwcGVyJDtMABJKU2V0V3JhcHBlciRtb2R1bGV0ADBMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJEpTZXRXcmFwcGVyJDtMABtNdXRhYmxlQnVmZmVyV3JhcHBlciRtb2R1bGV0ADlMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVCdWZmZXJXcmFwcGVyJDtMABhNdXRhYmxlTWFwV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVNYXBXcmFwcGVyJDtMABhNdXRhYmxlU2VxV3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXFXcmFwcGVyJDtMABhNdXRhYmxlU2V0V3JhcHBlciRtb2R1bGV0ADZMc2NhbGEvY29sbGVjdGlvbi9jb252ZXJ0L1dyYXBwZXJzJE11dGFibGVTZXRXcmFwcGVyJDtMABFTZXFXcmFwcGVyJG1vZHVsZXQAL0xzY2FsYS9jb2xsZWN0aW9uL2NvbnZlcnQvV3JhcHBlcnMkU2VxV3JhcHBlciQ7eHBwcHBwcHBwcHBwcHBwcHBwcHBzcgAgc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLkhhc2hNYXAAAAAAAAAAAQMAAHhwdw0AAALuAAAAAwAAAAQAc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAJzcQB+ABwAAAADc3EAfgAcAAAAAXEAfgAecQB+AB9zcQB+ABwAAAAEeHEAfgAb") check(immutable.BitSet(1, 2, 3))( "rO0ABXNyAClzY2FsYS5jb2xsZWN0aW9uLmltbXV0YWJsZS5CaXRTZXQkQml0U2V0MR9dg8JGRI8UAgABSgAFZWxlbXN4cgAhc2NhbGEuY29sbGVjdGlvbi5pbW11dGFibGUuQml0U2V0Flz5Ms3qxsoCAAB4cAAAAAAAAAAO") check(immutable.HashMap())( "rO0ABXNyADVzY2FsYS5jb2xsZWN0aW9uLmltbXV0YWJsZS5IYXNoTWFwJFNlcmlhbGl6YXRpb25Qcm94eQAAAAAAAAACAwAAeHB3BAAAAAB4") @@ -166,6 +179,9 @@ object Test extends App { check(mutable.TreeMap())( "rO0ABXNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuVHJlZU1hcNx8qC229ZvwAgACTAAIb3JkZXJpbmd0ABVMc2NhbGEvbWF0aC9PcmRlcmluZztMACZzY2FsYSRjb2xsZWN0aW9uJG11dGFibGUkVHJlZU1hcCQkdHJlZXQALExzY2FsYS9jb2xsZWN0aW9uL211dGFibGUvUmVkQmxhY2tUcmVlJFRyZWU7eHBzcgAYc2NhbGEubWF0aC5PcmRlcmluZyRJbnQkC4BMdr1Z51wCAAB4cHNyACpzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuUmVkQmxhY2tUcmVlJFRyZWUATKc08DWmFQIAAkkABHNpemVMAARyb290dAAsTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9SZWRCbGFja1RyZWUkTm9kZTt4cAAAAABw") check(mutable.TreeMap(1 -> 1, 3 -> 6))( "rO0ABXNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuVHJlZU1hcNx8qC229ZvwAgACTAAIb3JkZXJpbmd0ABVMc2NhbGEvbWF0aC9PcmRlcmluZztMACZzY2FsYSRjb2xsZWN0aW9uJG11dGFibGUkVHJlZU1hcCQkdHJlZXQALExzY2FsYS9jb2xsZWN0aW9uL211dGFibGUvUmVkQmxhY2tUcmVlJFRyZWU7eHBzcgAYc2NhbGEubWF0aC5PcmRlcmluZyRJbnQkC4BMdr1Z51wCAAB4cHNyACpzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuUmVkQmxhY2tUcmVlJFRyZWUATKc08DWmFQIAAkkABHNpemVMAARyb290dAAsTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9SZWRCbGFja1RyZWUkTm9kZTt4cAAAAAJzcgAqc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLlJlZEJsYWNrVHJlZSROb2RlGxHsFtValgACAAZaAANyZWRMAANrZXl0ABJMamF2YS9sYW5nL09iamVjdDtMAARsZWZ0cQB+AAdMAAZwYXJlbnRxAH4AB0wABXJpZ2h0cQB+AAdMAAV2YWx1ZXEAfgAKeHAAc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAFwcHNxAH4ACQFzcQB+AAwAAAADcHEAfgALcHNxAH4ADAAAAAZxAH4ADg==") check(mutable.TreeMap(1 -> 1, 3 -> 6).range(1, 2))( "rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuVHJlZU1hcCRUcmVlTWFwVmlldx7MCZxLhVQ8AgADTAAGJG91dGVydAAiTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9UcmVlTWFwO0wABGZyb210AA5Mc2NhbGEvT3B0aW9uO0wABXVudGlscQB+AAJ4cgAgc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLlRyZWVNYXDcfKgttvWb8AIAAkwACG9yZGVyaW5ndAAVTHNjYWxhL21hdGgvT3JkZXJpbmc7TAAmc2NhbGEkY29sbGVjdGlvbiRtdXRhYmxlJFRyZWVNYXAkJHRyZWV0ACxMc2NhbGEvY29sbGVjdGlvbi9tdXRhYmxlL1JlZEJsYWNrVHJlZSRUcmVlO3hwc3IAGHNjYWxhLm1hdGguT3JkZXJpbmckSW50JAuATHa9WedcAgAAeHBzcgAqc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLlJlZEJsYWNrVHJlZSRUcmVlAEynNPA1phUCAAJJAARzaXplTAAEcm9vdHQALExzY2FsYS9jb2xsZWN0aW9uL211dGFibGUvUmVkQmxhY2tUcmVlJE5vZGU7eHAAAAACc3IAKnNjYWxhLmNvbGxlY3Rpb24ubXV0YWJsZS5SZWRCbGFja1RyZWUkTm9kZRsR7BbVWpYAAgAGWgADcmVkTAADa2V5dAASTGphdmEvbGFuZy9PYmplY3Q7TAAEbGVmdHEAfgAKTAAGcGFyZW50cQB+AApMAAVyaWdodHEAfgAKTAAFdmFsdWVxAH4ADXhwAHNyABFqYXZhLmxhbmcuSW50ZWdlchLioKT3gYc4AgABSQAFdmFsdWV4cgAQamF2YS5sYW5nLk51bWJlcoaslR0LlOCLAgAAeHAAAAABcHBzcQB+AAwBc3EAfgAPAAAAA3BxAH4ADnBzcQB+AA8AAAAGcQB+ABFzcQB+AANxAH4ACHEAfgALc3IACnNjYWxhLlNvbWURIvJpXqGLdAIAAUwAAXhxAH4ADXhyAAxzY2FsYS5PcHRpb27+aTf92w5mdAIAAHhwcQB+ABFzcQB+ABZzcQB+AA8AAAAC") + check(mutable.TreeSet())( "rO0ABXNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuVHJlZVNldM10nxFQDpt4AgACTAAIb3JkZXJpbmd0ABVMc2NhbGEvbWF0aC9PcmRlcmluZztMACZzY2FsYSRjb2xsZWN0aW9uJG11dGFibGUkVHJlZVNldCQkdHJlZXQALExzY2FsYS9jb2xsZWN0aW9uL211dGFibGUvUmVkQmxhY2tUcmVlJFRyZWU7eHBzcgAYc2NhbGEubWF0aC5PcmRlcmluZyRJbnQkC4BMdr1Z51wCAAB4cHNyACpzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuUmVkQmxhY2tUcmVlJFRyZWUATKc08DWmFQIAAkkABHNpemVMAARyb290dAAsTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9SZWRCbGFja1RyZWUkTm9kZTt4cAAAAABw") + check(mutable.TreeSet(1, 3))( "rO0ABXNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuVHJlZVNldM10nxFQDpt4AgACTAAIb3JkZXJpbmd0ABVMc2NhbGEvbWF0aC9PcmRlcmluZztMACZzY2FsYSRjb2xsZWN0aW9uJG11dGFibGUkVHJlZVNldCQkdHJlZXQALExzY2FsYS9jb2xsZWN0aW9uL211dGFibGUvUmVkQmxhY2tUcmVlJFRyZWU7eHBzcgAYc2NhbGEubWF0aC5PcmRlcmluZyRJbnQkC4BMdr1Z51wCAAB4cHNyACpzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuUmVkQmxhY2tUcmVlJFRyZWUATKc08DWmFQIAAkkABHNpemVMAARyb290dAAsTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9SZWRCbGFja1RyZWUkTm9kZTt4cAAAAAJzcgAqc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLlJlZEJsYWNrVHJlZSROb2RlGxHsFtValgACAAZaAANyZWRMAANrZXl0ABJMamF2YS9sYW5nL09iamVjdDtMAARsZWZ0cQB+AAdMAAZwYXJlbnRxAH4AB0wABXJpZ2h0cQB+AAdMAAV2YWx1ZXEAfgAKeHAAc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAFwcHNxAH4ACQFzcQB+AAwAAAADcHEAfgALcHBw") + check(mutable.TreeSet(1, 3).range(1, 2))( "rO0ABXNyACxzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuVHJlZVNldCRUcmVlU2V0Vmlld2JdAzqy0DpGAgADTAAGJG91dGVydAAiTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9UcmVlU2V0O0wABGZyb210AA5Mc2NhbGEvT3B0aW9uO0wABXVudGlscQB+AAJ4cgAgc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLlRyZWVTZXTNdJ8RUA6beAIAAkwACG9yZGVyaW5ndAAVTHNjYWxhL21hdGgvT3JkZXJpbmc7TAAmc2NhbGEkY29sbGVjdGlvbiRtdXRhYmxlJFRyZWVTZXQkJHRyZWV0ACxMc2NhbGEvY29sbGVjdGlvbi9tdXRhYmxlL1JlZEJsYWNrVHJlZSRUcmVlO3hwc3IAGHNjYWxhLm1hdGguT3JkZXJpbmckSW50JAuATHa9WedcAgAAeHBzcgAqc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLlJlZEJsYWNrVHJlZSRUcmVlAEynNPA1phUCAAJJAARzaXplTAAEcm9vdHQALExzY2FsYS9jb2xsZWN0aW9uL211dGFibGUvUmVkQmxhY2tUcmVlJE5vZGU7eHAAAAACc3IAKnNjYWxhLmNvbGxlY3Rpb24ubXV0YWJsZS5SZWRCbGFja1RyZWUkTm9kZRsR7BbVWpYAAgAGWgADcmVkTAADa2V5dAASTGphdmEvbGFuZy9PYmplY3Q7TAAEbGVmdHEAfgAKTAAGcGFyZW50cQB+AApMAAVyaWdodHEAfgAKTAAFdmFsdWVxAH4ADXhwAHNyABFqYXZhLmxhbmcuSW50ZWdlchLioKT3gYc4AgABSQAFdmFsdWV4cgAQamF2YS5sYW5nLk51bWJlcoaslR0LlOCLAgAAeHAAAAABcHBzcQB+AAwBc3EAfgAPAAAAA3BxAH4ADnBwcHNxAH4AA3EAfgAIcQB+AAtzcgAKc2NhbGEuU29tZREi8mleoYt0AgABTAABeHEAfgANeHIADHNjYWxhLk9wdGlvbv5pN/3bDmZ0AgAAeHBxAH4AEXNxAH4AFXNxAH4ADwAAAAI=") // TODO SI-8576 Uninitialized field under -Xcheckinit // check(new mutable.History())( "rO0ABXNyACBzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuSGlzdG9yeUhuXxDIFJrsAgACSQAKbWF4SGlzdG9yeUwAA2xvZ3QAIExzY2FsYS9jb2xsZWN0aW9uL211dGFibGUvUXVldWU7eHAAAAPoc3IAHnNjYWxhLmNvbGxlY3Rpb24ubXV0YWJsZS5RdWV1ZbjMURVfOuHHAgAAeHIAJHNjYWxhLmNvbGxlY3Rpb24ubXV0YWJsZS5NdXRhYmxlTGlzdFJpnjJ+gFbAAgADSQADbGVuTAAGZmlyc3QwdAAlTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9MaW5rZWRMaXN0O0wABWxhc3QwcQB+AAV4cAAAAABzcgAjc2NhbGEuY29sbGVjdGlvbi5tdXRhYmxlLkxpbmtlZExpc3Sak+nGCZHaUQIAAkwABGVsZW10ABJMamF2YS9sYW5nL09iamVjdDtMAARuZXh0dAAeTHNjYWxhL2NvbGxlY3Rpb24vbXV0YWJsZS9TZXE7eHBwcQB+AApxAH4ACg==") check(mutable.LinkedHashMap(1 -> 2))( "rO0ABXNyACZzY2FsYS5jb2xsZWN0aW9uLm11dGFibGUuTGlua2VkSGFzaE1hcAAAAAAAAAABAwAAeHB3DQAAAu4AAAABAAAABABzcgARamF2YS5sYW5nLkludGVnZXIS4qCk94GHOAIAAUkABXZhbHVleHIAEGphdmEubGFuZy5OdW1iZXKGrJUdC5TgiwIAAHhwAAAAAXNxAH4AAgAAAAJ4") diff --git a/test/files/run/t8601.flags b/test/files/run/t8601.flags index 1182725e86..2cd4b38726 100644 --- a/test/files/run/t8601.flags +++ b/test/files/run/t8601.flags @@ -1 +1 @@ --optimize
\ No newline at end of file +-optimize -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t8601b.flags b/test/files/run/t8601b.flags index 1182725e86..2cd4b38726 100644 --- a/test/files/run/t8601b.flags +++ b/test/files/run/t8601b.flags @@ -1 +1 @@ --optimize
\ No newline at end of file +-optimize -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t8601c.flags b/test/files/run/t8601c.flags index 1182725e86..2cd4b38726 100644 --- a/test/files/run/t8601c.flags +++ b/test/files/run/t8601c.flags @@ -1 +1 @@ --optimize
\ No newline at end of file +-optimize -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t8601d.flags b/test/files/run/t8601d.flags index 1182725e86..2cd4b38726 100644 --- a/test/files/run/t8601d.flags +++ b/test/files/run/t8601d.flags @@ -1 +1 @@ --optimize
\ No newline at end of file +-optimize -Ybackend:GenASM
\ No newline at end of file diff --git a/test/files/run/t8601e.flags b/test/files/run/t8601e.flags index 49d036a887..b9bb09167e 100644 --- a/test/files/run/t8601e.flags +++ b/test/files/run/t8601e.flags @@ -1 +1 @@ --optimize +-optimize -Ybackend:GenASM diff --git a/test/files/run/t8843-repl-xlat.scala b/test/files/run/t8843-repl-xlat.scala index 6426dbe7d4..215dd97061 100644 --- a/test/files/run/t8843-repl-xlat.scala +++ b/test/files/run/t8843-repl-xlat.scala @@ -4,9 +4,7 @@ import scala.tools.partest.SessionTest // Handy hamburger helper for repl resources object Test extends SessionTest { def session = -"""Type in expressions to have them evaluated. -Type :help for more information. - +""" scala> $intp.isettings.unwrapStrings = false $intp.isettings.unwrapStrings: Boolean = false diff --git a/test/files/run/t8893b.scala b/test/files/run/t8893b.scala index 19120871aa..066425aab6 100644 --- a/test/files/run/t8893b.scala +++ b/test/files/run/t8893b.scala @@ -5,7 +5,7 @@ object Test { def tick(i : Int): Unit = if (i == 0) () else if (i == 42) { - tick(0) /*not in tail posiiton*/ + tick(0) /*not in tail position*/ tick(i - 1) } else tick(i - 1) diff --git a/test/files/run/t8918-unary-ids.check b/test/files/run/t8918-unary-ids.check new file mode 100644 index 0000000000..92f02371c7 --- /dev/null +++ b/test/files/run/t8918-unary-ids.check @@ -0,0 +1,7 @@ +Expected 41 lines, got 39 +--- expected ++++ actual +@@ -1,3 +1,1 @@ +-Type in expressions to have them evaluated. +-Type :help for more information. + diff --git a/test/files/run/t8960.scala b/test/files/run/t8960.scala index a58ac53d33..a43d5679d8 100644 --- a/test/files/run/t8960.scala +++ b/test/files/run/t8960.scala @@ -1,5 +1,5 @@ object Test extends App { - def test(o: AnyRef, sp: Boolean = false) = { + def testAnonFunClass(o: AnyRef, sp: Boolean = false) = { val isSpecialized = o.getClass.getSuperclass.getName contains "$sp" val isDelambdafyMethod = o.getClass.getName contains "$lambda$" assert( @@ -11,62 +11,68 @@ object Test extends App { assert(f.getLong(null) == 0l) } - test(() => (), sp = true) - test(() => 1, sp = true) - test(() => "") + def testIndyLambda(o: AnyRef, sp: Boolean = false) = { + val isSpecialized = o.getClass.getInterfaces.exists(_.getName contains "$sp") + assert(sp == isSpecialized, o.getClass.getName) + } + + + testIndyLambda(() => (), sp = true) + testIndyLambda(() => 1, sp = true) + testIndyLambda(() => "") - test((x: Int) => x, sp = true) - test((x: Boolean) => x) - test((x: Int) => "") + testIndyLambda((x: Int) => x, sp = true) + testIndyLambda((x: Boolean) => x) + testIndyLambda((x: Int) => "") - test((x1: Int, x2: Int) => 0d, sp = true) - test((x1: Int, x2: AnyRef) => 0d) - test((x1: Any, x2: Any) => x1) + testIndyLambda((x1: Int, x2: Int) => 0d, sp = true) + testIndyLambda((x1: Int, x2: AnyRef) => 0d) + testIndyLambda((x1: Any, x2: Any) => x1) - // scala> println((for (i <- 3 to 22) yield (for (j <- 1 to i) yield s"x$j: Int").mkString(" test((", ", ", ") => x1)")).mkString("\n")) + // scala> println((for (i <- 3 to 22) yield (for (j <- 1 to i) yield s"x$j: Int").mkString(" testIndyLambda((", ", ", ") => x1)")).mkString("\n")) - test((x1: Int, x2: Int, x3: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int, x20: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int, x20: Int, x21: Int) => x1) - test((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int, x20: Int, x21: Int, x22: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int, x20: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int, x20: Int, x21: Int) => x1) + testIndyLambda((x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int, x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int, x20: Int, x21: Int, x22: Int) => x1) - test({ + testAnonFunClass({ case x: Int => x }: PartialFunction[Int, Int], sp = true) - test({ + testAnonFunClass({ case x: Int => x }: PartialFunction[Any, Any]) - test({ + testAnonFunClass({ case x: Int => () }: PartialFunction[Int, Unit], sp = true) - test({ + testAnonFunClass({ case x: String => 1 }: PartialFunction[String, Int]) - test({ + testAnonFunClass({ case x: String => () }: PartialFunction[String, Unit]) - test({ + testAnonFunClass({ case x: String => x }: PartialFunction[String, String]) } diff --git a/test/files/run/t9003.flags b/test/files/run/t9003.flags index 49d036a887..b9bb09167e 100644 --- a/test/files/run/t9003.flags +++ b/test/files/run/t9003.flags @@ -1 +1 @@ --optimize +-optimize -Ybackend:GenASM diff --git a/test/files/run/t9097.scala b/test/files/run/t9097.scala index aa2b23bbac..2b5cf66a75 100644 --- a/test/files/run/t9097.scala +++ b/test/files/run/t9097.scala @@ -29,6 +29,6 @@ object Test extends StoreReporterDirectTest { assert(!storeReporter.hasErrors, message = filteredInfos map (_.msg) mkString "; ") val out = baos.toString("UTF-8") // was 2 before the fix, the two PackageDefs for a would both contain the ClassDef for the closure - assert(out.lines.count(_ contains "class hihi$1") == 1, out) + assert(out.lines.count(_ contains "def $anonfun$1(x$1: Int): String") == 1, out) } } diff --git a/test/files/run/t9170.scala b/test/files/run/t9170.scala index 67a58d6803..f39467bc25 100644 --- a/test/files/run/t9170.scala +++ b/test/files/run/t9170.scala @@ -6,21 +6,19 @@ object Test extends SessionTest { override def stripMargins = false def session = -"""Type in expressions to have them evaluated. -Type :help for more information. - +""" scala> object Y { def f[A](a: => A) = 1 ; def f[A](a: => Either[Exception, A]) = 2 } -<console>:10: error: double definition: -def f[A](a: => A): Int at line 10 and -def f[A](a: => Either[Exception,A]): Int at line 10 +<console>:11: error: double definition: +def f[A](a: => A): Int at line 11 and +def f[A](a: => Either[Exception,A]): Int at line 11 have same type after erasure: (a: Function0)Int object Y { def f[A](a: => A) = 1 ; def f[A](a: => Either[Exception, A]) = 2 } ^ scala> object Y { def f[A](a: => A) = 1 ; def f[A](a: => Either[Exception, A]) = 2 } -<console>:10: error: double definition: -def f[A](a: => A): Int at line 10 and -def f[A](a: => Either[Exception,A]): Int at line 10 +<console>:11: error: double definition: +def f[A](a: => A): Int at line 11 and +def f[A](a: => Either[Exception,A]): Int at line 11 have same type after erasure: (a: Function0)Int object Y { def f[A](a: => A) = 1 ; def f[A](a: => Either[Exception, A]) = 2 } ^ @@ -29,9 +27,9 @@ scala> object Y { | def f[A](a: => A) = 1 | def f[A](a: => Either[Exception, A]) = 2 | } -<console>:12: error: double definition: -def f[A](a: => A): Int at line 11 and -def f[A](a: => Either[Exception,A]): Int at line 12 +<console>:13: error: double definition: +def f[A](a: => A): Int at line 12 and +def f[A](a: => Either[Exception,A]): Int at line 13 have same type after erasure: (a: Function0)Int def f[A](a: => Either[Exception, A]) = 2 ^ @@ -46,9 +44,9 @@ object Y { // Exiting paste mode, now interpreting. -<console>:12: error: double definition: -def f[A](a: => A): Int at line 11 and -def f[A](a: => Either[Exception,A]): Int at line 12 +<console>:13: error: double definition: +def f[A](a: => A): Int at line 12 and +def f[A](a: => Either[Exception,A]): Int at line 13 have same type after erasure: (a: Function0)Int def f[A](a: => Either[Exception, A]) = 2 ^ diff --git a/test/files/run/t9174.check b/test/files/run/t9174.check index 9320a081ff..14d6bc10db 100644 --- a/test/files/run/t9174.check +++ b/test/files/run/t9174.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> import scala.util.{Success, Failure} import scala.util.{Success, Failure} diff --git a/test/files/run/t9206.scala b/test/files/run/t9206.scala index 2942d0f73e..406798104e 100644 --- a/test/files/run/t9206.scala +++ b/test/files/run/t9206.scala @@ -5,18 +5,16 @@ object Test extends SessionTest { //override def prompt = "XXX> " //Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40). def session = - s"""|Type in expressions to have them evaluated. - |Type :help for more information. - | + s"""| |scala> val i: Int = "foo" - |<console>:10: error: type mismatch; + |<console>:11: error: type mismatch; | found : String("foo") | required: Int | val i: Int = "foo" | ^ | |scala> { val j = 42 ; val i: Int = "foo" + j } - |<console>:11: error: type mismatch; + |<console>:12: error: type mismatch; | found : String | required: Int | { val j = 42 ; val i: Int = "foo" + j } diff --git a/test/files/run/t9365.check b/test/files/run/t9365.check new file mode 100644 index 0000000000..0d55bed3a3 --- /dev/null +++ b/test/files/run/t9365.check @@ -0,0 +1,2 @@ +foo +foo diff --git a/test/files/run/t9365.scala b/test/files/run/t9365.scala new file mode 100644 index 0000000000..0c4477dda9 --- /dev/null +++ b/test/files/run/t9365.scala @@ -0,0 +1,18 @@ +class Test(x: => Object) extends Serializable { + @transient lazy val foo = x +} + +object Test { + def main(args: Array[String]): Unit = { + import java.io._ + val t = new Test("foo") + println(t.foo) + val baos = new ByteArrayOutputStream + val dos = new ObjectOutputStream(baos) + dos.writeObject(t) + dos.close() + val dis = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())) + val t1 = dis.readObject().asInstanceOf[Test] + println(t1.foo) // was NPE + } +} diff --git a/test/files/run/t9387.scala b/test/files/run/t9387.scala new file mode 100644 index 0000000000..3e33d19fd2 --- /dev/null +++ b/test/files/run/t9387.scala @@ -0,0 +1,20 @@ +class G[T] +object G { + def v[T](x: T): G[T] = null +} + +class A[T] +object A { + def apply[T](x: => G[T]): A[T] = null +} + +object T { + A[Unit](G.v(() => ())) // Was VerifyError +} + +object Test { + def main(args: Array[String]): Unit = { + T + } + +}
\ No newline at end of file diff --git a/test/files/run/t9387b.check b/test/files/run/t9387b.check new file mode 100644 index 0000000000..6a452c185a --- /dev/null +++ b/test/files/run/t9387b.check @@ -0,0 +1 @@ +() diff --git a/test/files/run/t9387b.scala b/test/files/run/t9387b.scala new file mode 100644 index 0000000000..6339f4caba --- /dev/null +++ b/test/files/run/t9387b.scala @@ -0,0 +1,16 @@ +object T { + val f: Unit = () => () + println(f) +} + +object U { + def f[T](t: T): T = t + f[Unit](() => ()) +} + +object Test { + def main(args: Array[String]): Unit = { + T + U + } +} diff --git a/test/files/run/t9403.flags b/test/files/run/t9403.flags new file mode 100644 index 0000000000..307668060c --- /dev/null +++ b/test/files/run/t9403.flags @@ -0,0 +1 @@ +-Ybackend:GenASM -optimize diff --git a/test/files/run/t9403/C_1.scala b/test/files/run/t9403/C_1.scala new file mode 100644 index 0000000000..439af1a386 --- /dev/null +++ b/test/files/run/t9403/C_1.scala @@ -0,0 +1,5 @@ +package p +class C { + @inline final def f(x: Int): Long = 10L / (if (x < 0) -2 else 2) + @inline final def g(x: Int): Long = 3000L / (if (x < 0) -300 else 300) +} diff --git a/test/files/run/t9403/Test_2.scala b/test/files/run/t9403/Test_2.scala new file mode 100644 index 0000000000..fb2777b9a8 --- /dev/null +++ b/test/files/run/t9403/Test_2.scala @@ -0,0 +1,29 @@ +import p.C +import scala.tools.asm.Opcodes +import scala.tools.partest.BytecodeTest +import scala.tools.partest.ASMConverters._ + + +object Test extends BytecodeTest { + def foo(c: C, x: Int) = c.f(x) + def goo(c: C, x: Int) = c.g(x) + + def has(i: Instruction, c: String, m: String) = { + val cls = loadClassNode(c) + val mth = convertMethod(getMethod(cls, m)) + assert(mth.instructions.contains(i)) + } + + def show(): Unit = { + assert(foo(new C, -2) == -5L) + assert(goo(new C, -2) == -10L) + + val bipush2 = IntOp(Opcodes.BIPUSH, -2) + has(bipush2, "p.C", "f") + has(bipush2, "Test$", "foo") + + val sipush300 = IntOp(Opcodes.SIPUSH, -300) + has(sipush300, "p.C", "g") + has(sipush300, "Test$", "goo") + } +} diff --git a/test/files/run/t9408.scala b/test/files/run/t9408.scala new file mode 100644 index 0000000000..231dca4ce7 --- /dev/null +++ b/test/files/run/t9408.scala @@ -0,0 +1,61 @@ +class Outer { + def assertNoFields(c: Class[_]) { + assert(c.getDeclaredFields.isEmpty) + } + def assertHasOuter(c: Class[_]) { + assert(c.getDeclaredFields.exists(_.getName.contains("outer"))) + } + class Member + final class FinalMember + + def test { + assertHasOuter(classOf[Member]) + assertNoFields(classOf[FinalMember]) + final class C + assertNoFields(classOf[C]) + class D + assertNoFields(classOf[D]) + (() => {class E; assertNoFields(classOf[E])}).apply() + + // The outer reference elision currently runs on a class-by-class basis. If it cannot rule out that a class has + // subclasses, it will not remove the outer reference. A smarter analysis here could detect if no members of + // a sealed (or effectively sealed) hierarchy use the outer reference, the optimization could be performed. + class Parent + class Child extends Parent + assertHasOuter(classOf[Parent]) + + // Note: outer references (if they haven't been elided) are used in pattern matching as follows. + // This isn't relevant to term-owned classes, as you can't refer to them with a prefix that includes + // the outer class. + val outer1 = new Outer + val outer2 = new Outer + (new outer1.Member: Any) match { + case _: outer2.Member => sys.error("wrong match!") + case _: outer1.Member => // okay + } + + // ... continuing on that theme, note that `Member` isn't considered as a local class, it is owned by a the class + // `LocalOuter`, which itself happens to be term-owned. So we expect that it has an outer reference, and that this + // is respected in type tests. + class LocalOuter { + class Member + final class FinalMember + } + assertNoFields(classOf[LocalOuter]) + assertHasOuter(classOf[LocalOuter#Member]) + val localOuter1 = new LocalOuter + val localOuter2 = new LocalOuter + (new localOuter1.Member: Any) match { + case _: localOuter2.Member => sys.error("wrong match!") + case _: localOuter1.Member => // okay + } + // Final member classes still lose the outer reference. + assertNoFields(classOf[LocalOuter#FinalMember]) + } +} + +object Test { + def main(args: Array[String]): Unit = { + new Outer().test + } +} diff --git a/test/files/run/t9422.scala b/test/files/run/t9422.scala new file mode 100644 index 0000000000..5ca2e8daaa --- /dev/null +++ b/test/files/run/t9422.scala @@ -0,0 +1,11 @@ +class Test(val x: Long) { + def sameDirection(y: Long): Boolean = + (y == 0 || x == 0 || ((y > 0) == (x > 0))) +} + +object Test { + def main(args: Array[String]) { + val b = new Test(1L) + assert(!b.sameDirection(-1L)) + } +} diff --git a/test/files/run/t9425.scala b/test/files/run/t9425.scala new file mode 100644 index 0000000000..f251cc8579 --- /dev/null +++ b/test/files/run/t9425.scala @@ -0,0 +1,8 @@ +class C { case class Foo private (x: Int); Foo.apply(0) } + +object Test { + def test(c: C) = {import c.Foo; Foo.apply(0)} + def main(args: Array[String]): Unit = { + test(new C) + } +} diff --git a/test/files/run/test-cpp.scala b/test/files/run/test-cpp.scala index 7db831fb09..80163deb66 100644 --- a/test/files/run/test-cpp.scala +++ b/test/files/run/test-cpp.scala @@ -46,7 +46,7 @@ object TestSetterInline { * The access of the local variable 'y' should be replaced by the * constant. */ -object TestAliasChainConstat { +object TestAliasChainConstant { def main(args: Array[String]): Unit = { val x = 2 diff --git a/test/files/run/tpeCache-tyconCache.check b/test/files/run/tpeCache-tyconCache.check index ff604819e0..ac13d32f91 100644 --- a/test/files/run/tpeCache-tyconCache.check +++ b/test/files/run/tpeCache-tyconCache.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> :power ** Power User mode enabled - BEEP WHIR GYVE ** diff --git a/test/files/run/xMigration.check b/test/files/run/xMigration.check index 304132a848..cd860bf394 100644 --- a/test/files/run/xMigration.check +++ b/test/files/run/xMigration.check @@ -1,5 +1,3 @@ -Type in expressions to have them evaluated. -Type :help for more information. scala> Map(1 -> "eis").values // no warn res0: Iterable[String] = MapLike(eis) @@ -12,7 +10,7 @@ res1: Iterable[String] = MapLike(eis) scala> :setting -Xmigration:any scala> Map(1 -> "eis").values // warn -<console>:11: warning: method values in trait MapLike has changed semantics in version 2.8.0: +<console>:12: warning: method values in trait MapLike has changed semantics in version 2.8.0: `values` returns `Iterable[B]` rather than `Iterator[B]`. Map(1 -> "eis").values // warn ^ @@ -26,7 +24,7 @@ res3: Iterable[String] = MapLike(eis) scala> :setting -Xmigration:2.7 scala> Map(1 -> "eis").values // warn -<console>:11: warning: method values in trait MapLike has changed semantics in version 2.8.0: +<console>:12: warning: method values in trait MapLike has changed semantics in version 2.8.0: `values` returns `Iterable[B]` rather than `Iterator[B]`. Map(1 -> "eis").values // warn ^ @@ -40,7 +38,7 @@ res5: Iterable[String] = MapLike(eis) scala> :setting -Xmigration // same as :any scala> Map(1 -> "eis").values // warn -<console>:11: warning: method values in trait MapLike has changed semantics in version 2.8.0: +<console>:12: warning: method values in trait MapLike has changed semantics in version 2.8.0: `values` returns `Iterable[B]` rather than `Iterator[B]`. Map(1 -> "eis").values // warn ^ diff --git a/test/files/scalacheck/MutableTreeMap.scala b/test/files/scalacheck/MutableTreeMap.scala index ac073b1c42..42b88c56a7 100644 --- a/test/files/scalacheck/MutableTreeMap.scala +++ b/test/files/scalacheck/MutableTreeMap.scala @@ -5,6 +5,7 @@ import org.scalacheck.Arbitrary._ import org.scalacheck.Prop.forAll import scala.collection.generic.CanBuildFrom +import scala.collection.immutable import scala.collection.mutable import scala.util.Try import scala.collection.mutable.{RedBlackTree => RB} @@ -107,8 +108,9 @@ package scala.collection.mutable { } property("++=") = forAll { (map: mutable.TreeMap[K, V], entries: Seq[(K, V)]) => + val oldEntries = map.toMap map ++= entries - entries.toMap.forall { case (k, v) => map.get(k) == Some(v) } + (oldEntries ++ entries).forall { case (k, v) => map.get(k) == Some(v) } } property("-=") = forAll { (map: mutable.TreeMap[K, V], k: K) => @@ -121,8 +123,10 @@ package scala.collection.mutable { } property("--=") = forAll { (map: mutable.TreeMap[K, V], ks: Seq[K]) => + val oldElems = map.toList map --= ks - ks.toSet.forall { k => map.get(k) == None } + val deletedElems = ks.toSet + oldElems.forall { case (k, v) => map.get(k) == (if(deletedElems(k)) None else Some(v)) } } property("iterator") = forAll { (entries: Map[K, V]) => @@ -163,7 +167,7 @@ package scala.collection.mutable { property("clear") = forAll { (map: mutable.TreeMap[K, V]) => map.clear() - map.isEmpty + map.isEmpty && map.size == 0 } property("serializable") = forAll { (map: mutable.TreeMap[K, V]) => @@ -176,6 +180,18 @@ package scala.collection.mutable { val sameMap = in.readObject().asInstanceOf[mutable.TreeMap[K, V]] map.iterator.toSeq == sameMap.iterator.toSeq } + + property("same behavior as immutable.TreeMap") = forAll { ops: Seq[Either[(K, V), K]] => + var imap = immutable.TreeMap[K, V]() + val mmap = mutable.TreeMap[K, V]() + + ops.foreach { + case Left((k, v)) => imap += k -> v; mmap += k -> v + case Right(k) => imap -= k; mmap -= k + } + + imap.toList == mmap.toList + } } object MutableTreeMapViewProperties extends Properties("mutable.TreeMapView") with Generators { @@ -303,7 +319,7 @@ package scala.collection.mutable { property("clear") = forAll { (map: mutable.TreeMap[K, V], from: Option[K], until: Option[K]) => val mapView = map.rangeImpl(from, until) mapView.clear() - map.isEmpty && mapView.isEmpty + map.isEmpty && mapView.isEmpty && map.size == 0 && mapView.size == 0 } property("serializable") = forAll { (map: mutable.TreeMap[K, V], from: Option[K], until: Option[K]) => diff --git a/test/files/scalacheck/MutableTreeSet.scala b/test/files/scalacheck/MutableTreeSet.scala new file mode 100644 index 0000000000..bcb1d0ed94 --- /dev/null +++ b/test/files/scalacheck/MutableTreeSet.scala @@ -0,0 +1,216 @@ +import java.io._ + +import org.scalacheck._ +import org.scalacheck.Arbitrary._ +import org.scalacheck.Prop.forAll + +import scala.collection.generic.CanBuildFrom +import scala.collection.immutable +import scala.collection.mutable +import scala.util.Try + +package scala.collection.mutable { + + object MutableTreeSetProperties extends Properties("mutable.TreeSet") { + type K = String + + property("size, isEmpty") = forAll { (elems: Set[K]) => + val set = mutable.TreeSet[K]() + set ++= elems + set.size == elems.size && set.isEmpty == elems.isEmpty + } + + property("+=") = forAll { (set: mutable.TreeSet[K], k: K) => + val oldSize = set.size + val containedKeyBefore = set.contains(k) + val newExpectedSize = if(containedKeyBefore) oldSize else oldSize + 1 + + set += k + set.contains(k) && set.size == newExpectedSize + } + + property("++=") = forAll { (set: mutable.TreeSet[K], ks: Seq[K]) => + val oldElems = set.toList + set ++= ks + (oldElems ++ ks).forall(set.contains) + } + + property("-=") = forAll { (set: mutable.TreeSet[K], k: K) => + val oldSize = set.size + val containedKeyBefore = set.contains(k) + val newExpectedSize = if(containedKeyBefore) oldSize - 1 else oldSize + + set -= k + !set.contains(k) && set.size == newExpectedSize + } + + property("--=") = forAll { (set: mutable.TreeSet[K], ks: Seq[K]) => + val oldElems = set.toList + set --= ks + val deletedElems = ks.toSet + oldElems.forall { e => set.contains(e) == !deletedElems(e) } + } + + property("iterator") = forAll { (ks: Set[K]) => + val set = mutable.TreeSet[K]() + set ++= ks + + set.iterator.toSeq == ks.toSeq.sorted + } + + property("iteratorFrom, keysIteratorFrom") = forAll { (ks: Set[K], k: K) => + val set = mutable.TreeSet[K]() + set ++= ks + + set.iteratorFrom(k).toSeq == ks.filter(_ >= k).toSeq.sorted + set.keysIteratorFrom(k).toSeq == ks.filter(_ >= k).toSeq.sorted + } + + property("headOption") = forAll { (set: mutable.TreeSet[K]) => + set.headOption == Try(set.iterator.next()).toOption + } + + property("lastOption") = forAll { (set: mutable.TreeSet[K]) => + set.lastOption == Try(set.iterator.max).toOption + } + + property("clear") = forAll { (set: mutable.TreeSet[K]) => + set.clear() + set.isEmpty && set.size == 0 + } + + property("serializable") = forAll { (set: mutable.TreeSet[K]) => + val bytesOut = new ByteArrayOutputStream() + val out = new ObjectOutputStream(bytesOut) + out.writeObject(set) + val bytes = bytesOut.toByteArray + + val in = new ObjectInputStream(new ByteArrayInputStream(bytes)) + val sameSet = in.readObject().asInstanceOf[mutable.TreeSet[K]] + set.iterator.toSeq == sameSet.iterator.toSeq + } + + property("same behavior as immutable.TreeMap") = forAll { ops: Seq[Either[K, K]] => + var iset = immutable.TreeSet[K]() + val mset = mutable.TreeSet[K]() + + ops.foreach { + case Left(k) => iset += k; mset += k + case Right(k) => iset -= k; mset -= k + } + + iset.toList == mset.toList + } + } + + object MutableTreeSetViewProperties extends Properties("mutable.TreeSetView") { + type K = String + + implicit val ord = implicitly[Ordering[K]] + + def in(key: K, from: Option[K], until: Option[K]) = + from.fold(true)(_ <= key) && until.fold(true)(_ > key) + + def keysInView[This <: TraversableOnce[K], That](keys: This, from: Option[K], until: Option[K])(implicit bf: CanBuildFrom[This, K, That]) = { + (bf.apply(keys) ++= keys.filter(in(_, from, until))).result() + } + + property("size, isEmpty") = forAll { (keys: Set[K], from: Option[K], until: Option[K]) => + val map = mutable.TreeSet[K]() + map ++= keys + + val mapView = map.rangeImpl(from, until) + mapView.size == keysInView(keys, from, until).size && + mapView.isEmpty == !keys.exists(in(_, from, until)) + } + + property("+=") = forAll { (set: mutable.TreeSet[K], k: K, from: Option[K], until: Option[K]) => + val oldSize = set.size + val containedKeyBefore = set.contains(k) + val newExpectedSize = if(containedKeyBefore) oldSize else oldSize + 1 + val isInRange = in(k, from, until) + + val setView = set.rangeImpl(from, until) + setView += k + + set.contains(k) && set.size == newExpectedSize && setView.contains(k) == isInRange + } + + property("++=") = forAll { (set: mutable.TreeSet[K], ks: Seq[K], from: Option[K], until: Option[K]) => + val setView = set.rangeImpl(from, until) + setView ++= ks + ks.toSet.forall { k => + set.contains(k) && setView.contains(k) == in(k, from, until) + } + } + + property("-=") = forAll { (set: mutable.TreeSet[K], k: K, from: Option[K], until: Option[K]) => + val oldSize = set.size + val containedKeyBefore = set.contains(k) + val newExpectedSize = if(containedKeyBefore) oldSize - 1 else oldSize + + val setView = set.rangeImpl(from, until) + setView -= k + + !set.contains(k) && set.size == newExpectedSize && !setView.contains(k) + } + + property("--=") = forAll { (set: mutable.TreeSet[K], ks: Seq[K], from: Option[K], until: Option[K]) => + val setView = set.rangeImpl(from, until) + setView --= ks + ks.toSet.forall { k => !set.contains(k) && !setView.contains(k) } + } + + property("iterator") = forAll { (ks: Set[K], from: Option[K], until: Option[K]) => + val set = mutable.TreeSet[K]() + set ++= ks + + val setView = set.rangeImpl(from, until) + setView.iterator.toSeq == keysInView(ks, from, until).toSeq.sorted + } + + property("iteratorFrom, keysIteratorFrom") = forAll { (ks: Set[K], k: K, from: Option[K], until: Option[K]) => + val set = mutable.TreeSet[K]() + set ++= ks + + val setView = set.rangeImpl(from, until) + val newLower = Some(from.fold(k)(ord.max(_, k))) + setView.iteratorFrom(k).toSeq == keysInView(ks, newLower, until).toSeq.sorted + } + + property("headOption") = forAll { (set: mutable.TreeSet[K], from: Option[K], until: Option[K]) => + val setView = set.rangeImpl(from, until) + setView.headOption == Try(keysInView(set.iterator, from, until).next()).toOption + } + + property("lastOption") = forAll { (set: mutable.TreeSet[K], from: Option[K], until: Option[K]) => + val setView = set.rangeImpl(from, until) + setView.lastOption == Try(keysInView(set.iterator, from, until).max).toOption + } + + property("clear") = forAll { (set: mutable.TreeSet[K], from: Option[K], until: Option[K]) => + val setView = set.rangeImpl(from, until) + setView.clear() + set.isEmpty && setView.isEmpty && set.size == 0 && setView.size == 0 + } + + property("serializable") = forAll { (set: mutable.TreeSet[K], from: Option[K], until: Option[K]) => + val setView = set.rangeImpl(from, until) + + val bytesOut = new ByteArrayOutputStream() + val out = new ObjectOutputStream(bytesOut) + out.writeObject(setView) + val bytes = bytesOut.toByteArray + + val in = new ObjectInputStream(new ByteArrayInputStream(bytes)) + val sameSetView = in.readObject().asInstanceOf[mutable.TreeSet[K]] + setView.iterator.toSeq == sameSetView.iterator.toSeq + } + } +} + +object Test extends Properties("mutable.TreeSet") { + import scala.collection.mutable._ + include(MutableTreeSetProperties) + include(MutableTreeSetViewProperties) +} diff --git a/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala b/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala index 7bd37140a7..ab1056dd86 100644 --- a/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala +++ b/test/files/scalacheck/quasiquotes/ArbitraryTreesAndNames.scala @@ -250,8 +250,8 @@ trait ArbitraryTreesAndNames { genAppliedTypeTree(size - 1), genTypeBoundsTree(size - 1)) /* These are marker types that allow to write tests that - * depend specificly on Trees that are terms or types. - * They are transparently tranformed to trees through + * depend specifically on Trees that are terms or types. + * They are transparently transformed to trees through * implicit conversions and liftables for quasiquotes. */ diff --git a/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala b/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala index fd810674f5..4ab8bb8531 100644 --- a/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala +++ b/test/files/scalacheck/quasiquotes/DefinitionConstructionProps.scala @@ -346,7 +346,7 @@ trait MethodConstruction { self: QuasiquoteProperties => } } - property("can't unquote annotations with arguments specificed twice") = test { + property("can't unquote annotations with arguments specified twice") = test { val a = q"new a(x)" assertThrows[IllegalArgumentException] { q"@$a(y) def foo" @@ -370,7 +370,7 @@ trait PackageConstruction { self: QuasiquoteProperties => assertEqAst(q"package $name { }", "package foo.bar { }") } - property("splce name into package name") = test{ + property("splice name into package name") = test{ val name = TermName("bippy") assertEqAst(q"package $name { }", "package bippy { }") } diff --git a/test/files/scalacheck/quasiquotes/ErrorProps.scala b/test/files/scalacheck/quasiquotes/ErrorProps.scala index 2cba07abf2..0c24149372 100644 --- a/test/files/scalacheck/quasiquotes/ErrorProps.scala +++ b/test/files/scalacheck/quasiquotes/ErrorProps.scala @@ -162,7 +162,7 @@ object ErrorProps extends QuasiquoteProperties("errors") { q"$n" """) - property("SI-8211: check unbound placeholder paremeters") = fails( + property("SI-8211: check unbound placeholder parameters") = fails( "unbound placeholder parameter", """ q"_" diff --git a/test/junit/scala/collection/SetMapConsistencyTest.scala b/test/junit/scala/collection/SetMapConsistencyTest.scala index 5f14af7c37..eb864a8449 100644 --- a/test/junit/scala/collection/SetMapConsistencyTest.scala +++ b/test/junit/scala/collection/SetMapConsistencyTest.scala @@ -190,7 +190,9 @@ class SetMapConsistencyTest { def boxMbs = new BoxMutableSet[Int, cm.BitSet](new cm.BitSet, "mutable.BitSet") def boxMhs[A] = new BoxMutableSet[A, cm.HashSet[A]](new cm.HashSet[A], "mutable.HashSet") - + + def boxMts[A: Ordering] = new BoxMutableSet[A, cm.TreeSet[A]](new cm.TreeSet[A], "mutable.TreeSet") + def boxJavaS[A] = new BoxMutableSet[A, cm.Set[A]]((new java.util.HashSet[A]).asScala, "java.util.HashSet") { override def adders = 3 override def subbers = 1 @@ -354,7 +356,7 @@ class SetMapConsistencyTest { def churnIntSets() { val sets = Array[() => MapBox[Int]]( () => boxMhm[Int], () => boxIhm[Int], () => boxJavaS[Int], - () => boxMbs, () => boxMhs[Int], () => boxIbs, () => boxIhs[Int], () => boxIls[Int], () => boxIts[Int] + () => boxMbs, () => boxMhs[Int], () => boxMts[Int], () => boxIbs, () => boxIhs[Int], () => boxIls[Int], () => boxIts[Int] ) assert( sets.sliding(2).forall{ ms => churn(ms(0)(), ms(1)(), smallKeys, 1000, valuer = _ => 0) } ) } diff --git a/test/junit/scala/collection/convert/WrapperSerializationTest.scala b/test/junit/scala/collection/convert/WrapperSerializationTest.scala new file mode 100644 index 0000000000..d398be806a --- /dev/null +++ b/test/junit/scala/collection/convert/WrapperSerializationTest.scala @@ -0,0 +1,29 @@ +package scala.collection.convert + +import org.junit.Assert._ +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@RunWith(classOf[JUnit4]) +class WrapperSerializationTest { + def ser(a: AnyRef) = { + val baos = new java.io.ByteArrayOutputStream + (new java.io.ObjectOutputStream(baos)).writeObject(a) + baos + } + def des(baos: java.io.ByteArrayOutputStream): AnyRef = { + val bais = new java.io.ByteArrayInputStream(baos.toByteArray) + (new java.io.ObjectInputStream(bais)).readObject() + } + def serdes(a: AnyRef): Boolean = a == des(ser(a)) + + @Test + def test_SI8911() { + import scala.collection.JavaConverters._ + assert( serdes(scala.collection.mutable.ArrayBuffer(1,2).asJava) ) + assert( serdes(Seq(1,2).asJava) ) + assert( serdes(Set(1,2).asJava) ) + assert( serdes(Map(1 -> "one", 2 -> "two").asJava) ) + } +} diff --git a/test/junit/scala/collection/immutable/StreamTest.scala b/test/junit/scala/collection/immutable/StreamTest.scala index 437cbc8926..fad4e502eb 100644 --- a/test/junit/scala/collection/immutable/StreamTest.scala +++ b/test/junit/scala/collection/immutable/StreamTest.scala @@ -12,11 +12,13 @@ import scala.util.Try class StreamTest { @Test - def t6727_and_t6440(): Unit = { + def t6727_and_t6440_and_8627(): Unit = { assertTrue(Stream.continually(()).filter(_ => true).take(2) == Seq((), ())) assertTrue(Stream.continually(()).filterNot(_ => false).take(2) == Seq((), ())) assertTrue(Stream(1,2,3,4,5).filter(_ < 4) == Seq(1,2,3)) assertTrue(Stream(1,2,3,4,5).filterNot(_ > 4) == Seq(1,2,3,4)) + assertTrue(Stream.from(1).filter(_ > 4).take(3) == Seq(5,6,7)) + assertTrue(Stream.from(1).filterNot(_ <= 4).take(3) == Seq(5,6,7)) } /** Test helper to verify that the given Stream operation allows diff --git a/test/junit/scala/io/SourceTest.scala b/test/junit/scala/io/SourceTest.scala index 3138a4589c..3fe48940a0 100644 --- a/test/junit/scala/io/SourceTest.scala +++ b/test/junit/scala/io/SourceTest.scala @@ -28,6 +28,10 @@ class SourceTest { @Test def canIterateLines() = { assertEquals(sampler.lines.size, (Source fromString sampler).getLines.size) } + @Test def loadFromResource() = { + val res = Source.fromResource("rootdoc.txt") + assertTrue("No classpath resource found", res.getLines().size > 5) + } @Test def canCustomizeReporting() = { class CapitalReporting(is: InputStream) extends BufferedSource(is) { override def report(pos: Int, msg: String, out: PrintStream): Unit = { diff --git a/test/junit/scala/runtime/LambdaDeserializerTest.java b/test/junit/scala/runtime/LambdaDeserializerTest.java new file mode 100644 index 0000000000..069eb4aab6 --- /dev/null +++ b/test/junit/scala/runtime/LambdaDeserializerTest.java @@ -0,0 +1,193 @@ +package scala.runtime; + +import org.junit.Assert; +import org.junit.Test; + +import java.io.Serializable; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.SerializedLambda; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.HashMap; + +public final class LambdaDeserializerTest { + private LambdaHost lambdaHost = new LambdaHost(); + + @Test + public void serializationPrivate() { + F1<Boolean, String> f1 = lambdaHost.lambdaBackedByPrivateImplMethod(); + Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true)); + } + + @Test + public void serializationStatic() { + F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticImplMethod(); + Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true)); + } + + @Test + public void serializationVirtualMethodReference() { + F1<Boolean, String> f1 = lambdaHost.lambdaBackedByVirtualMethodReference(); + Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true)); + } + + @Test + public void serializationInterfaceMethodReference() { + F1<I, Object> f1 = lambdaHost.lambdaBackedByInterfaceMethodReference(); + I i = new I() { + }; + Assert.assertEquals(f1.apply(i), reconstitute(f1).apply(i)); + } + + @Test + public void serializationStaticMethodReference() { + F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticMethodReference(); + Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true)); + } + + @Test + public void serializationNewInvokeSpecial() { + F0<Object> f1 = lambdaHost.lambdaBackedByConstructorCall(); + Assert.assertEquals(f1.apply(), reconstitute(f1).apply()); + } + + @Test + public void uncached() { + F0<Object> f1 = lambdaHost.lambdaBackedByConstructorCall(); + F0<Object> reconstituted1 = reconstitute(f1); + F0<Object> reconstituted2 = reconstitute(f1); + Assert.assertNotEquals(reconstituted1.getClass(), reconstituted2.getClass()); + } + + @Test + public void cached() { + HashMap<String, MethodHandle> cache = new HashMap<>(); + F0<Object> f1 = lambdaHost.lambdaBackedByConstructorCall(); + F0<Object> reconstituted1 = reconstitute(f1, cache); + F0<Object> reconstituted2 = reconstitute(f1, cache); + Assert.assertEquals(reconstituted1.getClass(), reconstituted2.getClass()); + } + + @Test + public void cachedStatic() { + HashMap<String, MethodHandle> cache = new HashMap<>(); + F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticImplMethod(); + // Check that deserialization of a static lambda always returns the + // same instance. + Assert.assertSame(reconstitute(f1, cache), reconstitute(f1, cache)); + + // (as is the case with regular invocation.) + Assert.assertSame(f1, lambdaHost.lambdaBackedByStaticImplMethod()); + } + + @Test + public void implMethodNameChanged() { + F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticImplMethod(); + SerializedLambda sl = writeReplace(f1); + checkIllegalAccess(copySerializedLambda(sl, sl.getImplMethodName() + "___", sl.getImplMethodSignature())); + } + + @Test + public void implMethodSignatureChanged() { + F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticImplMethod(); + SerializedLambda sl = writeReplace(f1); + checkIllegalAccess(copySerializedLambda(sl, sl.getImplMethodName(), sl.getImplMethodSignature().replace("Boolean", "Integer"))); + } + + private void checkIllegalAccess(SerializedLambda serialized) { + try { + LambdaDeserializer.deserializeLambda(MethodHandles.lookup(), null, serialized); + throw new AssertionError(); + } catch (IllegalArgumentException iae) { + if (!iae.getMessage().contains("Illegal lambda deserialization")) { + Assert.fail("Unexpected message: " + iae.getMessage()); + } + } + } + + private SerializedLambda copySerializedLambda(SerializedLambda sl, String implMethodName, String implMethodSignature) { + Object[] captures = new Object[sl.getCapturedArgCount()]; + for (int i = 0; i < captures.length; i++) { + captures[i] = sl.getCapturedArg(i); + } + return new SerializedLambda(loadClass(sl.getCapturingClass()), sl.getFunctionalInterfaceClass(), sl.getFunctionalInterfaceMethodName(), + sl.getFunctionalInterfaceMethodSignature(), sl.getImplMethodKind(), sl.getImplClass(), implMethodName, implMethodSignature, + sl.getInstantiatedMethodType(), captures); + } + + private Class<?> loadClass(String className) { + try { + return Class.forName(className.replace('/', '.')); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + private <A, B> A reconstitute(A f1) { + return reconstitute(f1, null); + } + + @SuppressWarnings("unchecked") + private <A, B> A reconstitute(A f1, java.util.HashMap<String, MethodHandle> cache) { + try { + return (A) LambdaDeserializer.deserializeLambda(LambdaHost.lookup(), cache, writeReplace(f1)); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + private <A> SerializedLambda writeReplace(A f1) { + try { + Method writeReplace = f1.getClass().getDeclaredMethod("writeReplace"); + writeReplace.setAccessible(true); + return (SerializedLambda) writeReplace.invoke(f1); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} + + +interface F1<A, B> extends Serializable { + B apply(A a); +} + +interface F0<A> extends Serializable { + A apply(); +} + +class LambdaHost { + public F1<Boolean, String> lambdaBackedByPrivateImplMethod() { + int local = 42; + return (b) -> Arrays.asList(local, b ? "true" : "false", LambdaHost.this).toString(); + } + + @SuppressWarnings("Convert2MethodRef") + public F1<Boolean, String> lambdaBackedByStaticImplMethod() { + return (b) -> String.valueOf(b); + } + + public F1<Boolean, String> lambdaBackedByStaticMethodReference() { + return String::valueOf; + } + + public F1<Boolean, String> lambdaBackedByVirtualMethodReference() { + return Object::toString; + } + + public F1<I, Object> lambdaBackedByInterfaceMethodReference() { + return I::i; + } + + public F0<Object> lambdaBackedByConstructorCall() { + return String::new; + } + + public static MethodHandles.Lookup lookup() { + return MethodHandles.lookup(); + } +} + +interface I { + default String i() { return "i"; }; +} diff --git a/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala b/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala index d0ffd06b01..ee9580c1c3 100644 --- a/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala +++ b/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala @@ -6,7 +6,7 @@ import scala.collection.mutable.ListBuffer import scala.reflect.internal.util.BatchSourceFile import scala.reflect.io.VirtualDirectory import scala.tools.asm.Opcodes -import scala.tools.asm.tree.{ClassNode, MethodNode} +import scala.tools.asm.tree.{AbstractInsnNode, ClassNode, MethodNode} import scala.tools.cmd.CommandLineParser import scala.tools.nsc.io.AbstractFile import scala.tools.nsc.reporters.StoreReporter @@ -15,6 +15,7 @@ import scala.tools.nsc.{Settings, Global} import scala.tools.partest.ASMConverters import scala.collection.JavaConverters._ import scala.tools.testing.TempDir +import AsmUtils._ object CodeGenTools { import ASMConverters._ @@ -151,6 +152,17 @@ object CodeGenTools { def getSingleMethod(classNode: ClassNode, name: String): Method = convertMethod(classNode.methods.asScala.toList.find(_.name == name).get) + /** + * Instructions that match `query` when textified. + * If `query` starts with a `+`, the next instruction is returned. + */ + def findInstr(method: MethodNode, query: String): List[AbstractInsnNode] = { + val useNext = query(0) == '+' + val instrPart = if (useNext) query.drop(1) else query + val insns = method.instructions.iterator.asScala.find(i => textify(i) contains instrPart).toList + if (useNext) insns.map(_.getNext) else insns + } + def assertHandlerLabelPostions(h: ExceptionHandler, instructions: List[Instruction], startIndex: Int, endIndex: Int, handlerIndex: Int): Unit = { val insVec = instructions.toVector assertTrue(h.start == insVec(startIndex) && h.end == insVec(endIndex) && h.handler == insVec(handlerIndex)) diff --git a/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala b/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala index 4086f7dd7b..240d3523f1 100644 --- a/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala +++ b/test/junit/scala/tools/nsc/backend/jvm/DirectCompileTest.scala @@ -28,7 +28,7 @@ class DirectCompileTest extends ClearAfterClass { |} """.stripMargin) def s(i: Int, n: Int) = (bytes(i) & 0xff) << n - assertTrue((s(0, 24) | s(1, 16) | s(2, 8) | s(3, 0)) == 0xcafebabe) // mocha java latte machiatto surpreme dark roasted espresso + assertTrue((s(0, 24) | s(1, 16) | s(2, 8) | s(3, 0)) == 0xcafebabe) // mocha java latte macchiato surpreme dark roasted espresso } @Test diff --git a/test/junit/scala/tools/nsc/backend/jvm/IndyLambdaTest.scala b/test/junit/scala/tools/nsc/backend/jvm/IndyLambdaTest.scala new file mode 100644 index 0000000000..f5f93fef5c --- /dev/null +++ b/test/junit/scala/tools/nsc/backend/jvm/IndyLambdaTest.scala @@ -0,0 +1,55 @@ +package scala.tools.nsc.backend.jvm + +import org.junit.Assert._ +import org.junit.{Assert, Test} + +import scala.tools.asm.{Handle, Opcodes} +import scala.tools.asm.tree.InvokeDynamicInsnNode +import scala.tools.nsc.backend.jvm.AsmUtils._ +import scala.tools.nsc.backend.jvm.CodeGenTools._ +import scala.tools.testing.ClearAfterClass +import scala.collection.JavaConverters._ + +object IndyLambdaTest extends ClearAfterClass.Clearable { + var compiler = newCompiler(extraArgs = "-Ybackend:GenBCode") + + def clear(): Unit = { + compiler = null + } +} + +class IndyLambdaTest extends ClearAfterClass { + ClearAfterClass.stateToClear = IndyLambdaTest + val compiler = IndyLambdaTest.compiler + + @Test def boxingBridgeMethodUsedSelectively(): Unit = { + def implMethodDescriptorFor(code: String): String = { + val method = compileMethods(compiler)(s"""def f = $code """).find(_.name == "f").get + val x = method.instructions.iterator.asScala.toList + x.flatMap { + case insn : InvokeDynamicInsnNode => insn.bsmArgs.collect { case h : Handle => h.getDesc } + case _ => Nil + }.head + } + // unspecialized functions that have a primitive in parameter or return position + // give rise to a "boxing bridge" method (which has the suffix `$adapted`). + // This is because Scala's unboxing of null values gives zero, whereas Java's throw a NPE. + + // 1. Here we show that we are calling the boxing bridge (the lambda bodies here are compiled into + // methods of `(I)Ljava/lang/Object;` / `(I)Ljava/lang/Object;` respectively.) + assertEquals("(Ljava/lang/Object;)Ljava/lang/Object;", implMethodDescriptorFor("(x: Int) => new Object")) + assertEquals("(Ljava/lang/Object;)Ljava/lang/Object;", implMethodDescriptorFor("(x: Object) => 0")) + + // 2a. We don't need such adaptations for parameters or return values with types that differ + // from Object due to other generic substitution, LambdaMetafactory will downcast the arguments. + assertEquals("(Ljava/lang/String;)Ljava/lang/String;", implMethodDescriptorFor("(x: String) => x")) + + // 2b. Testing 2a. in combination with 1. + assertEquals("(Ljava/lang/Object;)Ljava/lang/String;", implMethodDescriptorFor("(x: Int) => \"\"")) + assertEquals("(Ljava/lang/String;)Ljava/lang/Object;", implMethodDescriptorFor("(x: String) => 0")) + + // 3. Specialized functions, don't need any of this as they implement a method like `apply$mcII$sp`, + // and the (un)boxing is handled in the base class in code emitted by scalac. + assertEquals("(I)I", implMethodDescriptorFor("(x: Int) => x")) + } +} diff --git a/test/junit/scala/tools/nsc/backend/jvm/analysis/NullnessAnalyzerTest.scala b/test/junit/scala/tools/nsc/backend/jvm/analysis/NullnessAnalyzerTest.scala index 3a85f03da2..94e776aadb 100644 --- a/test/junit/scala/tools/nsc/backend/jvm/analysis/NullnessAnalyzerTest.scala +++ b/test/junit/scala/tools/nsc/backend/jvm/analysis/NullnessAnalyzerTest.scala @@ -38,17 +38,6 @@ class NullnessAnalyzerTest extends ClearAfterClass { nullnessAnalyzer } - /** - * Instructions that match `query` when textified. - * If `query` starts with a `+`, the next instruction is returned. - */ - def findInstr(method: MethodNode, query: String): List[AbstractInsnNode] = { - val useNext = query(0) == '+' - val instrPart = if (useNext) query.drop(1) else query - val insns = method.instructions.iterator.asScala.find(i => textify(i) contains instrPart).toList - if (useNext) insns.map(_.getNext) else insns - } - def testNullness(analyzer: NullnessAnalyzer, method: MethodNode, query: String, index: Int, nullness: Nullness): Unit = { for (i <- findInstr(method, query)) { val r = analyzer.frameAt(i, method).getValue(index).nullness diff --git a/test/junit/scala/tools/nsc/backend/jvm/analysis/ProdConsAnalyzerTest.scala b/test/junit/scala/tools/nsc/backend/jvm/analysis/ProdConsAnalyzerTest.scala new file mode 100644 index 0000000000..a5b3faced8 --- /dev/null +++ b/test/junit/scala/tools/nsc/backend/jvm/analysis/ProdConsAnalyzerTest.scala @@ -0,0 +1,291 @@ +package scala.tools.nsc +package backend.jvm +package analysis + +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 +import org.junit.Assert._ + +import scala.tools.asm.Opcodes +import scala.tools.asm.tree.AbstractInsnNode +import scala.tools.partest.ASMConverters._ +import scala.tools.testing.ClearAfterClass +import CodeGenTools._ +import AsmUtils._ + +object ProdConsAnalyzerTest extends ClearAfterClass.Clearable { + var noOptCompiler = newCompiler(extraArgs = "-Ybackend:GenBCode -Yopt:l:none") + + def clear(): Unit = { + noOptCompiler = null + } +} + +@RunWith(classOf[JUnit4]) +class ProdConsAnalyzerTest extends ClearAfterClass { + ClearAfterClass.stateToClear = ProdConsAnalyzerTest + val noOptCompiler = ProdConsAnalyzerTest.noOptCompiler + + def prodToString(producer: AbstractInsnNode) = producer match { + case p: InitialProducer => p.toString + case p => textify(p) + } + + def testSingleInsn(singletonInsns: Traversable[AbstractInsnNode], expected: String): Unit = { + testInsn(single(singletonInsns), expected) + } + + def testMultiInsns(insns: Traversable[AbstractInsnNode], expected: Traversable[String]): Unit = { + assertTrue(s"Sizes don't match: ${insns.size} vs ${expected.size}", insns.size == expected.size) + for (insn <- insns) { + val txt = prodToString(insn) + assertTrue(s"Instruction $txt not found in ${expected mkString ", "}", expected.exists(txt.contains)) + } + } + + def testInsn(insn: AbstractInsnNode, expected: String): Unit = { + val txt = prodToString(insn) + assertTrue(s"Expected $expected, found $txt", txt contains expected) + } + + def single[T](c: Traversable[T]): T = { + assertTrue(s"Expected singleton collection, got $c", c.size == 1) + c.head + } + + @Test + def parameters(): Unit = { + val List(m) = compileMethods(noOptCompiler)("def f = this.toString") + val a = new ProdConsAnalyzer(m, "C") + val call = findInstr(m, "INVOKEVIRTUAL").head + + testSingleInsn(a.producersForValueAt(call, 1), "ALOAD 0") // producer of stack value + testSingleInsn(a.producersForInputsOf(call), "ALOAD 0") + + testSingleInsn(a.consumersOfValueAt(call.getNext, 1), "ARETURN") // consumer of `toString` result + testSingleInsn(a.consumersOfOutputsFrom(call), "ARETURN") + + testSingleInsn(a.ultimateConsumersOfValueAt(call.getNext, 1), "ARETURN") + + testSingleInsn(a.initialProducersForValueAt(call, 1), "ParameterProducer") + testSingleInsn(a.producersForValueAt(call, 0), "ParameterProducer") + } + + @Test + def parametersInitialProducer(): Unit = { + // mutates a parameter local (not possible in scala, but in bytecode) + import Opcodes._ + val m = genMethod(descriptor = "(I)I")( + Label(0), + VarOp(ILOAD, 1), + Jump(IFNE, Label(1)), + Op(ICONST_1), + VarOp(ISTORE, 1), + Label(1), + VarOp(ILOAD, 1), + Op(IRETURN), + Label(2) + ) + m.maxLocals = 2 + m.maxStack = 1 + val a = new ProdConsAnalyzer(m, "C") + + val ifne = findInstr(m, "IFNE").head + testSingleInsn(a.producersForValueAt(ifne, 1), "ParameterProducer") + + val ret = findInstr(m, "IRETURN").head + testMultiInsns(a.producersForValueAt(ret, 1), List("ParameterProducer", "ISTORE 1")) + } + + @Test + def branching(): Unit = { + val List(m) = compileMethods(noOptCompiler)("def f(x: Int) = { var a = x; if (a == 0) a = 12; a }") + val a = new ProdConsAnalyzer(m, "C") + + val List(ret) = findInstr(m, "IRETURN") + testMultiInsns(a.producersForValueAt(ret, 2), List("ISTORE 2", "ISTORE 2")) + testMultiInsns(a.initialProducersForValueAt(ret, 2), List("BIPUSH 12", "ParameterProducer")) + + val List(bipush) = findInstr(m, "BIPUSH 12") + testSingleInsn(a.consumersOfOutputsFrom(bipush), "ISTORE 2") + testSingleInsn(a.ultimateConsumersOfValueAt(bipush.getNext, 3), "IRETURN") + } + + @Test + def checkCast(): Unit = { + val List(m) = compileMethods(noOptCompiler)("def f(o: Object) = o.asInstanceOf[String]") + val a = new ProdConsAnalyzer(m, "C") + assert(findInstr(m, "CHECKCAST java/lang/String").length == 1) + + val List(ret) = findInstr(m, "ARETURN") + testSingleInsn(a.initialProducersForInputsOf(ret), "ParameterProducer(1)") + } + + @Test + def instanceOf(): Unit = { + val List(m) = compileMethods(noOptCompiler)("def f(o: Object) = o.isInstanceOf[String]") + val a = new ProdConsAnalyzer(m, "C") + assert(findInstr(m, "INSTANCEOF java/lang/String").length == 1) + + val List(ret) = findInstr(m, "IRETURN") + testSingleInsn(a.initialProducersForInputsOf(ret), "INSTANCEOF") + } + + @Test + def unInitLocal(): Unit = { + val List(m) = compileMethods(noOptCompiler)("def f(b: Boolean) = { if (b) { var a = 0; println(a) }; 1 }") + val a = new ProdConsAnalyzer(m, "C") + + val List(store) = findInstr(m, "ISTORE") + val List(call) = findInstr(m, "INVOKEVIRTUAL") + val List(ret) = findInstr(m, "IRETURN") + + testSingleInsn(a.producersForValueAt(store, 2), "UninitializedLocalProducer(2)") + testSingleInsn(a.producersForValueAt(call, 2), "ISTORE") + testMultiInsns(a.producersForValueAt(ret, 2), List("UninitializedLocalProducer", "ISTORE")) + } + + @Test + def dupCopying(): Unit = { + val List(m) = compileMethods(noOptCompiler)("def f = new Object") + val a = new ProdConsAnalyzer(m, "C") + + val List(newO) = findInstr(m, "NEW") + val List(constr) = findInstr(m, "INVOKESPECIAL") + + testSingleInsn(a.producersForInputsOf(constr), "DUP") + testSingleInsn(a.initialProducersForInputsOf(constr), "NEW") + + testSingleInsn(a.consumersOfOutputsFrom(newO), "DUP") + testMultiInsns(a.ultimateConsumersOfOutputsFrom(newO), List("INVOKESPECIAL", "ARETURN")) + } + + @Test + def multiProducer(): Unit = { + import Opcodes._ + val m = genMethod(descriptor = "(I)I")( + VarOp(ILOAD, 1), + VarOp(ILOAD, 1), + Op(DUP2), + Op(IADD), + Op(SWAP), + VarOp(ISTORE, 1), + Op(IRETURN) + ) + m.maxLocals = 2 + m.maxStack = 4 + val a = new ProdConsAnalyzer(m, "C") + + val List(dup2) = findInstr(m, "DUP2") + val List(add) = findInstr(m, "IADD") + val List(swap) = findInstr(m, "SWAP") + val List(store) = findInstr(m, "ISTORE") + val List(ret) = findInstr(m, "IRETURN") + + testMultiInsns(a.producersForInputsOf(dup2), List("ILOAD", "ILOAD")) + testSingleInsn(a.consumersOfValueAt(dup2.getNext, 4), "IADD") + testSingleInsn(a.consumersOfValueAt(dup2.getNext, 5), "IADD") + testMultiInsns(a.consumersOfOutputsFrom(dup2), List("IADD", "SWAP")) + + testSingleInsn(a.ultimateConsumersOfOutputsFrom(dup2), "IADD") // the 'store' is not here: it's a copying instr, so not an ultimate consumer. + testMultiInsns(a.consumersOfOutputsFrom(swap), List("IRETURN", "ISTORE")) + testSingleInsn(a.ultimateConsumersOfOutputsFrom(swap), "IRETURN") // again, no store + testSingleInsn(a.initialProducersForInputsOf(add), "ParameterProducer(1)") + + testMultiInsns(a.producersForInputsOf(swap), List("IADD", "DUP2")) + testSingleInsn(a.consumersOfValueAt(swap.getNext, 4), "ISTORE") + testSingleInsn(a.consumersOfValueAt(swap.getNext, 3), "IRETURN") + testSingleInsn(a.initialProducersForInputsOf(store), "ParameterProducer(1)") + testSingleInsn(a.initialProducersForInputsOf(ret), "IADD") + } + + @Test + def iincProdCons(): Unit = { + import Opcodes._ + val m = genMethod(descriptor = "(I)I")( + Incr(IINC, 1, 1), // producer and cosumer of local variable 1 + VarOp(ILOAD, 1), + Op(IRETURN) + ) + m.maxLocals = 2 + m.maxStack = 1 + val a = new ProdConsAnalyzer(m, "C") + + val List(inc) = findInstr(m, "IINC") + val List(load) = findInstr(m, "ILOAD") + val List(ret) = findInstr(m, "IRETURN") + + testSingleInsn(a.producersForInputsOf(inc), "ParameterProducer(1)") + testSingleInsn(a.consumersOfOutputsFrom(inc), "ILOAD") + testSingleInsn(a.ultimateConsumersOfOutputsFrom(inc), "IRETURN") + testSingleInsn(a.consumersOfValueAt(inc, 1), "IINC") // parameter value has a single consumer, the IINC + testSingleInsn(a.ultimateConsumersOfValueAt(inc, 1), "IINC") + + testSingleInsn(a.producersForInputsOf(load), "IINC") + testSingleInsn(a.producersForValueAt(load, 1), "IINC") + + testSingleInsn(a.initialProducersForInputsOf(ret), "IINC") + } + + @Test + def copyingInsns(): Unit = { + val List(m) = compileMethods(noOptCompiler)("def f = 0l.asInstanceOf[Int]") + val a = new ProdConsAnalyzer(m, "C") + + val List(cnst) = findInstr(m, "LCONST_0") + val List(l2i) = findInstr(m, "L2I") // l2i is not a copying instruction + val List(ret) = findInstr(m, "IRETURN") + + testSingleInsn(a.consumersOfOutputsFrom(cnst), "L2I") + testSingleInsn(a.ultimateConsumersOfOutputsFrom(cnst), "L2I") + + testSingleInsn(a.producersForInputsOf(l2i), "LCONST_0") + testSingleInsn(a.initialProducersForInputsOf(l2i), "LCONST_0") + + testSingleInsn(a.consumersOfOutputsFrom(l2i), "IRETURN") + testSingleInsn(a.producersForInputsOf(ret), "L2I") + } + + @Test + def cyclicProdCons(): Unit = { + import Opcodes._ + val m = genMethod(descriptor = "(I)I")( + Label(1), + VarOp(ILOAD, 1), + IntOp(BIPUSH, 10), + Op(IADD), // consumer of the above ILOAD + + Op(ICONST_0), + Jump(IF_ICMPNE, Label(2)), + + VarOp(ILOAD, 1), + VarOp(ISTORE, 1), + Jump(GOTO, Label(1)), + + Label(2), + IntOp(BIPUSH, 9), + Op(IRETURN) + ) + m.maxLocals = 2 + m.maxStack = 2 + val a = new ProdConsAnalyzer(m, "C") + + val List(iadd) = findInstr(m, "IADD") + val firstLoad = iadd.getPrevious.getPrevious + assert(firstLoad.getOpcode == ILOAD) + val secondLoad = findInstr(m, "ISTORE").head.getPrevious + assert(secondLoad.getOpcode == ILOAD) + + testSingleInsn(a.producersForValueAt(iadd, 2), "ILOAD") + testSingleInsn(a.initialProducersForValueAt(iadd, 2), "ParameterProducer(1)") + testMultiInsns(a.producersForInputsOf(firstLoad), List("ParameterProducer", "ISTORE")) + testMultiInsns(a.producersForInputsOf(secondLoad), List("ParameterProducer", "ISTORE")) + + testSingleInsn(a.ultimateConsumersOfOutputsFrom(firstLoad), "IADD") + testSingleInsn(a.ultimateConsumersOfOutputsFrom(secondLoad), "IADD") + + testSingleInsn(a.consumersOfOutputsFrom(firstLoad), "IADD") + testSingleInsn(a.consumersOfOutputsFrom(secondLoad), "ISTORE") + } +} diff --git a/test/junit/scala/tools/nsc/backend/jvm/opt/ClosureOptimizerTest.scala b/test/junit/scala/tools/nsc/backend/jvm/opt/ClosureOptimizerTest.scala new file mode 100644 index 0000000000..69eed1f75d --- /dev/null +++ b/test/junit/scala/tools/nsc/backend/jvm/opt/ClosureOptimizerTest.scala @@ -0,0 +1,74 @@ +package scala.tools.nsc +package backend.jvm +package opt + +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 +import org.junit.Test +import scala.collection.generic.Clearable +import scala.collection.mutable.ListBuffer +import scala.reflect.internal.util.BatchSourceFile +import scala.tools.asm.Opcodes._ +import org.junit.Assert._ + +import scala.tools.asm.tree._ +import scala.tools.asm.tree.analysis._ +import scala.tools.nsc.backend.jvm.opt.BytecodeUtils.AsmAnalyzer +import scala.tools.nsc.io._ +import scala.tools.nsc.reporters.StoreReporter +import scala.tools.testing.AssertUtil._ + +import CodeGenTools._ +import scala.tools.partest.ASMConverters +import ASMConverters._ +import AsmUtils._ + +import BackendReporting._ + +import scala.collection.convert.decorateAsScala._ +import scala.tools.testing.ClearAfterClass + +object ClosureOptimizerTest extends ClearAfterClass.Clearable { + var compiler = newCompiler(extraArgs = "-Yopt:l:classpath -Yopt-warnings") + def clear(): Unit = { compiler = null } +} + +@RunWith(classOf[JUnit4]) +class ClosureOptimizerTest extends ClearAfterClass { + ClearAfterClass.stateToClear = ClosureOptimizerTest + + val compiler = ClosureOptimizerTest.compiler + + @Test + def nothingTypedClosureBody(): Unit = { + val code = + """abstract class C { + | def isEmpty: Boolean + | @inline final def getOrElse[T >: C](f: => T) = if (isEmpty) f else this + | def t = getOrElse(throw new Error("")) + |} + """.stripMargin + + val List(c) = compileClasses(compiler)(code) + val t = c.methods.asScala.toList.find(_.name == "t").get + val List(bodyCall) = findInstr(t, "INVOKESTATIC C.C$$$anonfun$1 ()Lscala/runtime/Nothing$") + assert(bodyCall.getNext.getOpcode == ATHROW) + } + + @Test + def nullTypedClosureBody(): Unit = { + val code = + """abstract class C { + | def isEmpty: Boolean + | @inline final def getOrElse[T >: C](f: => T) = if (isEmpty) f else this + | def t = getOrElse(null) + |} + """.stripMargin + + val List(c) = compileClasses(compiler)(code) + val t = c.methods.asScala.toList.find(_.name == "t").get + val List(bodyCall) = findInstr(t, "INVOKESTATIC C.C$$$anonfun$1 ()Lscala/runtime/Null$") + assert(bodyCall.getNext.getOpcode == POP) + assert(bodyCall.getNext.getNext.getOpcode == ACONST_NULL) + } +} diff --git a/test/junit/scala/tools/nsc/backend/jvm/opt/InlineInfoTest.scala b/test/junit/scala/tools/nsc/backend/jvm/opt/InlineInfoTest.scala index 57088bdd2f..5ccb940415 100644 --- a/test/junit/scala/tools/nsc/backend/jvm/opt/InlineInfoTest.scala +++ b/test/junit/scala/tools/nsc/backend/jvm/opt/InlineInfoTest.scala @@ -27,7 +27,9 @@ object InlineInfoTest extends ClearAfterClass.Clearable { } @RunWith(classOf[JUnit4]) -class InlineInfoTest { +class InlineInfoTest extends ClearAfterClass { + ClearAfterClass.stateToClear = InlineInfoTest + val compiler = InlineInfoTest.compiler def compile(code: String) = { diff --git a/test/junit/scala/tools/nsc/backend/jvm/opt/InlinerTest.scala b/test/junit/scala/tools/nsc/backend/jvm/opt/InlinerTest.scala index 0309bb97cc..617eced560 100644 --- a/test/junit/scala/tools/nsc/backend/jvm/opt/InlinerTest.scala +++ b/test/junit/scala/tools/nsc/backend/jvm/opt/InlinerTest.scala @@ -991,4 +991,41 @@ class InlinerTest extends ClearAfterClass { assert(2 == t.collect({case Ldc(_, "hai!") => }).size) // twice the body of f assert(1 == t.collect({case Jump(IFNONNULL, _) => }).size) // one single null check } + + @Test + def inlineIndyLambda(): Unit = { + val code = + """object M { + | @inline def m(s: String) = { + | val f = (x: String) => x.trim + | f(s) + | } + |} + |class C { + | @inline final def m(s: String) = { + | val f = (x: String) => x.trim + | f(s) + | } + | def t1 = m("foo") + | def t2 = M.m("bar") + |} + """.stripMargin + + val List(c, _, _) = compile(code) + + val t1 = getSingleMethod(c, "t1") + assert(t1.instructions exists { + case _: InvokeDynamic => true + case _ => false + }) + // the indy call is inlined into t, and the closure elimination rewrites the closure invocation to the body method + assertInvoke(t1, "C", "C$$$anonfun$2") + + val t2 = getSingleMethod(c, "t2") + assert(t2.instructions exists { + case _: InvokeDynamic => true + case _ => false + }) + assertInvoke(t2, "M$", "M$$$anonfun$1") + } } diff --git a/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala b/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala index a37ba31b31..5dee488285 100644 --- a/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala +++ b/test/junit/scala/tools/nsc/classpath/FlatClassPathResolverTest.scala @@ -42,7 +42,7 @@ class FlatClassPathResolverTest { // In Java TemporaryFolder in JUnit is managed automatically using @Rule. // It would work also in Scala after adding and extending a class like // TestWithTempFolder.java containing it. But in this case it doesn't work when running tests - // from the command line - java class is not compiled due to some, misterious reasons. + // from the command line - java class is not compiled due to some, mysterious reasons. // That's why such dirs are here created and deleted manually. tempDir.create() tempDir.newFile("TestSourceInRootPackage.scala") diff --git a/test/junit/scala/tools/nsc/doc/html/HtmlDocletTest.scala b/test/junit/scala/tools/nsc/doc/html/HtmlDocletTest.scala index 13a955b55d..d17856eb54 100644 --- a/test/junit/scala/tools/nsc/doc/html/HtmlDocletTest.scala +++ b/test/junit/scala/tools/nsc/doc/html/HtmlDocletTest.scala @@ -10,7 +10,7 @@ import scala.tools.testing.AssertUtil._ @RunWith(classOf[JUnit4]) class HtmlDocletTest { @Test - def testSyntaxHighlightningUnicode() { + def testSyntaxHighlightingUnicode() { val in = "unicode: …" val out = SyntaxHigh(in).toString diff --git a/test/junit/scala/tools/nsc/settings/ScalaVersionTest.scala b/test/junit/scala/tools/nsc/settings/ScalaVersionTest.scala index acbf39fe23..3717f80362 100644 --- a/test/junit/scala/tools/nsc/settings/ScalaVersionTest.scala +++ b/test/junit/scala/tools/nsc/settings/ScalaVersionTest.scala @@ -56,5 +56,14 @@ class ScalaVersionTest { assertThrows[NumberFormatException] { ScalaVersion("2-") } assertThrows[NumberFormatException] { ScalaVersion("2-.") } // scalacheck territory assertThrows[NumberFormatException] { ScalaVersion("any.7") } + + assertThrows[NumberFormatException] ( ScalaVersion("2.11-ok"), _ == + "Bad version (2.11-ok) not major[.minor[.revision[-suffix]]]" ) + + } + + // SI-9377 + @Test def `missing version is as good as none`() { + assertEquals(NoScalaVersion, ScalaVersion("")) } } diff --git a/test/junit/scala/tools/nsc/settings/SettingsTest.scala b/test/junit/scala/tools/nsc/settings/SettingsTest.scala index 96f83c4c2f..a0015f4465 100644 --- a/test/junit/scala/tools/nsc/settings/SettingsTest.scala +++ b/test/junit/scala/tools/nsc/settings/SettingsTest.scala @@ -172,12 +172,12 @@ class SettingsTest { assert(residual.isEmpty) assertTrue(s.source.value == ScalaVersion(expected)) } - check(expected = "2.11.0") // default + check(expected = "2.12.0") // default check(expected = "2.11.0", "-Xsource:2.11") check(expected = "2.10", "-Xsource:2.10.0") check(expected = "2.12", "-Xsource:2.12") assertThrows[IllegalArgumentException](check(expected = "2.11", "-Xsource"), _ == "-Xsource requires an argument, the syntax is -Xsource:<version>") assertThrows[IllegalArgumentException](check(expected = "2.11", "-Xsource", "2.11"), _ == "-Xsource requires an argument, the syntax is -Xsource:<version>") - assertThrows[IllegalArgumentException](check(expected = "2.11", "-Xsource:2.invalid"), _ contains "There was a problem parsing 2.invalid") + assertThrows[IllegalArgumentException](check(expected = "2.11", "-Xsource:2.invalid"), _ contains "Bad version (2.invalid)") } } diff --git a/test/junit/scala/tools/nsc/symtab/FlagsTest.scala b/test/junit/scala/tools/nsc/symtab/FlagsTest.scala new file mode 100644 index 0000000000..08a37fcb3c --- /dev/null +++ b/test/junit/scala/tools/nsc/symtab/FlagsTest.scala @@ -0,0 +1,96 @@ +package scala.tools.nsc +package symtab + +import org.junit.Assert._ +import scala.tools.testing.AssertUtil._ +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@RunWith(classOf[JUnit4]) +class FlagsTest { + object symbolTable extends SymbolTableForUnitTesting + import symbolTable._ + import Flags._ + + def sym = NoSymbol.newTermSymbol(nme.EMPTY) + + def withFlagMask[A](mask: Long)(body: => A): A = enteringPhase(new Phase(NoPhase) { + override def flagMask = mask + def name = "" + def run() = () + })(body) + + def testTimedFlag(flag: Long, test: Symbol => Boolean, enabling: Boolean) = { + assertEquals(withFlagMask(InitialFlags)(test(sym.setFlag(flag))), !enabling) + assertEquals(withFlagMask(InitialFlags | flag)(test(sym.setFlag(flag))), enabling) + } + + def testLate(flag: Long, test: Symbol => Boolean) = testTimedFlag(flag, test, enabling = true) + def testNot(flag: Long, test: Symbol => Boolean) = testTimedFlag(flag, test, enabling = false) + + @Test + def testTimedFlags(): Unit = { + testLate(lateDEFERRED, _.isDeferred) + testLate(lateFINAL, _.isFinal) + testLate(lateINTERFACE, _.isInterface) + testLate(lateMETHOD, _.isMethod) + testLate(lateMODULE, _.isModule) + testNot(PROTECTED | notPROTECTED, _.isProtected) + testNot(OVERRIDE | notOVERRIDE, _.isOverride) + testNot(PRIVATE | notPRIVATE, _.isPrivate) + + assertFalse(withFlagMask(AllFlags)(sym.setFlag(PRIVATE | notPRIVATE).isPrivate)) + + assertEquals(withFlagMask(InitialFlags)(sym.setFlag(PRIVATE | notPRIVATE).flags & PRIVATE), PRIVATE) + assertEquals(withFlagMask(AllFlags)(sym.setFlag(PRIVATE | notPRIVATE).flags & PRIVATE), 0) + } + + @Test + def normalLateOverlap(): Unit = { + // late flags are shifted by LateShift == 47. + // however, the first late flag is lateDEFERRED, which is DEFERRED << 47 == (1 << 4) << 47 == 1 << 51 + // the flags from 1 << 47 to 1 << 50 are not late flags. this is ensured by the LateFlags mask. + + for (i <- 0 to 3) { + val f = 1L << i + assertEquals(withFlagMask(AllFlags)(sym.setFlag(f << LateShift).flags & f), 0) // not treated as late flag + } + for (i <- 4 to 8) { + val f = 1L << i + assertEquals(withFlagMask(AllFlags)(sym.setFlag(f << LateShift).flags & f), f) // treated as late flag + } + } + + @Test + def normalAnti(): Unit = { + for (i <- 0 to 2) { + val f = 1L << i + assertEquals(withFlagMask(AllFlags)(sym.setFlag(f | (f << AntiShift)).flags & f), 0) // negated flags + } + for (i <- 3 to 7) { + val f = 1L << i + assertEquals(withFlagMask(AllFlags)(sym.setFlag(f | (f << AntiShift)).flags & f), f) // not negated + } + } + + @Test + def lateAntiCrossCheck(): Unit = { + val allButNegatable = AllFlags & ~(PROTECTED | OVERRIDE | PRIVATE) + val lateable = 0L | DEFERRED | FINAL | INTERFACE | METHOD | MODULE + val lateFlags = lateable << LateShift + val allButLateable = AllFlags & ~lateable + + assertEquals(withFlagMask(AllFlags)(sym.setFlag(AllFlags).flags), allButNegatable) + assertEquals(withFlagMask(AllFlags)(sym.setFlag(allButLateable).flags), allButNegatable) + + assertEquals(withFlagMask(AllFlags)(sym.setFlag(lateFlags).flags), lateFlags | lateable) + } + + @Test + def javaClassMirrorAnnotationFlag(): Unit = { + import scala.reflect.runtime.universe._ + val dep = typeOf[java.lang.Deprecated].typeSymbol + assertTrue(dep.isJavaAnnotation && dep.isJava) + } +} diff --git a/test/partest b/test/partest index f396459c6d..7e19c92165 100755 --- a/test/partest +++ b/test/partest @@ -117,8 +117,7 @@ fi # last arg wins, so if JAVA_OPTS already contains -Xmx or -Xms the # supplied argument will be used. -# At this writing it is reported test/partest --all requires 108m permgen. -JAVA_OPTS="-Xmx1024M -Xms64M -XX:MaxPermSize=128M $JAVA_OPTS" +JAVA_OPTS="-Xmx1024M -Xms64M $JAVA_OPTS" # the ant task doesn't supply any options by default, # so don't do that here either -- note that you may want to pass -optimise diff --git a/test/files/run/private-inline.check b/test/pending/run/private-inline.check index e71aec2fcf..e71aec2fcf 100644 --- a/test/files/run/private-inline.check +++ b/test/pending/run/private-inline.check diff --git a/test/files/run/private-inline.flags b/test/pending/run/private-inline.flags index c550fdce16..c550fdce16 100644 --- a/test/files/run/private-inline.flags +++ b/test/pending/run/private-inline.flags diff --git a/test/files/run/private-inline.scala b/test/pending/run/private-inline.scala index 60fef9efca..60fef9efca 100644 --- a/test/files/run/private-inline.scala +++ b/test/pending/run/private-inline.scala diff --git a/test/scaladoc/resources/doc-root/AnyRef.scala b/test/scaladoc/resources/doc-root/AnyRef.scala index 362fbcf0f5..7cdc3d1ada 100644 --- a/test/scaladoc/resources/doc-root/AnyRef.scala +++ b/test/scaladoc/resources/doc-root/AnyRef.scala @@ -45,7 +45,7 @@ trait AnyRef extends Any { */ def synchronized[T](body: => T): T - /** Tests whether the argument (`arg0`) is a reference to the receiver object (`this`). + /** Tests whether the argument (`that`) is a reference to the receiver object (`this`). * * The `eq` method implements an [[http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation]] on * non-null instances of `AnyRef`, and has three additional properties: @@ -73,7 +73,7 @@ trait AnyRef extends Any { /** The expression `x == that` is equivalent to `if (x eq null) that eq null else x.equals(that)`. * - * @param arg0 the object to compare against this object for equality. + * @param that the object to compare against this object for equality. * @return `true` if the receiver object is equivalent to the argument; `false` otherwise. */ final def ==(that: AnyRef): Boolean = |