summaryrefslogtreecommitdiff
path: root/test/files/run/t5882.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2012-09-20 18:22:39 +0200
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-10-03 13:44:16 +0200
commitef934492df93e0fd3d78e7a3d4f9cccaf765d4d5 (patch)
treee4cedab4789af1180a9be314d422d179f95e0c44 /test/files/run/t5882.scala
parente9edc69684b3d55a0aef16325e358036c71f4c57 (diff)
downloadscala-ef934492df93e0fd3d78e7a3d4f9cccaf765d4d5.tar.gz
scala-ef934492df93e0fd3d78e7a3d4f9cccaf765d4d5.tar.bz2
scala-ef934492df93e0fd3d78e7a3d4f9cccaf765d4d5.zip
Revised restrictions for value classes and unversal traits
and brought compiler in line with them. One thing we can accept IMO are nested classes (nested objects are still a problem). In fact, it makes no sense to exclude nested classes from value classes but not from universal traits. A class nested in universal trait will becomes a class nested in a value class by inheritance. Note that the reflection library already contains a universal trait with a nested class (IndexedSeqLike), so we should accept them if we can.
Diffstat (limited to 'test/files/run/t5882.scala')
-rw-r--r--test/files/run/t5882.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/files/run/t5882.scala b/test/files/run/t5882.scala
new file mode 100644
index 0000000000..47996d3068
--- /dev/null
+++ b/test/files/run/t5882.scala
@@ -0,0 +1,14 @@
+// SIP-15 was revised to allow nested classes in value classes.
+// This test checks that their basic functionality.
+
+class NodeOps(val n: Any) extends AnyVal { self =>
+ class Foo() { def show = self.show(n) }
+ def show(x: Any) = x.toString
+}
+
+
+object Test extends App {
+
+ val n = new NodeOps("abc")
+ assert(new n.Foo().show == "abc")
+}