summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-29 00:01:32 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-29 00:01:32 -0800
commite06803e622b7c165c7c5059f453ba521a74bbe70 (patch)
treea039e678edc2469b5ae60151ea84d7342de994b6
parent1d64aac5999cffd855df1cba1860d623735edf66 (diff)
downloadhands-on-scala-js-e06803e622b7c165c7c5059f453ba521a74bbe70.tar.gz
hands-on-scala-js-e06803e622b7c165c7c5059f453ba521a74bbe70.tar.bz2
hands-on-scala-js-e06803e622b7c165c7c5059f453ba521a74bbe70.zip
all the way to files/run/literals.scala
-rw-r--r--scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala1
-rw-r--r--scalaParser/src/test/resources/test.scala4
-rw-r--r--scalaParser/src/test/scala/scalaParser/SyntaxTest.scala13
3 files changed, 13 insertions, 5 deletions
diff --git a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
index 29bff1e..0421c60 100644
--- a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
+++ b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
@@ -365,6 +365,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def TemplateBody: R0 = rule {
'{' ~
optional(SelfType) ~
+ optional(Semis) ~
zeroOrMore(TemplateStat).separatedBy(Semis) ~
optional(Semis) ~
'}'
diff --git a/scalaParser/src/test/resources/test.scala b/scalaParser/src/test/resources/test.scala
index 5e7a009..b56b7c6 100644
--- a/scalaParser/src/test/resources/test.scala
+++ b/scalaParser/src/test/resources/test.scala
@@ -1,4 +1,2 @@
-object Test {
- def t1: M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[M[Inty @unchecked]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] = x
-} \ No newline at end of file
+object Test extends { type T = Int } with App
diff --git a/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala b/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala
index 2a324bb..a1e4fe4 100644
--- a/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala
+++ b/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala
@@ -784,6 +784,10 @@ object SyntaxTest extends TestSuite{
|}
""".stripMargin
)
+ * - check(
+ """abstract class Mix___eFoo___wBar_I_ extends Foo___ with Bar_I_ { ; ; f; }
+ """.stripMargin
+ )
}
'neg{
* - checkNeg(
@@ -857,7 +861,7 @@ object SyntaxTest extends TestSuite{
'omg{
// val root = new java.io.File("book/target/clones/scala-js/")
- val root = new java.io.File("../scala/test/files/pos")
+ val root = new java.io.File("../scala")
def listFiles(s: java.io.File): Iterator[String] = {
val (dirs, files) = s.listFiles().toIterator.partition(_.isDirectory)
files.map(_.getPath) ++ dirs.flatMap(listFiles)
@@ -870,7 +874,12 @@ object SyntaxTest extends TestSuite{
"scala/src/scaladoc/scala/tools/nsc/doc/html",
"jvm/interpreter.scala",
"disabled", // don't bother parsing disabled tests
- "neg" // or neg tests
+ "neg", // or neg tests
+ "deprecate-early-type-defs.scala", // or deprecated tests
+ // Lots of guys in these folders seem
+ // to be borked, skip all of them
+ "test/files/positions",
+ "test/files/presentation"
)
for{
f <- listFiles(root)