summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/macros/contexts/Names.scala
blob: c2f14cf0f15e97a3a48b357e628554d3b0487162 (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 contexts

trait Names {
  self: Context =>

  def 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 =
    freshName("fresh$")

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

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