summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/macros/runtime/Names.scala
blob: 635e8bcd458d3c7ad243a8985e68bc0b0bd72190 (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
package scala.reflect.macros
package runtime

trait Names {
  self: Context =>

  lazy val freshNameCreator = callsiteTyper.context.unit.fresh

  def fresh(): String =
    freshName()

  def fresh(name: String): String =
    freshName(name)

  def fresh[NameType <: Name](name: NameType): NameType =
    freshName[NameType](name)

  def freshName(): String =
    freshNameCreator.newName()

  def freshName(name: String): String =
    freshNameCreator.newName(name)

  def freshName[NameType <: Name](name: NameType): NameType =
    name.mapName(freshNameCreator.newName(_)).asInstanceOf[NameType]
}