aboutsummaryrefslogtreecommitdiff
path: root/tests/run/t8611b.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-06-20 00:44:47 +0200
committerMartin Odersky <odersky@gmail.com>2015-06-20 00:45:02 +0200
commit9a4b5e7c306eb3f1c82ace10dd62576473b1dec1 (patch)
tree9580b1faebdee6cd0a55cfba71526cb5046e3897 /tests/run/t8611b.scala
parentc093792189f49c3e72ada99ca0fdb97e4023ef78 (diff)
downloaddotty-9a4b5e7c306eb3f1c82ace10dd62576473b1dec1.tar.gz
dotty-9a4b5e7c306eb3f1c82ace10dd62576473b1dec1.tar.bz2
dotty-9a4b5e7c306eb3f1c82ace10dd62576473b1dec1.zip
Map outer fields to parameters in primary constructor
Previously this was only done in secondary constructors; need to do it in primary constructor as well to avoid "reference to this before super" problems.
Diffstat (limited to 'tests/run/t8611b.scala')
-rw-r--r--tests/run/t8611b.scala54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/run/t8611b.scala b/tests/run/t8611b.scala
new file mode 100644
index 000000000..75114c2ae
--- /dev/null
+++ b/tests/run/t8611b.scala
@@ -0,0 +1,54 @@
+sealed trait KrafsDescription
+
+abstract class NotWorkingEnum extends Enumeration {
+
+ type ExtendedValue = Value with KrafsDescription
+
+ def Enum(inDescription: String): ExtendedValue = {
+ new Val(nextId) with KrafsDescription {
+ }
+ }
+}
+
+abstract class WorkingEnum extends Enumeration {
+
+ type ExtendedValue = Value
+
+ def Enum(inDescription: String): ExtendedValue = {
+ new Val(nextId) {
+ }
+ }
+}
+
+object NotWorkingTab extends NotWorkingEnum {
+ val a = Enum("A")
+ val b = Enum("B")
+}
+
+object WorkingTab extends WorkingEnum {
+ val a = Enum("A")
+ val b = Enum("B")
+}
+
+object Test extends dotty.runtime.LegacyApp {
+ testGris()
+ testWorking()
+
+ def testGris(): Unit = {
+ val pipp = NotWorkingTab.b
+ pipp match {
+ case NotWorkingTab.a => ???
+ case NotWorkingTab.b =>
+ case _ => ???
+ }
+ }
+
+ def testWorking(): Unit = {
+ val stuff = WorkingTab.a
+ stuff match {
+ case WorkingTab.a =>
+ case WorkingTab.b => ???
+ case _ => ???
+ }
+ }
+}