File tree Expand file tree Collapse file tree 2 files changed +68
-0
lines changed Expand file tree Collapse file tree 2 files changed +68
-0
lines changed Original file line number Diff line number Diff line change 1+ break Test$ 24
2+ eval b1
3+ result foo
4+ eval size.value
5+ result 2
6+ eval b2.take(size)
7+ result ba
8+ eval m(bar)
9+ result B(bar)
10+ eval new B("fizz")
11+ result fizz
12+ eval b1 + new B("buzz")
13+ result foobuzz
14+ eval new Msg(new Size(3))
15+ result Hel
16+
17+ break B$ 6
18+ eval x
19+ result foo
20+ eval take(size)
21+ result fo
22+
23+ break Test$ 25
24+ eval b1 = new B("fizz")
25+ result ()
26+ eval size = new Size(3)
27+ result ()
28+
29+ break Test$ 29
30+ eval a
31+ result B(fizzbar)
32+ eval a.take(this.size)
33+ result B(fiz)
34+ // TODO fix eval a.asInstanceOf[B] + B("buzz")
35+ // TODO fix result fizzbarbuzz
36+
37+ break B$ 6
Original file line number Diff line number Diff line change 1+ trait A extends Any :
2+ def take (size : Size ): A
3+
4+ class B (val x : String ) extends AnyVal with A :
5+ def take (size : Size ): B =
6+ new B (x.take(size.value))
7+
8+ def + (b : B ): B =
9+ new B (x + b.x)
10+
11+ override def toString : String = s " B( $x) "
12+
13+ class Size (val value : Int )
14+
15+ class Msg (size : Size ):
16+ override def toString = " Hello, World!" .take(size.value)
17+
18+ object Test :
19+ var b1 = new B (" foo" )
20+ private var size = new Size (2 )
21+
22+ def main (args : Array [String ]): Unit =
23+ val b2 = bar
24+ println(b1.take(size))
25+ println(m(b1 + b2))
26+
27+ def m (a : A ): A =
28+ val size = new Size (5 )
29+ a.take(size)
30+
31+ def bar : B = new B (" bar" )
You can’t perform that action at this time.
0 commit comments