diff options
author | Martin Odersky <odersky@gmail.com> | 2012-01-25 15:04:53 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2012-01-25 15:04:53 +0100 |
commit | c749710859d32252291802d55d48abe518ddd118 (patch) | |
tree | fef90dd9afa4c595b533cb137d27c64b66cb2ce6 /src/compiler/scala/tools/nsc/typechecker/Implicits.scala | |
parent | 65a1e8bd2dbd796bedc0232615cfc3caf18fd4b3 (diff) | |
download | scala-c749710859d32252291802d55d48abe518ddd118.tar.gz scala-c749710859d32252291802d55d48abe518ddd118.tar.bz2 scala-c749710859d32252291802d55d48abe518ddd118.zip |
Making reflection thread-safe.
The idea is that all operations that need to be synchronized are overriden in classes reflect.runtime.Synchronized*. Sometimes this applies to operations defined in SymbolTable, which can be directly overridden. Sometimes it is more convenient to generate SynchronizedClazz subclasses of SymbolTable classes Clazz. In the latter case, all instance creation must go over factory methods that can be overridden in the Synchronized traits.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Implicits.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Implicits.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala index 53e88b33c8..d0492c2f63 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala @@ -213,7 +213,7 @@ trait Implicits { /** An extractor for types of the form ? { name: (? >: argtpe <: Any*)restp } */ object HasMethodMatching { - val dummyMethod = new TermSymbol(NoSymbol, NoPosition, newTermName("typer$dummy")) + val dummyMethod = NoSymbol.newTermSymbol(newTermName("typer$dummy")) def templateArgType(argtpe: Type) = new BoundedWildcardType(TypeBounds.lower(argtpe)) def apply(name: Name, argtpes: List[Type], restpe: Type): Type = { |