Skip to content

Commit b746452

Browse files
committed
Fix #51 Test compat for -Xxml:coalescing
Rather than maintain a test to compile under multiple regimes, just build under `-Xxml:coalescing`. A few other flags are supplied. Deprecation is not yet possible because of `WordExp` et al. Renamed test classes `A` and `B` because sometimes it's nice to have a type parameter called `A` or `B`.
1 parent 6fd8694 commit b746452

File tree

6 files changed

+28
-11
lines changed

6 files changed

+28
-11
lines changed

build.sbt

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ version := "1.0.5-SNAPSHOT"
88

99
scalaVersion := crossScalaVersions.value.head
1010

11-
crossScalaVersions := Seq("2.11.6", "2.12.0-M1")
11+
crossScalaVersions := Seq("2.11.7", "2.12.0-M1")
12+
13+
//scalacOptions ++= "-deprecation:false -feature -Xlint:-stars-align,-nullary-unit,_ -Xfatal-warnings -Xxml:coalescing".split("\\s+").to[Seq]
14+
scalacOptions ++= "-deprecation:false -feature -Xlint:-stars-align,-nullary-unit,_ -Xxml:coalescing".split("\\s+").to[Seq]
1215

1316
// important!! must come here (why?)
1417
scalaModuleOsgiSettings

src/main/scala/scala/xml/dtd/ContentModel.scala

+17-6
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,21 @@ import scala.xml.dtd.impl._
1414
import scala.xml.Utility.sbToString
1515
import PartialFunction._
1616

17+
/*
18+
@deprecated("Avoidance", since="2.10")
19+
trait ContentModelLaundry extends WordExp
20+
object ContentModelLaundry extends ContentModelLaundry {
21+
}
22+
*/
23+
1724
object ContentModel extends WordExp {
25+
1826
type _labelT = ElemName
1927
type _regexpT = RegExp
2028

21-
object Translator extends WordBerrySethi {
29+
@deprecated("Avoidance", since="2.10")
30+
trait Translator extends WordBerrySethi
31+
object Translator extends Translator {
2232
override val lang: ContentModel.this.type = ContentModel.this
2333
}
2434

@@ -72,14 +82,15 @@ object ContentModel extends WordExp {
7282
case Letter(ElemName(name)) =>
7383
sb.append(name)
7484
}
75-
7685
}
7786

7887
sealed abstract class ContentModel {
7988
override def toString(): String = sbToString(buildString)
8089
def buildString(sb: StringBuilder): StringBuilder
8190
}
8291

92+
import ContentModel.RegExp
93+
8394
case object PCDATA extends ContentModel {
8495
override def buildString(sb: StringBuilder): StringBuilder = sb.append("(#PCDATA)")
8596
}
@@ -91,16 +102,16 @@ case object ANY extends ContentModel {
91102
}
92103
sealed abstract class DFAContentModel extends ContentModel {
93104
import ContentModel.{ ElemName, Translator }
94-
def r: ContentModel.RegExp
105+
def r: RegExp
95106

96107
lazy val dfa: DetWordAutom[ElemName] = {
97108
val nfa = Translator.automatonFrom(r, 1)
98109
new SubsetConstruction(nfa).determinize
99110
}
100111
}
101112

102-
case class MIXED(r: ContentModel.RegExp) extends DFAContentModel {
103-
import ContentModel.{ Alt, RegExp }
113+
case class MIXED(r: RegExp) extends DFAContentModel {
114+
import ContentModel.Alt
104115

105116
override def buildString(sb: StringBuilder): StringBuilder = {
106117
val newAlt = r match { case Alt(rs@_*) => Alt(rs drop 1: _*) }
@@ -111,7 +122,7 @@ case class MIXED(r: ContentModel.RegExp) extends DFAContentModel {
111122
}
112123
}
113124

114-
case class ELEMENTS(r: ContentModel.RegExp) extends DFAContentModel {
125+
case class ELEMENTS(r: RegExp) extends DFAContentModel {
115126
override def buildString(sb: StringBuilder): StringBuilder =
116127
ContentModel.buildString(r, sb)
117128
}

src/main/scala/scala/xml/dtd/impl/WordBerrySethi.scala

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import scala.collection.{ immutable, mutable }
1919
* @version 1.0
2020
*/
2121
// TODO: still used in ContentModel -- @deprecated("This class will be removed", "2.10.0")
22+
@deprecated("This class will be removed", "2.10.0")
2223
private[dtd] abstract class WordBerrySethi extends BaseBerrySethi {
2324
override val lang: WordExp
2425

src/main/scala/scala/xml/pull/XMLEventReader.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ trait ProducerConsumerIterator[T >: Null] extends Iterator[T] {
122122
// defaults to unbounded - override to positive Int if desired
123123
val MaxQueueSize = -1
124124

125-
def interruptibly[T](body: => T): Option[T] = try Some(body) catch {
125+
def interruptibly[A](body: => A): Option[A] = try Some(body) catch {
126126
case _: InterruptedException =>
127127
Thread.currentThread.interrupt(); None
128128
case _: ClosedChannelException => None

src/test/scala/scala/xml/ShouldCompile.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class Foo {
2222
}
2323

2424
// t2281
25-
class A {
25+
class t2281A {
2626
def f(x: Boolean) = if (x) <br/><br/> else <br/>
2727
}
2828

29-
class B {
29+
class t2281B {
3030
def splitSentences(text: String): ArrayBuffer[String] = {
3131
val outarr = new ArrayBuffer[String]
3232
var outstr = new StringBuffer
@@ -92,4 +92,4 @@ object shouldCompile {
9292
case 1 => <xml:group></xml:group>
9393
case 2 => <p></p>
9494
}
95-
}
95+
}

src/test/scala/scala/xml/XMLTest.scala

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.xml
22

3+
import language.postfixOps
4+
35
import org.junit.{Test => UnitTest}
46
import org.junit.Ignore
57
import org.junit.runner.RunWith

0 commit comments

Comments
 (0)