summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorJames Iry <james.iry@typesafe.com>2013-07-30 11:22:55 -0700
committerJames Iry <james.iry@typesafe.com>2013-11-06 12:28:19 -0800
commit510b8cecc4951ff8092cfa931c2dc3717e21dded (patch)
treece63f3c54e58f927de9e6d6df1ecc6967f012bb9 /src/reflect
parent10a061d425857c9e7bf4fa9aba9923b90467e24e (diff)
downloadscala-510b8cecc4951ff8092cfa931c2dc3717e21dded.tar.gz
scala-510b8cecc4951ff8092cfa931c2dc3717e21dded.tar.bz2
scala-510b8cecc4951ff8092cfa931c2dc3717e21dded.zip
Refactor Erasure for delambdafication.
This commit is purely a refactor. It pulls code needed to adapt a tree of one type into a tree of another type (by casting, boxing, coercing, etc) out of Erasure and into common locations that will be usable from the Delambdafy phase.
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Definitions.scala4
-rw-r--r--src/reflect/scala/reflect/internal/transform/Erasure.scala3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala
index 7b88514429..ea680867da 100644
--- a/src/reflect/scala/reflect/internal/Definitions.scala
+++ b/src/reflect/scala/reflect/internal/Definitions.scala
@@ -153,6 +153,10 @@ trait Definitions extends api.StandardDefinitions {
DoubleClass
)
def ScalaPrimitiveValueClasses: List[ClassSymbol] = ScalaValueClasses
+
+ def underlyingOfValueClass(clazz: Symbol): Type =
+ clazz.derivedValueClassUnbox.tpe.resultType
+
}
abstract class DefinitionsClass extends DefinitionsApi with ValueClassDefinitions {
diff --git a/src/reflect/scala/reflect/internal/transform/Erasure.scala b/src/reflect/scala/reflect/internal/transform/Erasure.scala
index 4aefc105e3..3eb3a4cdf4 100644
--- a/src/reflect/scala/reflect/internal/transform/Erasure.scala
+++ b/src/reflect/scala/reflect/internal/transform/Erasure.scala
@@ -77,9 +77,6 @@ trait Erasure {
if (cls.owner.isClass) cls.owner.tpe_* else pre // why not cls.isNestedClass?
}
- def underlyingOfValueClass(clazz: Symbol): Type =
- clazz.derivedValueClassUnbox.tpe.resultType
-
/** The type of the argument of a value class reference after erasure
* This method needs to be called at a phase no later than erasurephase
*/