diff options
author | Paul Phillips <paulp@improving.org> | 2010-02-25 02:54:04 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-02-25 02:54:04 +0000 |
commit | 46e78e4589fe6d68703194e71cd34b5accb0942b (patch) | |
tree | f54913da3a380b984553360d024626b55c82687f /test/files/pos/bug3097.scala | |
parent | ebe8a875e57bf562d152519a274e644268c24ecc (diff) | |
download | scala-46e78e4589fe6d68703194e71cd34b5accb0942b.tar.gz scala-46e78e4589fe6d68703194e71cd34b5accb0942b.tar.bz2 scala-46e78e4589fe6d68703194e71cd34b5accb0942b.zip |
Tweaking the sealed logic in light of #3097.
Reorganizes children a little so they always come back sorted the same
way the pickler does. Taking advantage of -Yfatal-warnings in the test
case. Review by community.
Diffstat (limited to 'test/files/pos/bug3097.scala')
-rw-r--r-- | test/files/pos/bug3097.scala | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/files/pos/bug3097.scala b/test/files/pos/bug3097.scala new file mode 100644 index 0000000000..a034b960f7 --- /dev/null +++ b/test/files/pos/bug3097.scala @@ -0,0 +1,31 @@ +package seal + +sealed trait ISimpleValue + +sealed trait IListValue extends ISimpleValue { + def items: List[IAtomicValue[_]] +} +sealed trait IAtomicValue[O] extends ISimpleValue { + def data: O +} + +sealed trait IAbstractDoubleValue[O] extends IAtomicValue[O] { } +sealed trait IDoubleValue extends IAbstractDoubleValue[Double] + +case class ListValue(val items: List[IAtomicValue[_]]) extends IListValue +class DoubleValue(val data: Double) extends IDoubleValue { + def asDouble = data +} + +object Test { + /** + * @param args the command line arguments + */ + def main(args: Array[String]): Unit = { + val v: ISimpleValue = new DoubleValue(1) + v match { + case m: IListValue => println("list") + case a: IAtomicValue[_] => println("atomic") + } + } +} |