diff options
author | Som Snytt <som.snytt@gmail.com> | 2014-12-04 12:24:15 -0800 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2014-12-04 12:28:48 -0800 |
commit | 736293ab0977a79175ed025149263456526dc561 (patch) | |
tree | 79d886126455821d0993ab4541e7ffeff4160fa0 | |
parent | a908ded364a6f8b664c6b02552a909c143d21b19 (diff) | |
download | scala-736293ab0977a79175ed025149263456526dc561.tar.gz scala-736293ab0977a79175ed025149263456526dc561.tar.bz2 scala-736293ab0977a79175ed025149263456526dc561.zip |
SI-9027 Backport xml parser fix
Fingers crossed, I have no local java 6 here to test.
No test because no q"" on 2.10.
-rw-r--r-- | bincompat-backward.whitelist.conf | 6 | ||||
-rw-r--r-- | bincompat-forward.whitelist.conf | 5 | ||||
-rwxr-xr-x | src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala | 11 |
3 files changed, 16 insertions, 6 deletions
diff --git a/bincompat-backward.whitelist.conf b/bincompat-backward.whitelist.conf index 2d3c20370d..5ddad1fbf0 100644 --- a/bincompat-backward.whitelist.conf +++ b/bincompat-backward.whitelist.conf @@ -100,6 +100,12 @@ filter { { matchName="scala.reflect.runtime.SymbolLoaders.isInvalidClassName" problemName=MissingMethodProblem + }, + + { + matchName="scala.xml.dtd.ElementValidator.scala$xml$dtd$ElementValidator$$find$2" + problemName=IncompatibleMethTypeProblem } ] } + diff --git a/bincompat-forward.whitelist.conf b/bincompat-forward.whitelist.conf index d8a91f3ae8..c9cf4f74b9 100644 --- a/bincompat-forward.whitelist.conf +++ b/bincompat-forward.whitelist.conf @@ -182,6 +182,11 @@ filter { # only accessible from util.parsing.combinator package matchName="scala.util.parsing.combinator.SubSequence" problemName=MissingClassProblem + }, + + { + matchName="scala.xml.dtd.ElementValidator.scala$xml$dtd$ElementValidator$$find$2" + problemName=IncompatibleMethTypeProblem } ] } diff --git a/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala b/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala index 553a2088a6..a27bf6bea2 100755 --- a/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala @@ -349,13 +349,12 @@ trait MarkupParsers { content_LT(ts) // parse more XML ? - if (charComingAfter(xSpaceOpt) == '<') { - xSpaceOpt - while (ch == '<') { - nextch + if (charComingAfter(xSpaceOpt()) == '<') { + do { + xSpaceOpt() + nextch() ts append element - xSpaceOpt - } + } while (charComingAfter(xSpaceOpt()) == '<') handle.makeXMLseq(r2p(start, start, curOffset), ts) } else { |