aboutsummaryrefslogtreecommitdiff
path: root/tests/neg
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2017-02-01 22:48:07 +0100
committerGuillaume Martres <smarter@ubuntu.com>2017-02-01 22:48:34 +0100
commitab32f4c42d10e830a4d61e50099b03894db78bbe (patch)
tree9330dcab49065f763b632e94b3045bf4deea860f /tests/neg
parent6e8933ccc40bbfe1a92c32c2d8314fd6facef12a (diff)
downloaddotty-ab32f4c42d10e830a4d61e50099b03894db78bbe.tar.gz
dotty-ab32f4c42d10e830a4d61e50099b03894db78bbe.tar.bz2
dotty-ab32f4c42d10e830a4d61e50099b03894db78bbe.zip
Fix #1644: Disallow inner classes in value classes
Diffstat (limited to 'tests/neg')
-rw-r--r--tests/neg/valueclasses-impl-restrictions.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/neg/valueclasses-impl-restrictions.scala b/tests/neg/valueclasses-impl-restrictions.scala
new file mode 100644
index 000000000..9f33b7e7c
--- /dev/null
+++ b/tests/neg/valueclasses-impl-restrictions.scala
@@ -0,0 +1,19 @@
+class X1(val s: String) extends AnyVal {
+ trait I2 { // error: value class may not define an inner class or trait
+ val q: String
+ def z = s + q
+ }
+}
+
+class X2(val s: String) extends AnyVal {
+ private[this] class I2(val q: String) // error: value class may not define an inner class or trait
+
+ def y(i: Int) = {
+ val i2 = new I2(i.toString)
+ i2.q + s
+ }
+}
+
+class X3(val s: String) extends AnyVal {
+ object I3 // error: value class may not define non-parameter field
+}