diff options
author | Martin Odersky <odersky@gmail.com> | 2015-05-27 10:29:44 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-05-27 10:30:56 +0200 |
commit | 397dfd6d564b032e5f1d52dda015ffb4238a595f (patch) | |
tree | d0d2d4280ec1eac3978cd80a83751deee534bf1d /tests/pos/pets.scala | |
parent | 20f6e9d9efb6ece9a8844cfe011ac1cc663c378e (diff) | |
download | dotty-397dfd6d564b032e5f1d52dda015ffb4238a595f.tar.gz dotty-397dfd6d564b032e5f1d52dda015ffb4238a595f.tar.bz2 dotty-397dfd6d564b032e5f1d52dda015ffb4238a595f.zip |
New pos tests
Some of them were moved from disabled after verifiying that they compile now.
Diffstat (limited to 'tests/pos/pets.scala')
-rw-r--r-- | tests/pos/pets.scala | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/pos/pets.scala b/tests/pos/pets.scala new file mode 100644 index 000000000..e1d5df44e --- /dev/null +++ b/tests/pos/pets.scala @@ -0,0 +1,21 @@ +// Representing the current type +trait Pet { + type This <: Pet + def name: String + def renamed(newName: String): This +} + +case class Fish(name: String, age: Int) extends Pet { + type This = Fish + def renamed(newName: String): Fish = copy(name = newName) +} + +case class Kitty(name: String, age: Int) extends Pet { + type This = Kitty + def renamed(newName: String): Kitty = copy(name = newName) +} + +object Test { + def esquire[A <: Pet](a: A): a.This = a.renamed(a.name + ", Esq.") + val f: Fish = esquire(new Fish("bob", 22)) +} |