diff options
22 files changed, 68 insertions, 112 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala index 81bb5db286..a78e46ea84 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala @@ -6,7 +6,7 @@ package scala.tools.nsc package ast.parser -import collection.mutable.Map +import scala.collection.{ mutable, immutable } import xml.{ EntityRef, Text } import xml.XML.{ xmlns } import symtab.Flags.MUTABLE @@ -184,7 +184,7 @@ abstract class SymbolicXMLBuilder(p: Parsers#Parser, preserveWS: Boolean) { def unparsed(pos: Position, str: String): Tree = atPos(pos)( New(_scala_xml_Unparsed, LL(const(str))) ) - def element(pos: Position, qname: String, attrMap: Map[String, Tree], args: Seq[Tree]): Tree = { + def element(pos: Position, qname: String, attrMap: mutable.Map[String, Tree], args: Seq[Tree]): Tree = { def handleNamespaceBinding(pre: String, z: String): Tree = { def mkAssign(t: Tree): Tree = Assign( Ident(_tmpscope), diff --git a/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala b/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala index 2754a7b113..70ab35b13c 100644 --- a/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala +++ b/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala @@ -8,8 +8,7 @@ package scala.tools.nsc package backend import scala.tools.nsc.backend.icode._ - -import scala.collection.mutable.{Map, HashMap} +import scala.collection.{ mutable, immutable } /** * Scala primitive operations are represented as methods in Any and @@ -203,13 +202,11 @@ abstract class ScalaPrimitives { final val D2F = 265 // RunTime.d2f(x) final val D2D = 266 // RunTime.d2d(x) - - private var primitives: Map[Symbol, Int] = _ + private val primitives: mutable.Map[Symbol, Int] = new mutable.HashMap() /** Initialize the primitive map */ def init { - primitives = new HashMap() - + primitives.clear() // scala.Any addPrimitive(Any_==, EQ) addPrimitive(Any_!=, NE) diff --git a/src/compiler/scala/tools/nsc/backend/WorklistAlgorithm.scala b/src/compiler/scala/tools/nsc/backend/WorklistAlgorithm.scala index cc2c2b3517..93c37cd5df 100644 --- a/src/compiler/scala/tools/nsc/backend/WorklistAlgorithm.scala +++ b/src/compiler/scala/tools/nsc/backend/WorklistAlgorithm.scala @@ -8,7 +8,7 @@ package scala.tools.nsc package backend import scala.tools.nsc.ast._ -import scala.collection.mutable.Stack +import scala.collection.{ mutable, immutable } /** * Simple implementation of a worklist algorithm. A processing @@ -26,7 +26,7 @@ import scala.collection.mutable.Stack */ trait WorklistAlgorithm { type Elem - type WList = Stack[Elem] + type WList = mutable.Stack[Elem] val worklist: WList diff --git a/src/compiler/scala/tools/nsc/backend/icode/Members.scala b/src/compiler/scala/tools/nsc/backend/icode/Members.scala index 6392131e58..fccab4a44c 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/Members.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/Members.scala @@ -9,7 +9,6 @@ package backend package icode import java.io.PrintWriter - import scala.collection.{ mutable, immutable } import mutable.{ HashMap, ListBuffer } import symtab.Flags.{ DEFERRED } @@ -219,8 +218,7 @@ trait Members { self: ICodes => * This method should be most effective after heavy inlining. */ def normalize: Unit = if (this.code ne null) { - import scala.collection.mutable.{Map, HashMap} - val nextBlock: Map[BasicBlock, BasicBlock] = HashMap.empty + val nextBlock: mutable.Map[BasicBlock, BasicBlock] = mutable.HashMap.empty for (b <- code.blocks.toList if b.successors.length == 1; val succ = b.successors.head; diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala index dd9341ac91..c45983d5b6 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala @@ -7,7 +7,7 @@ package scala.tools.nsc package backend.icode.analysis -import scala.collection.mutable.{Map, HashMap, Set, HashSet, LinkedHashSet} +import scala.collection.{ mutable, immutable } /** A generic framework for data flow analysis. */ @@ -16,11 +16,10 @@ trait DataFlowAnalysis[L <: SemiLattice] { type P <: ProgramPoint[P] val lattice: L - val worklist: Set[P] = new LinkedHashSet - - val in: Map[P, lattice.Elem] = new HashMap - val out: Map[P, lattice.Elem] = new HashMap - val visited: HashSet[P] = new HashSet + val worklist: mutable.Set[P] = new mutable.LinkedHashSet + val in: mutable.Map[P, lattice.Elem] = new mutable.HashMap + val out: mutable.Map[P, lattice.Elem] = new mutable.HashMap + val visited: mutable.HashSet[P] = new mutable.HashSet /** collect statistics? */ var stat = true diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala index 0e76044977..a211860754 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala @@ -9,7 +9,7 @@ package backend.icode package analysis import scala.collection.{ mutable, immutable } -import scala.collection.immutable.{ Set, ListSet } +import immutable.ListSet /** * Compute liveness information for local variables. diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala index 9132d8754d..b6819e7a33 100644 --- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala @@ -9,9 +9,7 @@ package html package page import model._ - -import scala.xml.{NodeSeq, Text} -import scala.collection.mutable.HashSet +import scala.xml.{ NodeSeq, Text } class Template(tpl: DocTemplateEntity) extends HtmlPage { diff --git a/src/compiler/scala/tools/nsc/interpreter/ReflectionCompletion.scala b/src/compiler/scala/tools/nsc/interpreter/ReflectionCompletion.scala index 70f1ffa5a7..440f2933f9 100644 --- a/src/compiler/scala/tools/nsc/interpreter/ReflectionCompletion.scala +++ b/src/compiler/scala/tools/nsc/interpreter/ReflectionCompletion.scala @@ -9,8 +9,6 @@ package interpreter import java.lang.reflect import reflect.{ Modifier, AccessibleObject } import Modifier.{ isPrivate, isProtected, isStatic } -import scala.reflect.NameTransformer -import scala.collection.mutable.HashMap import ReflectionCompletion._ trait ReflectionCompletion extends CompletionAware { diff --git a/src/compiler/scala/tools/nsc/interpreter/XMLCompletion.scala b/src/compiler/scala/tools/nsc/interpreter/XMLCompletion.scala index f2af57cc36..583e0adc58 100644 --- a/src/compiler/scala/tools/nsc/interpreter/XMLCompletion.scala +++ b/src/compiler/scala/tools/nsc/interpreter/XMLCompletion.scala @@ -8,10 +8,10 @@ package interpreter import xml.{ XML, Group, Node, NodeSeq } import XMLCompletion._ -import scala.collection.mutable.HashMap +import scala.collection.{ mutable, immutable } class XMLCompletion(root: Node) extends CompletionAware { - private val nodeCache = new HashMap[String, Node] + private val nodeCache = new mutable.HashMap[String, Node] private def getNode(s: String): Option[Node] = { completions // make sure cache is populated nodeCache get s diff --git a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala index e20fdd7516..6d0100d705 100644 --- a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala +++ b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala @@ -7,10 +7,11 @@ package scala.tools.nsc package matching +import PartialFunction._ +import scala.collection.{ mutable, immutable } import util.Position import transform.ExplicitOuter import symtab.Flags -import collection._ import mutable.ListBuffer import immutable.IntMap import annotation.elidable @@ -28,7 +29,6 @@ trait ParallelMatching extends ast.TreeDSL import CODE._ import Types._ import Debug._ - import PartialFunction._ /** Transition **/ def toPats(xs: List[Tree]): List[Pattern] = xs map Pattern.apply diff --git a/src/compiler/scala/tools/nsc/util/ClassPath.scala b/src/compiler/scala/tools/nsc/util/ClassPath.scala index 4994542fdb..830fb9538e 100644 --- a/src/compiler/scala/tools/nsc/util/ClassPath.scala +++ b/src/compiler/scala/tools/nsc/util/ClassPath.scala @@ -7,10 +7,9 @@ package scala.tools.nsc package util -import java.io.{ File => JFile } import java.net.URL - -import scala.collection.mutable.{ListBuffer, ArrayBuffer, HashSet => MutHashSet} +import scala.collection.{ mutable, immutable } +import mutable.ListBuffer import io.{ File, Directory, Path, AbstractFile } import scala.tools.util.StringOps.splitWhere import Path.isJarOrZip diff --git a/src/library/scala/collection/IterableLike.scala b/src/library/scala/collection/IterableLike.scala index 00c2275ab5..70009391a2 100644 --- a/src/library/scala/collection/IterableLike.scala +++ b/src/library/scala/collection/IterableLike.scala @@ -6,10 +6,10 @@ ** |/ ** \* */ - package scala.collection + import generic._ -import immutable.{List, Stream} +import immutable.{ List, Stream } import annotation.unchecked.uncheckedVariance /** A template trait for iterable collections of type `Iterable[A]`. diff --git a/src/library/scala/collection/IterableViewLike.scala b/src/library/scala/collection/IterableViewLike.scala index a7578e9a01..a580fd7097 100644 --- a/src/library/scala/collection/IterableViewLike.scala +++ b/src/library/scala/collection/IterableViewLike.scala @@ -6,12 +6,9 @@ ** |/ ** \* */ - - package scala.collection import generic._ -import collection.immutable.Stream import TraversableView.NoBuilder /** A template trait for non-strict views of iterable collections. diff --git a/src/library/scala/collection/LinearSeqLike.scala b/src/library/scala/collection/LinearSeqLike.scala index 8bf45348db..397e4131c7 100644 --- a/src/library/scala/collection/LinearSeqLike.scala +++ b/src/library/scala/collection/LinearSeqLike.scala @@ -7,10 +7,9 @@ \* */ - package scala.collection -import generic._ +import generic._ import mutable.ListBuffer import immutable.List import scala.util.control.Breaks._ diff --git a/src/library/scala/collection/generic/TraversableForwarder.scala b/src/library/scala/collection/generic/TraversableForwarder.scala index 3995a5258b..ef42a7dcc0 100644 --- a/src/library/scala/collection/generic/TraversableForwarder.scala +++ b/src/library/scala/collection/generic/TraversableForwarder.scala @@ -6,14 +6,11 @@ ** |/ ** \* */ - - package scala.collection.generic -import scala.collection._ -import mutable.{Buffer, StringBuilder} -import immutable.{List, Stream} -// import immutable.{List, Nil, ::, Stream} +import scala.collection._ +import mutable.{ Buffer, StringBuilder } +import immutable.{ List, Stream } /** <p> * This trait implements a forwarder for traversable objects. It forwards diff --git a/src/library/scala/collection/mutable/LazyBuilder.scala b/src/library/scala/collection/mutable/LazyBuilder.scala index db6ca19f2b..aef47801c8 100644 --- a/src/library/scala/collection/mutable/LazyBuilder.scala +++ b/src/library/scala/collection/mutable/LazyBuilder.scala @@ -6,12 +6,9 @@ ** |/ ** \* */ - package scala.collection package mutable -import immutable.{List, Nil} - /** A builder that constructs its result lazily. Iterators or iterables to * be added to this builder with `++=` are not evaluated until `result` is called. * diff --git a/src/library/scala/reflect/Tree.scala b/src/library/scala/reflect/Tree.scala index ff7fc73c8a..7917d27166 100644 --- a/src/library/scala/reflect/Tree.scala +++ b/src/library/scala/reflect/Tree.scala @@ -7,11 +7,8 @@ \* */ - package scala.reflect -import collection.immutable.{List, Nil} - /** This type is required by the compiler and <b>should not be used in client code</b>. */ abstract class Tree diff --git a/src/library/scala/util/automata/BaseBerrySethi.scala b/src/library/scala/util/automata/BaseBerrySethi.scala index 63eb0aba9f..4e7c7c4f02 100644 --- a/src/library/scala/util/automata/BaseBerrySethi.scala +++ b/src/library/scala/util/automata/BaseBerrySethi.scala @@ -10,12 +10,8 @@ package scala.util.automata - import scala.util.regexp.{ Base } - import scala.collection.{ mutable, immutable } -import mutable.{ HashMap } -import immutable.{ Set } // todo: replace global variable pos with acc @@ -30,7 +26,7 @@ abstract class BaseBerrySethi { protected var pos = 0 // results which hold all info for the NondetWordAutomaton - protected var follow: HashMap[Int, Set[Int]] = _ + protected var follow: mutable.HashMap[Int, Set[Int]] = _ protected var finalTag: Int = _ diff --git a/src/library/scala/util/automata/DetWordAutom.scala b/src/library/scala/util/automata/DetWordAutom.scala index e1e19589c2..0af49e9d40 100644 --- a/src/library/scala/util/automata/DetWordAutom.scala +++ b/src/library/scala/util/automata/DetWordAutom.scala @@ -6,12 +6,9 @@ ** |/ ** \* */ - - package scala.util.automata - -import scala.collection.{Set, Map} +import scala.collection.{ mutable, immutable } /** A deterministic automaton. States are integers, where * 0 is always the only initial state. Transitions are represented @@ -24,21 +21,14 @@ import scala.collection.{Set, Map} * @version 1.0 */ abstract class DetWordAutom[T <: AnyRef] { - val nstates: Int val finals: Array[Int] - val delta: Array[Map[T,Int]] + val delta: Array[mutable.Map[T, Int]] val default: Array[Int] - def isFinal(q: Int) = finals(q) != 0 - def isSink(q: Int) = delta(q).isEmpty && default(q) == q - - def next(q: Int, label: T) = { - delta(q).get(label) match { - case Some(p) => p - case _ => default(q) - } - } + def isFinal(q: Int) = finals(q) != 0 + def isSink(q: Int) = delta(q).isEmpty && default(q) == q + def next(q: Int, label: T) = delta(q).getOrElse(label, default(q)) override def toString() = { val sb = new StringBuilder("[DetWordAutom nstates=") diff --git a/src/library/scala/util/automata/NondetWordAutom.scala b/src/library/scala/util/automata/NondetWordAutom.scala index 4434ed395d..ed3da00832 100644 --- a/src/library/scala/util/automata/NondetWordAutom.scala +++ b/src/library/scala/util/automata/NondetWordAutom.scala @@ -7,11 +7,9 @@ \* */ - package scala.util.automata -import scala.collection.{ immutable, mutable, Set, Seq, Map } -import immutable.{ BitSet } +import scala.collection.{ immutable, mutable } /** A nondeterministic automaton. States are integers, where * 0 is always the only initial state. Transitions are represented @@ -20,13 +18,13 @@ import immutable.{ BitSet } * All states are reachable. Accepting states are those for which * the partial function 'finals' is defined. */ -abstract class NondetWordAutom[T <: AnyRef] -{ +abstract class NondetWordAutom[T <: AnyRef] { + import immutable.BitSet + val nstates: Int val labels: Seq[T] - val finals: Array[Int] // 0 means not final - val delta: Array[Map[T, BitSet]] + val delta: Array[mutable.Map[T, BitSet]] val default: Array[BitSet] /** returns true if the state is final */ @@ -41,10 +39,10 @@ abstract class NondetWordAutom[T <: AnyRef] /** returns true if there are no accepting states */ final def isEmpty = (0 until nstates) forall (x => !isFinal(x)) - /** returns a bitset with the next states for given state and label */ + /** returns a BitSet with the next states for given state and label */ def next(q: Int, a: T): BitSet = delta(q).getOrElse(a, default(q)) - /** returns a bitset with the next states for given state and label */ + /** returns a BitSet with the next states for given state and label */ def next(Q: BitSet, a: T): BitSet = next(Q, next(_, a)) def nextDefault(Q: BitSet): BitSet = next(Q, default) diff --git a/src/library/scala/util/automata/SubsetConstruction.scala b/src/library/scala/util/automata/SubsetConstruction.scala index d5b1a19083..5b5df33b11 100644 --- a/src/library/scala/util/automata/SubsetConstruction.scala +++ b/src/library/scala/util/automata/SubsetConstruction.scala @@ -6,21 +6,21 @@ ** |/ ** \* */ - package scala.util.automata +import scala.collection.{ mutable, immutable } + class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T]) { import nfa.labels - import collection.{ mutable, Map } - import collection.immutable.BitSet + import immutable.BitSet def selectTag(Q: BitSet, finals: Array[Int]) = Q map finals filter (_ > 0) min def determinize: DetWordAutom[T] = { // for assigning numbers to bitsets - var indexMap = Map[BitSet, Int]() - var invIndexMap = Map[Int, BitSet]() + var indexMap = collection.Map[BitSet, Int]() + var invIndexMap = collection.Map[Int, BitSet]() var ix = 0 // we compute the dfa with states = bitsets @@ -29,10 +29,10 @@ class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T]) { var states = Set(q0, sink) // initial set of sets val delta = new mutable.HashMap[BitSet, mutable.HashMap[T, BitSet]] - var deftrans = Map(q0 -> sink, sink -> sink) // initial transitions - var finals: Map[BitSet, Int] = Map() - + var deftrans = mutable.Map(q0 -> sink, sink -> sink) // initial transitions + var finals: mutable.Map[BitSet, Int] = mutable.Map() val rest = new mutable.Stack[BitSet] + rest.push(sink, q0) def addFinal(q: BitSet) { @@ -40,8 +40,8 @@ class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T]) { finals = finals.updated(q, selectTag(q, nfa.finals)) } def add(Q: BitSet) { - if (!states.contains(Q)) { - states = states + Q + if (!states(Q)) { + states += Q rest push Q addFinal(Q) } @@ -74,7 +74,7 @@ class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T]) { // create DetWordAutom, using indices instead of sets val nstatesR = states.size - val deltaR = new Array[Map[T,Int]](nstatesR) + val deltaR = new Array[mutable.Map[T, Int]](nstatesR) val defaultR = new Array[Int](nstatesR) val finalsR = new Array[Int](nstatesR) @@ -83,7 +83,7 @@ class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T]) { val trans = delta(Q) val transDef = deftrans(Q) val qDef = indexMap(transDef) - val ntrans = new mutable.HashMap[T,Int]() + val ntrans = new mutable.HashMap[T, Int]() for ((label, value) <- trans) { val p = indexMap(value) diff --git a/src/library/scala/util/automata/WordBerrySethi.scala b/src/library/scala/util/automata/WordBerrySethi.scala index 4a41cbbf5a..26f48441d8 100644 --- a/src/library/scala/util/automata/WordBerrySethi.scala +++ b/src/library/scala/util/automata/WordBerrySethi.scala @@ -10,8 +10,7 @@ package scala.util.automata -import scala.collection.{ immutable, mutable, Map } -import immutable.{ Set } +import scala.collection.{ immutable, mutable } import mutable.{ HashSet, HashMap } import scala.util.regexp.WordExp @@ -25,17 +24,14 @@ import scala.util.regexp.WordExp abstract class WordBerrySethi extends BaseBerrySethi { override val lang: WordExp - import lang.{ Alt, Eps, Letter, Meta, RegExp, Sequ, Star } + import lang.{ Alt, Eps, Letter, Meta, RegExp, Sequ, Star, _labelT } - protected var labels: HashSet[lang._labelT] = _ + protected var labels: HashSet[_labelT] = _ // don't let this fool you, only labelAt is a real, surjective mapping - protected var labelAt: immutable.Map[Int, lang._labelT] = _ // new alphabet "gamma" - - protected var deltaq: Array[HashMap[lang._labelT, List[Int]]] = _ // delta - - protected var defaultq: Array[List[Int]] = _ // default transitions - - protected var initials: Set[Int] = _ + protected var labelAt: Map[Int, _labelT] = _ // new alphabet "gamma" + protected var deltaq: Array[HashMap[_labelT, List[Int]]] = _ // delta + protected var defaultq: Array[List[Int]] = _ // default transitions + protected var initials: Set[Int] = _ /** Computes <code>first(r)</code> where the word regexp <code>r</code>. * @@ -75,13 +71,13 @@ abstract class WordBerrySethi extends BaseBerrySethi { */ /** called at the leaves of the regexp */ - protected def seenLabel(r: RegExp, i: Int, label: lang._labelT) { + protected def seenLabel(r: RegExp, i: Int, label: _labelT) { labelAt = labelAt.updated(i, label) this.labels += label } // overridden in BindingBerrySethi - protected def seenLabel(r: RegExp, label: lang._labelT): Int = { + protected def seenLabel(r: RegExp, label: _labelT): Int = { pos += 1 seenLabel(r, pos, label) pos @@ -95,7 +91,7 @@ abstract class WordBerrySethi extends BaseBerrySethi { } - protected def makeTransition(src: Int, dest: Int, label: lang._labelT) { + protected def makeTransition(src: Int, dest: Int, label: _labelT) { val q = deltaq(src) q.update(label, dest :: q.getOrElse(label, Nil)) } @@ -114,11 +110,11 @@ abstract class WordBerrySethi extends BaseBerrySethi { protected def initializeAutom() { finals = immutable.Map.empty[Int, Int] // final states - deltaq = new Array[HashMap[lang._labelT, List[Int]]](pos) // delta + deltaq = new Array[HashMap[_labelT, List[Int]]](pos) // delta defaultq = new Array[List[Int]](pos) // default transitions for (j <- 0 until pos) { - deltaq(j) = HashMap[lang._labelT, List[Int]]() + deltaq(j) = HashMap[_labelT, List[Int]]() defaultq(j) = Nil } } @@ -129,7 +125,7 @@ abstract class WordBerrySethi extends BaseBerrySethi { else makeTransition(j, k, labelAt(k)) } - def automatonFrom(pat: RegExp, finalTag: Int): NondetWordAutom[lang._labelT] = { + def automatonFrom(pat: RegExp, finalTag: Int): NondetWordAutom[_labelT] = { this.finalTag = finalTag pat match { @@ -150,14 +146,14 @@ abstract class WordBerrySethi extends BaseBerrySethi { val finalsArr = 0 until pos map (k => finals.getOrElse(k, 0)) toArray // 0 == not final val initialsArr = initials.toArray - val deltaArr: Array[Map[lang._labelT, immutable.BitSet]] = + val deltaArr: Array[mutable.Map[_labelT, immutable.BitSet]] = (0 until pos map { x => HashMap(delta1(x).toSeq map { case (k, v) => k -> immutable.BitSet(v: _*) } : _*) - }) toArray + }).toArray val defaultArr = 0 until pos map (k => immutable.BitSet(defaultq(k): _*)) toArray - new NondetWordAutom[lang._labelT] { + new NondetWordAutom[_labelT] { val nstates = pos val labels = WordBerrySethi.this.labels.toList val initials = initialsArr |