aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/t8301b.scala
blob: 4dd39139d2765321dcd7e269240db87ca5b7042a (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
// 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._
  }
}