aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/scala/async/neg/LocalClasses0Spec.scala
blob: 240e0889f2fe5496d4ebce3372372be555274dd4 (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 Typesafe Inc. <http://www.typesafe.com>
 */

package scala.async
package neg

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

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

  @Test
  def nestedCaseClassAndModuleAllowed() {
    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"
  }
}