aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async/neg/LocalClasses0Spec.scala
blob: 68ce9eadad9f2306b8ac874afa59b76c7b5f2f61 (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
/*
 * Copyright (C) 2012-2014 Lightbend Inc. <http://www.lightbend.com>
 */

package scala.async
package neg

import org.junit.Test
import scala.async.internal.AsyncId

class LocalClasses0Spec {
  @Test
  def localClassCrashIssue16(): Unit = {
    import AsyncId.{async, await}
    async {
      class B { def f = 1 }
      await(new B()).f
    } mustBe 1
  }

  @Test
  def nestedCaseClassAndModuleAllowed(): Unit = {
    import AsyncId.{await, async}
    async {
      trait Base { def base = 0}
      await(0)
      case class Person(name: String) extends Base
      val fut = async { "bob" }
      val x = Person(await(fut))
      x.base
      x.name
    } mustBe "bob"
  }
}