aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-09-12 02:29:53 +0200
committerMartin Odersky <odersky@gmail.com>2014-09-12 02:29:53 +0200
commit2317764b683fe548f7c5e3b5ee5ede9760433c61 (patch)
tree812021ca83db7c3120ebe4a1797015b04856996e /src/dotty/tools/dotc/core/Definitions.scala
parentbb5b049076ca733ea42e528ecef81de438a15b19 (diff)
downloaddotty-2317764b683fe548f7c5e3b5ee5ede9760433c61.tar.gz
dotty-2317764b683fe548f7c5e3b5ee5ede9760433c61.tar.bz2
dotty-2317764b683fe548f7c5e3b5ee5ede9760433c61.zip
New phase: CapturedVars
Breaks out boxing functionality of captured vars from lambda lift.
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index cace6df74..72c42e719 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -538,6 +538,15 @@ class Definitions {
vcls
}
+ /** The classes for which a Ref type exists. */
+ lazy val refClasses: collection.Set[Symbol] = ScalaNumericValueClasses + BooleanClass + ObjectClass
+
+ lazy val refClass: Map[Symbol, Symbol] =
+ refClasses.map(rc => rc -> ctx.requiredClass(s"scala.runtime.${rc.name}Ref")).toMap
+
+ lazy val volatileRefClass: Map[Symbol, Symbol] =
+ refClasses.map(rc => rc -> ctx.requiredClass(s"scala.runtime.Volatile${rc.name}Ref")).toMap
+
def wrapArrayMethodName(elemtp: Type): TermName = {
val cls = elemtp.classSymbol
if (cls.isPrimitiveValueClass) nme.wrapXArray(cls.name)