diff --git a/.circleci/config.yml b/.circleci/config.yml index acd8ab56e..177643fa2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -84,7 +84,7 @@ workflows: - scala_job: name: dotty java_version: jdk8 - scala_version: 0.17.0-RC1 + scala_version: 0.18.1-bin-20190826-26217ce-NIGHTLY - scala_job: name: jdk11_2.12.8 java_version: jdk11 @@ -96,7 +96,7 @@ workflows: - scala_job: name: jdk11_dotty java_version: jdk11 - scala_version: 0.17.0-RC1 + scala_version: 0.18.1-bin-20190826-26217ce-NIGHTLY - scalajs_job: name: sjs0.6_2.12 scala_version: 2.12.8 diff --git a/.travis.yml b/.travis.yml index 7bd988dae..7af4eb965 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ language: scala scala: - 2.12.8 - 2.13.0 - - 0.17.0-RC1 + - 0.18.1-bin-20190826-26217ce-NIGHTLY env: global: @@ -22,9 +22,9 @@ env: matrix: exclude: - - scala: 0.17.0-RC1 + - scala: 0.18.1-bin-20190826-26217ce-NIGHTLY env: SCALAJS_VERSION=0.6.28 ADOPTOPENJDK=8 - - scala: 0.17.0-RC1 + - scala: 0.18.1-bin-20190826-26217ce-NIGHTLY env: SCALAJS_VERSION=1.0.0-M8 ADOPTOPENJDK=8 before_install: diff --git a/build.sbt b/build.sbt index 61e5a2154..f4e79839e 100644 --- a/build.sbt +++ b/build.sbt @@ -11,6 +11,7 @@ lazy val configSettings: Seq[Setting[_]] = Seq( Seq( CrossVersion.partialVersion(sv) match { case Some((2, 13)) => file(dir.getPath ++ "-2.13+") + case Some((0, _)) => file(dir.getPath ++ "-2.13+") case _ => file(dir.getPath ++ "-2.13-") }, CrossVersion.partialVersion(sv) match { @@ -30,7 +31,7 @@ lazy val xml = crossProject(JSPlatform, JVMPlatform) .settings(scalaModuleSettings) .jvmSettings(scalaModuleSettingsJVM) .jvmSettings( - crossScalaVersions += "0.17.0-RC1" + crossScalaVersions += "0.18.1-bin-20190826-26217ce-NIGHTLY" ) .settings( name := "scala-xml", diff --git a/jvm/src/test/scala/scala/xml/ReuseNodesTest.scala b/jvm/src/test/scala/scala/xml/ReuseNodesTest.scala index 5d38d74e2..8d00c9bf1 100644 --- a/jvm/src/test/scala/scala/xml/ReuseNodesTest.scala +++ b/jvm/src/test/scala/scala/xml/ReuseNodesTest.scala @@ -1,5 +1,7 @@ package scala.xml +import language.implicitConversions + import scala.xml.transform._ import scala.collection.Seq import org.junit.Assert.assertSame @@ -9,19 +11,19 @@ import org.junit.experimental.theories.DataPoints import org.junit.runner.RunWith /** * This test verifies that after the transform, the resultant xml node - * uses as many old nodes as possible. - * - * Three transformers class for case - - * One for original, one for modified, and one proposed which shows + * uses as many old nodes as possible. + * + * Three transformers class for case - + * One for original, one for modified, and one proposed which shows * all are equivalent when it comes to reusing as many nodes as possible */ object ReuseNodesTest { - + class OriginalTranformr(rules: RewriteRule*) extends RuleTransformer(rules:_*) { override def transform(ns: Seq[Node]): Seq[Node] = { val xs = ns.toStream map transform val (xs1, xs2) = xs zip ns span { case (x, n) => unchanged(n, x) } - + if (xs2.isEmpty) ns else (xs1 map (_._2)) ++ xs2.head._1 ++ transform(ns drop (xs1.length + 1)) } @@ -31,7 +33,7 @@ object ReuseNodesTest { class ModifiedTranformr(rules: RewriteRule*) extends RuleTransformer(rules:_*) { override def transform(ns: Seq[Node]): Seq[Node] = { val changed = ns flatMap transform - + if (changed.length != ns.length || changed.zip(ns).exists(p => p._1 != p._2)) changed else ns } @@ -42,13 +44,13 @@ object ReuseNodesTest { override def transform(ns: Seq[Node]): Seq[Node] = { val xs = ns.toStream map transform val (xs1, xs2) = xs zip ns span { case (x, n) => unchanged(n, x) } - + if (xs2.isEmpty) ns else (xs1 map (_._2)) ++ xs2.head._1 ++ transform(ns drop (xs1.length + 1)) } override def transform(n:Node): Seq[Node] = super.transform(n) } - + def rewriteRule = new RewriteRule { override def transform(n: Node): NodeSeq = n match { case n if n.label == "change" => Elem( @@ -57,7 +59,7 @@ object ReuseNodesTest { } } - @DataPoints + @DataPoints def tranformers() = Array( new OriginalTranformr(rewriteRule), new ModifiedTranformr(rewriteRule), @@ -66,34 +68,34 @@ object ReuseNodesTest { @RunWith(classOf[Theories]) class ReuseNodesTest { - + @Theory - def transformReferentialEquality(rt:RuleTransformer) = { + def transformReferentialEquality(rt:RuleTransformer) = { val original =

val tranformed = rt.transform(original) assertSame(original, tranformed) } - + @Theory - def transformReferentialEqualityOnly(rt:RuleTransformer) = { + def transformReferentialEqualityOnly(rt:RuleTransformer) = { val original = val transformed = rt.transform(original) recursiveAssert(original,transformed) } - + def recursiveAssert(original:Seq[Node], transformed:Seq[Node]):Unit = { - original zip transformed foreach { - case (x, y) => recursiveAssert(x, y) + original zip transformed foreach { + case (x, y) => recursiveAssert(x, y) } } - + def recursiveAssert(original:Node, transformed:Node):Unit = { - transformed.label match { + transformed.label match { case "changed" => // do nothing expect this node to be changed recursiveAssert(original.child,transformed.child) case _ => { assertSame(original, transformed) - // No need to check for children, node being immuatable + // No need to check for children, node being immuatable // children can't be different if parents are referentially equal } } diff --git a/shared/src/main/scala/scala/xml/dtd/Scanner.scala b/shared/src/main/scala/scala/xml/dtd/Scanner.scala index cb042d5a9..b61b1c169 100644 --- a/shared/src/main/scala/scala/xml/dtd/Scanner.scala +++ b/shared/src/main/scala/scala/xml/dtd/Scanner.scala @@ -81,7 +81,11 @@ class Scanner extends Tokens with parsing.TokenTests { final def name = { val sb = new StringBuilder() - do { sb.append(c); next() } while (isNameChar(c)) + while ({ + sb.append(c) + next() + isNameChar(c) + }) () value = sb.toString() NAME } diff --git a/shared/src/main/scala/scala/xml/dtd/impl/Base.scala b/shared/src/main/scala/scala/xml/dtd/impl/Base.scala index 3283e2ba0..bc2a3fd40 100644 --- a/shared/src/main/scala/scala/xml/dtd/impl/Base.scala +++ b/shared/src/main/scala/scala/xml/dtd/impl/Base.scala @@ -20,7 +20,7 @@ private[dtd] abstract class Base { type _regexpT <: RegExp abstract class RegExp { - val isNullable: Boolean + def isNullable: Boolean } object Alt { @@ -62,4 +62,4 @@ private[dtd] abstract class Base { final val isNullable = r1.isNullable def r = r1 } -} +} \ No newline at end of file diff --git a/shared/src/main/scala/scala/xml/dtd/impl/PointedHedgeExp.scala b/shared/src/main/scala/scala/xml/dtd/impl/PointedHedgeExp.scala index 9c4263ab3..58b21a0e3 100644 --- a/shared/src/main/scala/scala/xml/dtd/impl/PointedHedgeExp.scala +++ b/shared/src/main/scala/scala/xml/dtd/impl/PointedHedgeExp.scala @@ -32,4 +32,4 @@ private[dtd] abstract class PointedHedgeExp extends Base { final val isNullable = false } -} +} \ No newline at end of file diff --git a/shared/src/main/scala/scala/xml/dtd/impl/WordExp.scala b/shared/src/main/scala/scala/xml/dtd/impl/WordExp.scala index 6d132a04a..7cffdcb78 100644 --- a/shared/src/main/scala/scala/xml/dtd/impl/WordExp.scala +++ b/shared/src/main/scala/scala/xml/dtd/impl/WordExp.scala @@ -53,4 +53,4 @@ private[dtd] abstract class WordExp extends Base { final lazy val isNullable = false var pos = -1 } -} +} \ No newline at end of file diff --git a/shared/src/main/scala/scala/xml/include/sax/XIncludeFilter.scala b/shared/src/main/scala/scala/xml/include/sax/XIncludeFilter.scala index 4923cb1da..0eb0653fe 100644 --- a/shared/src/main/scala/scala/xml/include/sax/XIncludeFilter.scala +++ b/shared/src/main/scala/scala/xml/include/sax/XIncludeFilter.scala @@ -291,10 +291,11 @@ class XIncludeFilter extends XMLFilterImpl { val reader = new InputStreamReader(in, encoding) val c = new Array[Char](1024) var charsRead: Int = 0 // bogus init value - do { + while ({ charsRead = reader.read(c, 0, 1024) if (charsRead > 0) this.characters(c, 0, charsRead) - } while (charsRead != -1) + charsRead != -1 + }) () } catch { case e: UnsupportedEncodingException => throw new SAXException("Unsupported encoding: " diff --git a/shared/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala b/shared/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala index caf165dfd..0d373041e 100644 --- a/shared/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala +++ b/shared/src/main/scala/scala/xml/parsing/MarkupParserCommon.scala @@ -115,8 +115,10 @@ private[scala] trait MarkupParserCommon extends TokenTests { val buf = new StringBuilder - do buf append ch_returning_nextch - while (isNameChar(ch)) + while ({ + buf append ch_returning_nextch + isNameChar(ch) + }) () if (buf.last == ':') { reportSyntaxError("name cannot end in ':'")