This is an automated email from the ASF dual-hosted git repository.

olabusayo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil.git


The following commit(s) were added to refs/heads/main by this push:
     new 1c468b3de Review and Update Usage of .toSeq
1c468b3de is described below

commit 1c468b3de2d88f90b4d32de87644c6541d822b51
Author: olabusayoT <[email protected]>
AuthorDate: Mon Jul 21 16:50:01 2025 -0400

    Review and Update Usage of .toSeq
    
    - we make use of .toSeq liberally within the code which can lead to 
unnecessary copies, so we review the code and update where possible to avoid 
.toSeq and replace with a more performant option
    - in none performance-critical areas (eg tests), prioritize readability
    - update old code to use .count instead of the more expensive .filter.sizey
    - use Iterables or original collection in certain places instead of 
converting to Seq
    
    DAFFODIL-2972
---
 .../core/dsom/AnnotatedSchemaComponent.scala       |  5 ++---
 .../apache/daffodil/core/dsom/PropProviders.scala  |  2 +-
 .../daffodil/core/dsom/SchemaComponent.scala       |  4 +++-
 .../org/apache/daffodil/core/dsom/SchemaSet.scala  |  2 +-
 .../core/grammar/primitives/ChoiceCombinator.scala |  4 ++--
 .../io/processors/charset/BitsCharset.scala        |  2 +-
 .../apache/daffodil/lib/exceptions/Assert.scala    |  2 +-
 .../scala/org/apache/daffodil/lib/util/Misc.scala  |  2 +-
 .../org/apache/daffodil/lib/util/Serialize.scala   |  2 +-
 .../daffodil/runtime1/dpath/DPathRuntime.scala     |  2 +-
 .../daffodil/runtime1/infoset/InfosetImpl.scala    | 24 ++++++++++------------
 .../infoset/PartialNextElementResolver.scala       |  6 +++---
 .../runtime1/processors/EvTextNumber.scala         |  8 ++++----
 .../daffodil/runtime1/processors/RuntimeData.scala |  4 ++--
 .../processors/parsers/DelimiterParsers.scala      |  4 ++--
 .../runtime1/udf/UserDefinedFunctionService.scala  | 10 ++++-----
 .../runtime1/StringLiteralForUnparser.scala        |  2 +-
 .../org/apache/daffodil/core/dsom/TestRefMap.scala | 14 ++++++-------
 .../apache/daffodil/layers/TestJavaIOStreams.scala | 16 +++++++--------
 .../daffodil/propGen/PropertyGenerator.scala       |  6 +++---
 .../org/apache/daffodil/tdml/RunnerFactory.scala   | 11 ++++------
 .../org/apache/daffodil/tdml/TDMLRunner.scala      |  8 ++++----
 .../daffodil/processor/tdml/TestRunnerFactory.java | 22 ++++++++++----------
 23 files changed, 79 insertions(+), 83 deletions(-)

diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/AnnotatedSchemaComponent.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/AnnotatedSchemaComponent.scala
index 6f916e4cf..b69324a48 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/AnnotatedSchemaComponent.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/AnnotatedSchemaComponent.scala
@@ -135,13 +135,12 @@ trait ResolvesScopedProperties extends FindPropertyMixin 
{ self: Term =>
     val result = optFound match {
       case Some(f: Found) => f
       case None => {
-        val seq = str.toSeq
         // merge all the NotFound stuff.
-        val nonDefaults = seq.flatMap {
+        val nonDefaults = str.flatMap {
           case NotFound(nd, d, _) => nd
           case _: Found => Assert.invariantFailed()
         }
-        val defaults = seq.flatMap {
+        val defaults = str.flatMap {
           case NotFound(nd, d, _) => d
           case _: Found => Assert.invariantFailed()
         }
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/PropProviders.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/PropProviders.scala
index c40c20eba..62bc020be 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/PropProviders.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/PropProviders.scala
@@ -126,7 +126,7 @@ final class ChainPropProvider(leafProvidersArg: 
Seq[LeafPropProvider], forAnnota
   /**
    * for debug/test only
    */
-  final lazy val properties: PropMap = leafProviders.flatMap { 
_.properties.toSeq }.toMap
+  final lazy val properties: PropMap = leafProviders.flatMap { _.properties 
}.toMap
 
   final lazy val leafProviders = leafProvidersArg
 
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaComponent.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaComponent.scala
index 4174e9976..fdb256df0 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaComponent.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaComponent.scala
@@ -74,7 +74,9 @@ trait SchemaComponent
     val optAttr =
       xml.attribute(XMLUtils.EXT_NS_APACHE, 
"suppressSchemaDefinitionWarnings").map { _.text }
     val warnStrs: Seq[String] =
-      optAttr.map { _.trim.split("\\s+").toSeq }.getOrElse { Seq.empty }
+      optAttr.map { w => w.trim.split("\\s+").toSeq }.getOrElse {
+        Seq.empty
+      }
     val warnIDs = warnStrs.map { warnStr =>
       // throws SDE if not valid warnID
       WarnID.stringToEnum("daf:suppressSchemaDefinitionWarnings", warnStr, 
this)
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaSet.scala 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaSet.scala
index 7dc3f44b0..18a2483fa 100644
--- a/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaSet.scala
+++ b/daffodil-core/src/main/scala/org/apache/daffodil/core/dsom/SchemaSet.scala
@@ -217,7 +217,7 @@ final class SchemaSet private (
     val schemas = schemaGroups.map {
       case (ns, pairs) => {
         val sds = pairs.map { case (ns, s) => s }
-        val sch = Schema(ns, sds.toSeq, this)
+        val sch = Schema(ns, sds, this)
         sch
       }
     }
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/grammar/primitives/ChoiceCombinator.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/grammar/primitives/ChoiceCombinator.scala
index 31cf92471..b91428e4c 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/grammar/primitives/ChoiceCombinator.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/grammar/primitives/ChoiceCombinator.scala
@@ -155,7 +155,7 @@ case class ChoiceCombinator(ch: ChoiceTermBase, 
alternatives: Seq[Gram])
           // object that is the choice branch.
           //
           val isRepresentedTerm = alt.term.isRepresented
-          branchKeyRanges.toSeq.map(x => (x._1, x._2, alt.parser, 
isRepresentedTerm))
+          branchKeyRanges.map(x => (x._1, x._2, alt.parser, isRepresentedTerm))
         }
 
       // check for duplicate branch keys
@@ -316,7 +316,7 @@ case class ChoiceCombinator(ch: ChoiceTermBase, 
alternatives: Seq[Gram])
     val eventUnparserMap = eventRDMap.map { case (cbe, branchTerm) =>
       (cbe, branchTerm.termContentBody.unparser)
     }
-    val mapValues = eventUnparserMap.map { case (k, v) => v 
}.toSeq.filterNot(_.isEmpty)
+    val mapValues = eventUnparserMap.map { case (k, v) => v 
}.filterNot(_.isEmpty)
     if (mapValues.isEmpty) {
       if (branchForUnparse.isEmpty) {
         new NadaUnparser(null)
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/io/processors/charset/BitsCharset.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/io/processors/charset/BitsCharset.scala
index 64895c964..210bbcced 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/io/processors/charset/BitsCharset.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/io/processors/charset/BitsCharset.scala
@@ -154,7 +154,7 @@ trait BitsCharsetJava extends BitsCharset {
 
   private lazy val hasNameOrAliasContainingEBCDIC = {
     val allCharsetNames =
-      (javaCharset.aliases().asScala.toSeq :+ name :+ javaCharset.name()).map {
+      (javaCharset.aliases().asScala ++ Set(name, javaCharset.name())).map {
         _.toUpperCase
       }
     val res = allCharsetNames.exists(_.contains("EBCDIC"))
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/lib/exceptions/Assert.scala 
b/daffodil-core/src/main/scala/org/apache/daffodil/lib/exceptions/Assert.scala
index 6aeb0b40b..da8b82493 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/lib/exceptions/Assert.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/lib/exceptions/Assert.scala
@@ -55,7 +55,7 @@ abstract class ThinException protected (dummy: Int, cause: 
Throwable, fmt: Strin
   def this() = this(1, null, null)
   def this(msg: String) = this(1, null, msg)
   def this(fmt: String, args: Any*) =
-    this(1, null, fmt, args.toSeq*) // Fix varargs expansion
+    this(1, null, fmt, args*) // Fix varargs expansion
   def this(cause: Throwable) = this(1, cause, null)
 }
 
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Misc.scala 
b/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Misc.scala
index 8769983ee..2aa2fa46c 100644
--- a/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Misc.scala
+++ b/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Misc.scala
@@ -624,7 +624,7 @@ object Misc {
   def isAsciiBased(csName: String): Boolean = 
isAsciiBased(JavaCharset.forName(csName))
 
   def isAsciiBased(cs: JavaCharset): Boolean = {
-    val aliases: Seq[String] = cs.aliases().asScala.toSeq.map { _.toUpperCase }
+    val aliases = cs.aliases().asScala.map { _.toUpperCase }
     val byName =
       aliases.exists { s =>
         !(s.contains("7-BIT")) &&
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Serialize.scala 
b/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Serialize.scala
index e568fb38e..aaf8c315e 100644
--- a/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Serialize.scala
+++ b/daffodil-core/src/main/scala/org/apache/daffodil/lib/util/Serialize.scala
@@ -75,7 +75,7 @@ trait PreSerialization extends Serializable {
 }
 
 private object PreSerialization {
-  private val classCache = new HashMap[Class[_], Boolean]
+  private val classCache = new HashMap[Class[?], Boolean]
 
   //
   // This private method ensures that any class (or any super class) that use 
this trait also implements the writeObject method
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/DPathRuntime.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/DPathRuntime.scala
index 00715deda..e0f303938 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/DPathRuntime.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/DPathRuntime.scala
@@ -170,7 +170,7 @@ abstract class RecipeOp extends Serializable {
 
   protected def toXML(s: String): scala.xml.Node = toXMLVarargs(new 
scala.xml.Text(s))
 
-  protected def toXMLVarargs(children: scala.xml.Node*): scala.xml.Node = 
toXML(children.toSeq)
+  protected def toXMLVarargs(children: scala.xml.Node*): scala.xml.Node = 
toXML(children)
 
   protected def toXML(children: scala.xml.NodeSeq): scala.xml.Node = {
     val name = Misc.getNameFromClass(this)
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/InfosetImpl.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/InfosetImpl.scala
index 684699f67..6dbd2278e 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/InfosetImpl.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/InfosetImpl.scala
@@ -1702,17 +1702,15 @@ sealed class DIComplex(override val erd: 
ElementRuntimeData)
     getChild(erd.dpathElementCompileInfo.namedQName, tunable)
   }
 
-  private def noQuerySupportCheck(nodes: Seq[DINode], nqn: NamedQName): Unit = 
{
-    if (nodes.length > 1) {
+  private def noQuerySupportCheck(nodes: ArrayBuffer[DINode], nqn: 
NamedQName): Unit = {
+    if (nodes.size > 1) {
       // might be more than one result
       // but we have to rule out there being an empty DIArray
-      val withoutEmptyArrays = nodes.filter { node =>
-        node match {
-          case a: DIArray if a.length == 0 => false
-          case _ => true
-        }
+      val nonEmptyNodesCount = nodes.count {
+        case a: DIArray if a.length == 0 => false
+        case _ => true
       }
-      if (withoutEmptyArrays.length > 1)
+      if (nonEmptyNodesCount > 1)
         erd.toss(InfosetAmbiguousNodeException(this, nqn))
     }
   }
@@ -1892,12 +1890,12 @@ sealed class DIComplex(override val erd: 
ElementRuntimeData)
    * @return
    */
   def findChild(qname: NamedQName, enableLinearSearchIfNotFound: Boolean): 
Maybe[DINode] = {
-    val fastSeq = nameToChildNodeLookup.get(qname)
-    if (fastSeq != null) {
+    val fastBuf = nameToChildNodeLookup.get(qname)
+    if (fastBuf != null) {
       // Daffodil does not support query expressions yet, so there should only
       // be one item in the list
-      noQuerySupportCheck(fastSeq.toSeq, qname)
-      One(fastSeq(0))
+      noQuerySupportCheck(fastBuf, qname)
+      One(fastBuf(0))
     } else if (enableLinearSearchIfNotFound) {
       // Only DINodes used in expressions defined in the schema are added to
       // the nameToChildNodeLookup hashmap. If an expression defined outside of
@@ -1916,7 +1914,7 @@ sealed class DIComplex(override val erd: 
ElementRuntimeData)
 
       // Daffodil does not support query expressions yet, so there should be at
       // most one item found
-      noQuerySupportCheck(found.toSeq, qname)
+      noQuerySupportCheck(found, qname)
       Maybe.toMaybe(found.headOption)
     } else {
       Nope
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/PartialNextElementResolver.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/PartialNextElementResolver.scala
index 93e1f5b14..726e4cbd3 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/PartialNextElementResolver.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/infoset/PartialNextElementResolver.scala
@@ -190,7 +190,7 @@ sealed trait PartialNextElementResolver extends 
Serializable {
       hasNamespace
     )
 
-  def currentPossibleNextElements: Seq[ElementRuntimeData]
+  def currentPossibleNextElements: Iterable[ElementRuntimeData]
 
   final def currentPossibleNamedQNames = currentPossibleNextElements.map { 
_.namedQName }
 }
@@ -337,7 +337,7 @@ class SeveralPossibilitiesForNextElement(
           val localMatches = nextERDMap.view.filterKeys(_.local == local)
           if (localMatches.size > 1) {
             val sqn = StepQName(None, local, NS(namespace))
-            val keys = localMatches.keys.toSeq
+            val keys = localMatches.keys
             val errERD =
               new NamespaceAmbiguousElementErrorERD(Some(trd), local, 
namespace, keys)
             errERD.toUnparseError(false)
@@ -359,5 +359,5 @@ class SeveralPossibilitiesForNextElement(
 
   override def toString() = "Several(" + nextERDMap.keySet.mkString(", ") + ")"
 
-  override lazy val currentPossibleNextElements = nextERDMap.values.toSeq
+  override lazy val currentPossibleNextElements = nextERDMap.values
 }
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/EvTextNumber.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/EvTextNumber.scala
index 7e5d9f4c0..fdd11774c 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/EvTextNumber.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/EvTextNumber.scala
@@ -94,16 +94,16 @@ class TextNumberFormatEv(
     groupingSep: MaybeChar,
     exponentRep: Maybe[String]
   ): Unit = {
-    val bindings: Seq[(String, String)] = {
+    val bindings: Iterable[(String, String)] = {
       decimalSep.toOption.map { v => (v.toString, 
"textStandardDecimalSeparator") } ++
         groupingSep.toOption.map { v => (v.toString, 
"textStandardGroupingSeparator") } ++
         exponentRep.toOption.map { v => (v, "textStandardExponentRep") } ++
         infRep.toOption.map { v => (v, "textStandardInfinityRep") } ++
         nanRep.toOption.map { v => (v, "textStandardNaNRep") } ++
         zeroRepsRaw.map { zr => (zr, "textStandardZeroRep") }
-    }.toSeq
+    }
 
-    val mm: Map[String, Seq[String]] = bindings
+    val mm: Map[String, Iterable[String]] = bindings
       .groupBy(_._1)
       .view
       .mapValues(t => t.map(_._2))
@@ -113,7 +113,7 @@ class TextNumberFormatEv(
     val dupeStrings = dupes.map { case (k, s) =>
       "Non-distinct property '%s' found in: %s".format(k, s.mkString(", "))
     }
-    tci.schemaDefinitionUnless(dupeStrings.size == 0, 
dupeStrings.mkString("\n"))
+    tci.schemaDefinitionUnless(dupeStrings.isEmpty, dupeStrings.mkString("\n"))
   }
 
   /**
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/RuntimeData.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/RuntimeData.scala
index fbd625029..545e5a58d 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/RuntimeData.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/RuntimeData.scala
@@ -865,7 +865,7 @@ final class UnexpectedElementErrorERD(
   optTRD: Option[TermRuntimeData],
   local: String,
   namespaceURI: String,
-  val allPossibleNQNs: Seq[QNameBase]
+  val allPossibleNQNs: Iterable[QNameBase]
 ) extends ErrorERD(local, namespaceURI) {}
 
 /**
@@ -877,7 +877,7 @@ final class NamespaceAmbiguousElementErrorERD(
   optTRD: Option[TermRuntimeData],
   local: String,
   namespaceURI: String,
-  val allPossibleNQNs: Seq[QNameBase]
+  val allPossibleNQNs: Iterable[QNameBase]
 ) extends ErrorERD(local, namespaceURI) {
 
   /**
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/parsers/DelimiterParsers.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/parsers/DelimiterParsers.scala
index 8861edc0f..6dd5caa9a 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/parsers/DelimiterParsers.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/parsers/DelimiterParsers.scala
@@ -77,11 +77,11 @@ class DelimiterTextParser(
     foundLocalDFAIndex >= 0
   }
 
-  private def localDelimiters(state: PState): Seq[DFADelimiter] = {
+  private def localDelimiters(state: PState): ArrayBuffer[DFADelimiter] = {
     val localIndexStart = state.mpstate.delimitersLocalIndexStack.top
     val inScopeDelimiters = state.mpstate.delimiters
     val res = inScopeDelimiters.slice(localIndexStart, 
inScopeDelimiters.length)
-    res.toSeq
+    res
   }
 
   private def didNotFindExpectedDelimiter(foundDelimiter: ParseResult, start: 
PState): Unit = {
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
index c9880fd10..6fe41f7fb 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
@@ -52,7 +52,7 @@ object UserDefinedFunctionService {
   case class UserDefinedFunctionMethod(
     val decClass: Class[?],
     val methodName: String,
-    val paramTypes: Array[Class[_]]
+    val paramTypes: Array[Class[?]]
   ) extends Serializable {
 
     @transient lazy val method: Method = {
@@ -135,9 +135,9 @@ object UserDefinedFunctionService {
               Logger.log.warn(
                 s"User Defined Function Provider ignored: 
${provider.getClass.getName}. No User Defined Functions found."
               )
-              Seq()
+              Array.empty[Class[?]]
             } else {
-              functionClasses.toSeq
+              functionClasses
             }
           } catch {
             /*
@@ -149,11 +149,11 @@ object UserDefinedFunctionService {
               Logger.log.warn(
                 s"User Defined Function Provider ignored: 
${provider.getClass.getName}. Error loading User Defined Functions: ${e}"
               )
-              Seq()
+              Array.empty[Class[?]]
             }
           }
         }
-        .getOrElse(Seq())
+        .getOrElse(Array.empty[Class[?]])
 
       val goodFunctionClasses = providerFunctionClasses.filter { udfc =>
         val nonAnn = 
!udfc.isAnnotationPresent(classUserDefinedFunctionIdentification)
diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/unparsers/runtime1/StringLiteralForUnparser.scala
 
b/daffodil-core/src/main/scala/org/apache/daffodil/unparsers/runtime1/StringLiteralForUnparser.scala
index 82314e286..aeae0f4a2 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/unparsers/runtime1/StringLiteralForUnparser.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/unparsers/runtime1/StringLiteralForUnparser.scala
@@ -41,7 +41,7 @@ class NilStringLiteralForUnparserEv(
     val rawWithEndMark = stringLiteralRaw + endMarker
     EntityReplacer { er =>
       val cookedWithEndMark = er.replaceForUnparse(rawWithEndMark)
-      val chunksSeparatedByNL = cookedWithEndMark.split(er.markerForNL).toSeq
+      val chunksSeparatedByNL = cookedWithEndMark.split(er.markerForNL)
       val last = chunksSeparatedByNL.last
       val butLast = chunksSeparatedByNL.take(chunksSeparatedByNL.length - 1)
       val chunks =
diff --git 
a/daffodil-core/src/test/scala/org/apache/daffodil/core/dsom/TestRefMap.scala 
b/daffodil-core/src/test/scala/org/apache/daffodil/core/dsom/TestRefMap.scala
index a24f95563..5f929fcdf 100644
--- 
a/daffodil-core/src/test/scala/org/apache/daffodil/core/dsom/TestRefMap.scala
+++ 
b/daffodil-core/src/test/scala/org/apache/daffodil/core/dsom/TestRefMap.scala
@@ -244,7 +244,7 @@ class TestRefMap {
     val refMap = root.refMap
     val numEntries = refMap.size
     assertEquals(4, numEntries)
-    val refPairsMap = root.refPairsMap.toSeq
+    val refPairsMap = root.refPairsMap
     val numRefPairs = refPairsMap.map {
       _._2.length
     }.sum
@@ -302,7 +302,7 @@ class TestRefMap {
     val refMap = root.refMap
     val numEntries = refMap.size
     assertEquals(5, numEntries)
-    val refPairsMap = root.refPairsMap.toSeq
+    val refPairsMap = root.refPairsMap
     val numRefPairs = refPairsMap.map {
       _._2.length
     }.sum
@@ -356,7 +356,7 @@ class TestRefMap {
     val refMap = root.refMap
     val numEntries = refMap.size
     assertEquals(4, numEntries)
-    val refPairsMap = root.refPairsMap.toSeq
+    val refPairsMap = root.refPairsMap
     val numRefPairs = refPairsMap.map {
       _._2.length
     }.sum
@@ -418,7 +418,7 @@ class TestRefMap {
     val refMap = root.refMap
     val numEntries = refMap.size
     assertEquals(5, numEntries)
-    val refPairsMap = root.refPairsMap.toSeq
+    val refPairsMap = root.refPairsMap
     val numRefPairs = refPairsMap.map {
       _._2.length
     }.sum
@@ -488,7 +488,7 @@ class TestRefMap {
     val refMap = root.refMap
     val numEntries = refMap.size
     assertEquals(6, numEntries)
-    val refPairsMap = root.refPairsMap.toSeq
+    val refPairsMap = root.refPairsMap
     val numRefPairs = refPairsMap.map {
       _._2.length
     }.sum
@@ -566,7 +566,7 @@ class TestRefMap {
     val refMap = root.refMap
     val numEntries = refMap.size
     assertEquals(7, numEntries)
-    val refPairsMap = root.refPairsMap.toSeq
+    val refPairsMap = root.refPairsMap
     val numRefPairs = refPairsMap.map {
       _._2.length
     }.sum
@@ -652,7 +652,7 @@ class TestRefMap {
     val refMap = root.refMap
     val numEntries = refMap.size
     assertEquals(8, numEntries)
-    val refPairsMap = root.refPairsMap.toSeq
+    val refPairsMap = root.refPairsMap
     val numRefPairs = refPairsMap.map {
       _._2.length
     }.sum
diff --git 
a/daffodil-core/src/test/scala/org/apache/daffodil/layers/TestJavaIOStreams.scala
 
b/daffodil-core/src/test/scala/org/apache/daffodil/layers/TestJavaIOStreams.scala
index 1ef61c08d..d0d0c9199 100644
--- 
a/daffodil-core/src/test/scala/org/apache/daffodil/layers/TestJavaIOStreams.scala
+++ 
b/daffodil-core/src/test/scala/org/apache/daffodil/layers/TestJavaIOStreams.scala
@@ -95,10 +95,10 @@ ZyBzb2x1dGlvbnMuCg=="""
       IOUtils.toInputStream(b64Text + additionalText, 
StandardCharsets.ISO_8859_1)
     val expected = text
     val decodedStream = java.util.Base64.getMimeDecoder().wrap(inputStream)
-    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala.toSeq
+    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala
     assertEquals(expected, lines(0))
     val additionalLines =
-      IOUtils.readLines(inputStream, StandardCharsets.ISO_8859_1).asScala.toSeq
+      IOUtils.readLines(inputStream, StandardCharsets.ISO_8859_1).asScala
     assertEquals(1, additionalLines.length)
     assertEquals(additionalText, additionalLines(0))
   }
@@ -114,11 +114,11 @@ ZyBzb2x1dGlvbnMuCg=="""
     val inputStream = IOUtils.toInputStream(b64Text + b64Text, 
StandardCharsets.ISO_8859_1)
     val expected = text
     val decodedStream = java.util.Base64.getMimeDecoder().wrap(inputStream)
-    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala.toSeq
+    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala
     assertEquals(expected, lines(0))
     val decodedStream2 = java.util.Base64.getMimeDecoder().wrap(inputStream)
     val additionalLines =
-      IOUtils.readLines(decodedStream2, 
StandardCharsets.ISO_8859_1).asScala.toSeq
+      IOUtils.readLines(decodedStream2, StandardCharsets.ISO_8859_1).asScala
     assertEquals(expected, additionalLines(0))
   }
 
@@ -160,11 +160,11 @@ ZyBzb2x1dGlvbnMuCg=="""
     //
     val gzipBufferSize = 1
     val decodedStream = new java.util.zip.GZIPInputStream(inputStream, 
gzipBufferSize)
-    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala.toSeq
+    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala
     assertEquals(1, lines.length)
     assertEquals(expected, lines(0))
     val additionalLines =
-      IOUtils.readLines(inputStream, StandardCharsets.ISO_8859_1).asScala.toSeq
+      IOUtils.readLines(inputStream, StandardCharsets.ISO_8859_1).asScala
     assertEquals(1, additionalLines.length)
     assertEquals(additionalText.drop(2), additionalLines(0))
   }
@@ -192,11 +192,11 @@ ZyBzb2x1dGlvbnMuCg=="""
     //
     val gzipBufferSize = 1
     val decodedStream = new java.util.zip.GZIPInputStream(inputStream, 
gzipBufferSize)
-    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala.toSeq
+    val lines = IOUtils.readLines(decodedStream, 
StandardCharsets.ISO_8859_1).asScala
     assertEquals(1, lines.length)
     assertEquals(expected, lines(0))
     val additionalLines =
-      IOUtils.readLines(inputStream, StandardCharsets.ISO_8859_1).asScala.toSeq
+      IOUtils.readLines(inputStream, StandardCharsets.ISO_8859_1).asScala
     assertEquals(1, additionalLines.length)
     assertEquals(additionalText.drop(2), additionalLines(0))
   }
diff --git 
a/daffodil-propgen/src/main/scala/org/apache/daffodil/propGen/PropertyGenerator.scala
 
b/daffodil-propgen/src/main/scala/org/apache/daffodil/propGen/PropertyGenerator.scala
index b44ca0a7c..fa00807eb 100644
--- 
a/daffodil-propgen/src/main/scala/org/apache/daffodil/propGen/PropertyGenerator.scala
+++ 
b/daffodil-propgen/src/main/scala/org/apache/daffodil/propGen/PropertyGenerator.scala
@@ -77,7 +77,7 @@ class PropertyGenerator(arg: Node) {
     res
   }
 
-  def genAll(): Seq[String] = {
+  def genAll() = {
     val allTopLevel = dfdlSchema.child
     val thunks = allTopLevel.map(node => {
       node.label match {
@@ -90,7 +90,7 @@ class PropertyGenerator(arg: Node) {
         }
       }
     })
-    thunks.toSeq
+    thunks
   }
 
   /**
@@ -744,7 +744,7 @@ import org.apache.daffodil.lib.exceptions.ThrowsSDE
 
 """
 
-  def writeGeneratedCode(thunks: Seq[String], ow: java.io.FileWriter): Unit = {
+  def writeGeneratedCode(thunks: Iterable[String], ow: java.io.FileWriter): 
Unit = {
     ow.write(preamble)
     for (thunk <- thunks) {
       ow.write(thunk)
diff --git 
a/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/RunnerFactory.scala 
b/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/RunnerFactory.scala
index 860e4b409..15e695d97 100644
--- 
a/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/RunnerFactory.scala
+++ 
b/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/RunnerFactory.scala
@@ -18,7 +18,6 @@
 package org.apache.daffodil.tdml
 
 import java.nio.file.Paths
-import scala.collection.immutable.ArraySeq
 
 import org.apache.daffodil.lib.iapi.TDMLImplementation
 import org.apache.daffodil.lib.iapi.URISchemaSource
@@ -50,8 +49,7 @@ object Runner {
     compileAllTopLevel: Boolean = false,
     defaultRoundTripDefault: RoundTrip = defaultRoundTripDefaultDefault,
     defaultValidationDefault: String = defaultValidationDefaultDefault,
-    defaultImplementationsDefault: Seq[String] =
-      ArraySeq.unsafeWrapArray(defaultImplementationsDefaultDefault)
+    defaultImplementationsDefault: Seq[String] = 
defaultImplementationsDefaultDefault
   ): Runner = {
 
     // Prepend forward slash to turn dir/file into classpath resource
@@ -115,7 +113,7 @@ object Runner {
    * A test or test suite can override this to specify more or different 
implementations
    * that the test should pass for.
    */
-  def defaultImplementationsDefaultDefault = 
TDMLImplementation.values.map(_.toString)
+  def defaultImplementationsDefaultDefault = 
TDMLImplementation.values.map(_.toString).toSeq
 
   /**
    * By default we don't run Daffodil negative TDML tests against 
cross-testers.
@@ -143,7 +141,7 @@ object Runner {
  * were a resource on the classpath. Otherwise it is treated as if it were a
  * URI.
  */
-final class Runner private (
+final class Runner private[tdml] (
   source: Either[scala.xml.Elem, String],
   optTDMLImplementation: Option[TDMLImplementation] = None,
   validateTDMLFile: Boolean = true,
@@ -151,8 +149,7 @@ final class Runner private (
   compileAllTopLevel: Boolean = false,
   defaultRoundTripDefault: RoundTrip = Runner.defaultRoundTripDefaultDefault,
   defaultValidationDefault: String = Runner.defaultValidationDefaultDefault,
-  defaultImplementationsDefault: Seq[String] =
-    ArraySeq.unsafeWrapArray(Runner.defaultImplementationsDefaultDefault),
+  defaultImplementationsDefault: Seq[String] = 
Runner.defaultImplementationsDefaultDefault,
   defaultIgnoreUnexpectedWarningsDefault: Boolean = true,
   defaultIgnoreUnexpectedValidationErrorsDefault: Boolean = true
 ) {
diff --git 
a/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/TDMLRunner.scala 
b/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/TDMLRunner.scala
index 77a4e9c6a..4b804b2f5 100644
--- a/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/TDMLRunner.scala
+++ b/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/TDMLRunner.scala
@@ -373,7 +373,7 @@ class DFDLTestSuite private[tdml] (
   }
 
   def reportLoadingErrors(): Nothing = {
-    throw TDMLException(loadingExceptions.toSeq, None)
+    throw TDMLException(loadingExceptions, None)
   }
 
   var checkAllTopLevel: Boolean = compileAllTopLevel
@@ -414,7 +414,7 @@ class DFDLTestSuite private[tdml] (
     val str = (ts \ "@defaultConfig").text
     str
   }
-  lazy val defaultImplementations = {
+  lazy val defaultImplementations: Seq[String] = {
     val str = (ts \ "@defaultImplementations").text
     if (str == "") defaultImplementationsDefault
     else {
@@ -821,7 +821,7 @@ abstract class TestCase(testCaseXML: NodeSeq, val parent: 
DFDLTestSuite) {
           Some(XMLUtils.dafextURI)
         )
         if (node eq null)
-          throw TDMLException(parent.loadingExceptions.toSeq, None)
+          throw TDMLException(parent.loadingExceptions, None)
         val definedConfig = DefinedConfig(node, parent)
         Some(definedConfig)
       }
@@ -2831,7 +2831,7 @@ case class DFDLInfoset(di: Node, parent: Infoset) {
     val nAfter = testSuite.loadingExceptions.size
     val hasMoreExceptions = before.size < nAfter
     if (hasMoreExceptions) {
-      val newExceptions = (testSuite.loadingExceptions.diff(before)).toSeq
+      val newExceptions = (testSuite.loadingExceptions.diff(before))
       testCase.toss(TDMLException(newExceptions, None), None)
     }
     elem.asInstanceOf[Elem]
diff --git 
a/daffodil-tdml-processor/src/test/java/org/apache/daffodil/processor/tdml/TestRunnerFactory.java
 
b/daffodil-tdml-processor/src/test/java/org/apache/daffodil/processor/tdml/TestRunnerFactory.java
index ccd85ecbd..a6c3b6e2a 100644
--- 
a/daffodil-tdml-processor/src/test/java/org/apache/daffodil/processor/tdml/TestRunnerFactory.java
+++ 
b/daffodil-tdml-processor/src/test/java/org/apache/daffodil/processor/tdml/TestRunnerFactory.java
@@ -21,8 +21,8 @@ import org.apache.daffodil.tdml.NoRoundTrip$;
 
 import org.apache.daffodil.tdml.Runner;
 
-import java.util.Arrays;
 import java.net.URI;
+import java.util.Arrays;
 
 import org.apache.daffodil.lib.util.Misc;
 import org.junit.Test;
@@ -43,16 +43,16 @@ public class TestRunnerFactory {
     URI tdmlUri = 
Misc.getRequiredResource("org/apache/daffodil/tdml/genericTdml.tdml");
     Right<scala.xml.Elem, String> rightURI = new Right<>(tdmlUri.toString());
     Runner runner = new Runner(
-      rightURI,
-      Option.apply(null),
-      true,
-      true,
-      false,
-      NoRoundTrip$.MODULE$,
-      "off",
-      CollectionConverters.asScala(Arrays.asList("daffodil", "ibm")).toSeq(),
-      false,
-      false);
+        rightURI,
+        Option.apply(null),
+        true,
+        true,
+        false,
+        NoRoundTrip$.MODULE$,
+        "off",
+        CollectionConverters.asScala(Arrays.asList("daffodil", "ibm")).toSeq(),
+        false,
+        false);
     runner.runOneTest("testPass");
     runner.reset();
   }

Reply via email to