diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-12-29 05:12:55 -0800 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-12-29 05:12:55 -0800 |
commit | 278eea7d85632419ba58e7c5c628449addff137f (patch) | |
tree | 59ecaa84b333ddc78db27e7bb439728a6af21a99 | |
parent | 58e3daf6a81300422ad18988848b4c160682bdb6 (diff) | |
parent | 9f5a021aa718a4c87b87610ef475982760140767 (diff) | |
download | scala-278eea7d85632419ba58e7c5c628449addff137f.tar.gz scala-278eea7d85632419ba58e7c5c628449addff137f.tar.bz2 scala-278eea7d85632419ba58e7c5c628449addff137f.zip |
Merge pull request #1815 from scalamacros/topic/fresh-name
renames c.fresh to c.freshName
-rw-r--r-- | src/compiler/scala/reflect/macros/runtime/Names.scala | 13 | ||||
-rw-r--r-- | src/compiler/scala/tools/reflect/MacroImplementations.scala | 2 | ||||
-rw-r--r-- | src/reflect/scala/reflect/macros/Names.scala | 14 |
3 files changed, 26 insertions, 3 deletions
diff --git a/src/compiler/scala/reflect/macros/runtime/Names.scala b/src/compiler/scala/reflect/macros/runtime/Names.scala index ee9f3a56d3..635e8bcd45 100644 --- a/src/compiler/scala/reflect/macros/runtime/Names.scala +++ b/src/compiler/scala/reflect/macros/runtime/Names.scala @@ -7,11 +7,20 @@ trait Names { lazy val freshNameCreator = callsiteTyper.context.unit.fresh def fresh(): String = - freshNameCreator.newName() + freshName() def fresh(name: String): String = - freshNameCreator.newName(name) + 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 diff --git a/src/compiler/scala/tools/reflect/MacroImplementations.scala b/src/compiler/scala/tools/reflect/MacroImplementations.scala index d7c50504a8..ab967496c4 100644 --- a/src/compiler/scala/tools/reflect/MacroImplementations.scala +++ b/src/compiler/scala/tools/reflect/MacroImplementations.scala @@ -37,7 +37,7 @@ abstract class MacroImplementations { val argsStack = Stack(args : _*) def defval(value: Tree, tpe: Type): Unit = { - val freshName = newTermName(c.fresh("arg$")) + val freshName = newTermName(c.freshName("arg$")) evals += ValDef(Modifiers(), freshName, TypeTree(tpe) setPos value.pos.focus, value) setPos value.pos ids += Ident(freshName) } diff --git a/src/reflect/scala/reflect/macros/Names.scala b/src/reflect/scala/reflect/macros/Names.scala index 8bbaa5f848..7e2ac5e02d 100644 --- a/src/reflect/scala/reflect/macros/Names.scala +++ b/src/reflect/scala/reflect/macros/Names.scala @@ -11,13 +11,27 @@ trait Names { self: Context => /** Creates a unique string. */ + @deprecated("Use freshName instead", "2.11.0") def fresh(): String /** Creates a unique string having a given prefix. */ + @deprecated("Use freshName instead", "2.11.0") def fresh(name: String): String /** Creates a unique name having a given name as a prefix and * having the same flavor (term name or type name) as the given name. */ + @deprecated("Use freshName instead", "2.11.0") def fresh[NameType <: Name](name: NameType): NameType + + /** Creates a unique string. */ + def freshName(): String + + /** Creates a unique string having a given prefix. */ + def freshName(name: String): String + + /** Creates a unique name having a given name as a prefix and + * having the same flavor (term name or type name) as the given name. + */ + def freshName[NameType <: Name](name: NameType): NameType } |