From 2317764b683fe548f7c5e3b5ee5ede9760433c61 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 12 Sep 2014 02:29:53 +0200 Subject: New phase: CapturedVars Breaks out boxing functionality of captured vars from lambda lift. --- src/dotty/tools/dotc/core/Definitions.scala | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/dotty/tools/dotc/core/Definitions.scala') 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) -- cgit v1.2.3