diff options
Diffstat (limited to 'docs/examples/expressions/expressions-current.scala')
-rw-r--r-- | docs/examples/expressions/expressions-current.scala | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/docs/examples/expressions/expressions-current.scala b/docs/examples/expressions/expressions-current.scala index 5eeb439430..660a417c11 100644 --- a/docs/examples/expressions/expressions-current.scala +++ b/docs/examples/expressions/expressions-current.scala @@ -1,5 +1,7 @@ package examples.expressions +class Ref[a](var elem:a) {} + abstract class Lang { trait Visitor { def caseNum(n: int): unit @@ -21,7 +23,7 @@ abstract class Lang { } abstract class Lang2 extends Lang { - abstract class Visitor2 extends Visitor { + trait Visitor2 extends Visitor { def casePlus(left: Exp, right: Exp): unit } @@ -32,7 +34,7 @@ abstract class Lang2 extends Lang { } // class Eval2(result: Ref[int]): visitor extends Eval(result) with Visitor2 { - class Eval2(result: Ref[int]) requires visitor extends Visitor2 { + class Eval2(result: Ref[int]) requires visitor extends Eval(result) with Visitor2 { def casePlus(l: Exp, r: Exp) = result.elem = { l.visit(this); result.elem } + { r.visit(this); result.elem } } |