summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/macros/contexts/Names.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/reflect/macros/contexts/Names.scala')
-rw-r--r--src/compiler/scala/reflect/macros/contexts/Names.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/compiler/scala/reflect/macros/contexts/Names.scala b/src/compiler/scala/reflect/macros/contexts/Names.scala
new file mode 100644
index 0000000000..e535754a98
--- /dev/null
+++ b/src/compiler/scala/reflect/macros/contexts/Names.scala
@@ -0,0 +1,26 @@
+package scala.reflect.macros
+package contexts
+
+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]
+} \ No newline at end of file