aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/zoo.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/zoo.scala')
-rw-r--r--tests/pos/zoo.scala27
1 files changed, 12 insertions, 15 deletions
diff --git a/tests/pos/zoo.scala b/tests/pos/zoo.scala
index 08f7eba63..02dac8f5b 100644
--- a/tests/pos/zoo.scala
+++ b/tests/pos/zoo.scala
@@ -1,40 +1,37 @@
object Test {
-type Meat = {
+trait FoodStuff
+trait Meat extends FoodStuff {
type IsMeat = Any
}
-type Grass = {
+trait Grass extends FoodStuff {
type IsGrass = Any
}
-type Animal = {
- type Food
+trait Animal {
+ type Food <: FoodStuff
def eats(food: Food): Unit
def gets: Food
}
-type Cow = {
+trait Cow extends Animal {
type IsMeat = Any
type Food <: Grass
def eats(food: Grass): Unit
- def gets: Grass
+ def gets: Food
}
-type Lion = {
+trait Lion extends Animal {
type Food = Meat
def eats(food: Meat): Unit
def gets: Meat
}
-def newMeat: Meat = new {
- type IsMeat = Any
+def newMeat: Meat = new Meat {
}
-def newGrass: Grass = new {
- type IsGrass = Any
+def newGrass: Grass = new Grass {
}
-def newCow: Cow = new {
- type IsMeat = Any
+def newCow: Cow = new Cow {
type Food = Grass
def eats(food: Grass) = ()
def gets = newGrass
}
-def newLion: Lion = new {
- type Food = Meat
+def newLion: Lion = new Lion {
def eats(food: Meat) = ()
def gets = newMeat
}