diff options
author | Som Snytt <som.snytt@gmail.com> | 2016-12-07 00:35:02 -0800 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2016-12-14 12:34:00 -0800 |
commit | 9df6d16f9b303caa98feb2ccd179352bd646c101 (patch) | |
tree | 09aa2a9be66e7ef89c09956303507293d67711c9 /test | |
parent | b91b415b4fccfc46520dcd3f128b4b09d19d74f0 (diff) | |
download | scala-9df6d16f9b303caa98feb2ccd179352bd646c101.tar.gz scala-9df6d16f9b303caa98feb2ccd179352bd646c101.tar.bz2 scala-9df6d16f9b303caa98feb2ccd179352bd646c101.zip |
SI-10097 Error if no non-implicit case class param
Case class must have a non-implicit param list.
Error early, error often.
Also update spec to say that class implicitly gets
a non-implicit parameter section if it doesn't
have one, and that a case class must have one.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/quasiquotes-syntax-error-position.check | 3 | ||||
-rw-r--r-- | test/files/neg/t10097.check | 4 | ||||
-rw-r--r-- | test/files/neg/t10097.scala | 5 | ||||
-rw-r--r-- | test/files/run/patmat-exprs.scala | 4 | ||||
-rw-r--r-- | test/files/run/t5907.scala | 2 | ||||
-rw-r--r-- | test/junit/scala/reflect/internal/PrintersTest.scala | 2 |
6 files changed, 14 insertions, 6 deletions
diff --git a/test/files/neg/quasiquotes-syntax-error-position.check b/test/files/neg/quasiquotes-syntax-error-position.check index 9fd6ce0417..b12a7d13d6 100644 --- a/test/files/neg/quasiquotes-syntax-error-position.check +++ b/test/files/neg/quasiquotes-syntax-error-position.check @@ -16,8 +16,7 @@ quasiquotes-syntax-error-position.scala:9: error: '{' expected but end of quote quasiquotes-syntax-error-position.scala:10: error: ';' expected but '@' found. q"foo@$a" ^ -quasiquotes-syntax-error-position.scala:11: error: case classes without a parameter list are not allowed; -use either case objects or case classes with an explicit `()' as a parameter list. +quasiquotes-syntax-error-position.scala:11: error: case classes must have a parameter list; try 'case class A()' or 'case object A' q"case class A" ^ quasiquotes-syntax-error-position.scala:12: error: identifier expected but ']' found. diff --git a/test/files/neg/t10097.check b/test/files/neg/t10097.check new file mode 100644 index 0000000000..bb896dffd2 --- /dev/null +++ b/test/files/neg/t10097.check @@ -0,0 +1,4 @@ +t10097.scala:2: error: case classes must have a non-implicit parameter list; try 'case class C()(...)' +case class C(implicit val c: Int) + ^ +one error found diff --git a/test/files/neg/t10097.scala b/test/files/neg/t10097.scala new file mode 100644 index 0000000000..754e105359 --- /dev/null +++ b/test/files/neg/t10097.scala @@ -0,0 +1,5 @@ + +case class C(implicit val c: Int) + +// SI-8704 +//case class D(implicit c: Int)(s: String) diff --git a/test/files/run/patmat-exprs.scala b/test/files/run/patmat-exprs.scala index 7ca5fd3063..d18df9c714 100644 --- a/test/files/run/patmat-exprs.scala +++ b/test/files/run/patmat-exprs.scala @@ -344,13 +344,13 @@ trait Pattern { } - case class Zero[T] (implicit num: NumericOps[T]) extends Leaf[T] { + case class Zero[T]()(implicit num: NumericOps[T]) extends Leaf[T] { def derivative(variable: Var[T]) = Zero[T] def eval(f: Any => Any) = num.zero override def toString = "0" } - case class One[T] (implicit num: NumericOps[T]) extends Leaf[T] { + case class One[T]()(implicit num: NumericOps[T]) extends Leaf[T] { def derivative(variable: Var[T]) = Zero[T] def eval(f: Any => Any) = num.one override def toString = "1" diff --git a/test/files/run/t5907.scala b/test/files/run/t5907.scala index a005e9fbd3..81fc43e3f5 100644 --- a/test/files/run/t5907.scala +++ b/test/files/run/t5907.scala @@ -86,7 +86,7 @@ object Test extends App { } } -case class C1(implicit x: Int) { +case class C1()(implicit x: Int) { override def toString = s"c1: $x" } case class C2()(y: Int) { diff --git a/test/junit/scala/reflect/internal/PrintersTest.scala b/test/junit/scala/reflect/internal/PrintersTest.scala index 722062ba21..c7cfe0dfbb 100644 --- a/test/junit/scala/reflect/internal/PrintersTest.scala +++ b/test/junit/scala/reflect/internal/PrintersTest.scala @@ -556,7 +556,7 @@ class ClassPrintTest { @Test def testCaseClassWithParams3 = assertPrintedCode(sm""" |{ - | case class X(implicit x: scala.Int, s: scala.Predef.String); + | case class X()(implicit x: scala.Int, s: scala.Predef.String); | () |}""") |