File: t8301b.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (36 lines) | stat: -rw-r--r-- 737 bytes parent folder | download | duplicates (4)
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
// cf. pos/t8300-patmat.scala
trait Universe {
  type Name >: Null <: AnyRef with NameApi
  trait NameApi
 
  type TermName >: Null <: TermNameApi with Name
  trait TermNameApi extends NameApi
}
 
object Test extends App {
  val u: Universe = ???
  import u._
 
  val ScalaName: TermName = ???
  locally {
    
    ??? match {
      case Test.ScalaName => ???
    }
    import Test.ScalaName._

    ??? match {
      case ScalaName => ???
    }
    import ScalaName._

    // both the pattern and import led to
    // stable identifier required, but SN found. Note that value SN 
    // is not stable because its type, Test.u.TermName, is volatile.
    val SN = ScalaName
    ??? match {
      case SN => ???
    }
    import SN._
  }
}