summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDen Shabalin <den.shabalin@gmail.com>2013-10-11 17:40:35 +0200
committerDen Shabalin <den.shabalin@gmail.com>2013-10-18 17:24:52 +0200
commitcf58d7c88c35c41f749298de5b0de09fca72df1b (patch)
treef7c4769cf2884656398235ca50eb78d853bd35e9 /src
parent0a16caa5881b312f5cd3817fd4036436ed1d58b5 (diff)
downloadscala-cf58d7c88c35c41f749298de5b0de09fca72df1b.tar.gz
scala-cf58d7c88c35c41f749298de5b0de09fca72df1b.tar.bz2
scala-cf58d7c88c35c41f749298de5b0de09fca72df1b.zip
re-wire fresh name creator to currentUnit.fresh at compile-time
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala1
-rw-r--r--src/reflect/scala/reflect/internal/BuildUtils.scala2
-rw-r--r--src/reflect/scala/reflect/internal/SymbolTable.scala1
-rw-r--r--src/reflect/scala/reflect/runtime/JavaUniverse.scala2
4 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala
index 46456093eb..1c5354502b 100644
--- a/src/compiler/scala/tools/nsc/Global.scala
+++ b/src/compiler/scala/tools/nsc/Global.scala
@@ -1050,6 +1050,7 @@ class Global(var currentSettings: Settings, var reporter: Reporter)
def currentRun: Run = curRun
def currentUnit: CompilationUnit = if (currentRun eq null) NoCompilationUnit else currentRun.currentUnit
def currentSource: SourceFile = if (currentUnit.exists) currentUnit.source else lastSeenSourceFile
+ def currentFreshNameCreator = currentUnit.fresh
def isGlobalInitialized = (
definitions.isDefinitionsInitialized
diff --git a/src/reflect/scala/reflect/internal/BuildUtils.scala b/src/reflect/scala/reflect/internal/BuildUtils.scala
index 46119ae802..fc6b26db3f 100644
--- a/src/reflect/scala/reflect/internal/BuildUtils.scala
+++ b/src/reflect/scala/reflect/internal/BuildUtils.scala
@@ -135,7 +135,7 @@ trait BuildUtils { self: SymbolTable =>
def withFreshTypeName[T](prefix: String)(f: TypeName => T): T = f(freshTypeName(prefix))
- private implicit val fresh = new FreshNameCreator
+ private implicit def fresh: FreshNameCreator = self.currentFreshNameCreator
object FlagsRepr extends FlagsReprExtractor {
def apply(bits: Long): FlagSet = bits
diff --git a/src/reflect/scala/reflect/internal/SymbolTable.scala b/src/reflect/scala/reflect/internal/SymbolTable.scala
index 0e9c866ace..8f954e4095 100644
--- a/src/reflect/scala/reflect/internal/SymbolTable.scala
+++ b/src/reflect/scala/reflect/internal/SymbolTable.scala
@@ -372,6 +372,7 @@ abstract class SymbolTable extends macros.Universe
implicit val StringContextStripMarginOps: StringContext => StringContextStripMarginOps = util.StringContextStripMarginOps
// fresh name creation
+ def currentFreshNameCreator: FreshNameCreator
def freshTermName(prefix: String = "x$")(implicit creator: FreshNameCreator): TermName = newTermName(creator.newName(prefix))
def freshTypeName(prefix: String)(implicit creator: FreshNameCreator): TypeName = newTypeName(creator.newName(prefix))
}
diff --git a/src/reflect/scala/reflect/runtime/JavaUniverse.scala b/src/reflect/scala/reflect/runtime/JavaUniverse.scala
index 06a7db6289..9d37edbacd 100644
--- a/src/reflect/scala/reflect/runtime/JavaUniverse.scala
+++ b/src/reflect/scala/reflect/runtime/JavaUniverse.scala
@@ -21,6 +21,8 @@ class JavaUniverse extends internal.SymbolTable with ReflectSetup with runtime.S
def newStrictTreeCopier: TreeCopier = new StrictTreeCopier
def newLazyTreeCopier: TreeCopier = new LazyTreeCopier
+ val currentFreshNameCreator = new reflect.internal.util.FreshNameCreator
+
// can't put this in runtime.Trees since that's mixed with Global in ReflectGlobal, which has the definition from internal.Trees
object treeInfo extends {
val global: JavaUniverse.this.type = JavaUniverse.this