diff options
author | michelou <michelou@epfl.ch> | 2010-06-28 17:39:18 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2010-06-28 17:39:18 +0000 |
commit | 9f6b596c7eeabb377bddee98b5d8d0de8231c56a (patch) | |
tree | 4e7ee7e5366617dd86e9204c4e864fe613dfffd6 | |
parent | dee314b7bc988f5eb3818a3d5ed28933c6539e53 (diff) | |
download | scala-9f6b596c7eeabb377bddee98b5d8d0de8231c56a.tar.gz scala-9f6b596c7eeabb377bddee98b5d8d0de8231c56a.tar.bz2 scala-9f6b596c7eeabb377bddee98b5d8d0de8231c56a.zip |
fixed #3604
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 3 | ||||
-rw-r--r-- | test/files/neg/t3604.check | 7 | ||||
-rw-r--r-- | test/files/neg/t3604.scala | 6 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index e28f07e840..d42803cf8a 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -1312,6 +1312,9 @@ self => } def simpleExprRest(t: Tree, canApply: Boolean): Tree = { + // Various errors in XML literals can cause xmlLiteral to propagate + // EmptyTree's. Watch out for them here (see also postfixExpr). + if (EmptyTree == t) return EmptyTree // #3604 (mics) if (canApply) newLineOptWhenFollowedBy(LBRACE) in.token match { case DOT => diff --git a/test/files/neg/t3604.check b/test/files/neg/t3604.check new file mode 100644 index 0000000000..b07c5c9c71 --- /dev/null +++ b/test/files/neg/t3604.check @@ -0,0 +1,7 @@ +t3604.scala:3: error: in XML literal: expected closing tag of abbr + <abbr></div> + ^ +t3604.scala:3: error: start tag was here: abbr> + <abbr></div> + ^ +two errors found diff --git a/test/files/neg/t3604.scala b/test/files/neg/t3604.scala new file mode 100644 index 0000000000..f890a58e58 --- /dev/null +++ b/test/files/neg/t3604.scala @@ -0,0 +1,6 @@ +object Main { + <div> + <abbr></div> + { "..." } + </div> +} |