aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/lambdalift.scala
blob: febae6828bc69899e07e2ce0c8236cfef54e10b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
object test {

  def foo(x: Int) = {

    def bar(y: Int) = x + y
    def baz(z: Int) = bar(z)

    baz(1)

  }

  def foo2(x: Int) = {

    class C {
      def bam(y: Int): String => Int = {
        def baz = x + y
        z => baz * z.length
      }
    }

    val fun = new C().bam(1)
    fun("abc")

  }
}

class Super(x: Int)

class Sub extends Super({
  def foo3(x: Int) = {

    class C {
      def this(name: String) = this()

      def bam(y: Int): String => Int = {
        def baz = x + y
        z => baz * z.length
      }
    }

    val fun = new C("dummy").bam(1)
    fun("abc")

  }
  foo3(22)
})