aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/ValueClasses.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/transform/ValueClasses.scala')
-rw-r--r--src/dotty/tools/dotc/transform/ValueClasses.scala56
1 files changed, 0 insertions, 56 deletions
diff --git a/src/dotty/tools/dotc/transform/ValueClasses.scala b/src/dotty/tools/dotc/transform/ValueClasses.scala
deleted file mode 100644
index 93005c57a..000000000
--- a/src/dotty/tools/dotc/transform/ValueClasses.scala
+++ /dev/null
@@ -1,56 +0,0 @@
-package dotty.tools.dotc
-package transform
-
-import core._
-import Types._
-import Symbols._
-import SymDenotations._
-import Contexts._
-import Flags._
-import StdNames._
-
-/** Methods that apply to user-defined value classes */
-object ValueClasses {
-
- def isDerivedValueClass(d: SymDenotation)(implicit ctx: Context) = {
- !ctx.settings.XnoValueClasses.value &&
- !d.isRefinementClass &&
- d.isValueClass &&
- (d.initial.symbol ne defn.AnyValClass) && // Compare the initial symbol because AnyVal does not exist after erasure
- !d.isPrimitiveValueClass
- }
-
- def isMethodWithExtension(d: SymDenotation)(implicit ctx: Context) =
- d.isRealMethod &&
- isDerivedValueClass(d.owner) &&
- !d.isConstructor &&
- !d.is(SuperAccessor) &&
- !d.is(Macro)
-
- /** The member that of a derived value class that unboxes it. */
- def valueClassUnbox(d: ClassDenotation)(implicit ctx: Context): Symbol =
- // (info.decl(nme.unbox)).orElse(...) uncomment once we accept unbox methods
- d.classInfo.decls
- .find(d => d.isTerm && d.symbol.is(ParamAccessor))
- .map(_.symbol)
- .getOrElse(NoSymbol)
-
- /** For a value class `d`, this returns the synthetic cast from the underlying type to
- * ErasedValueType defined in the companion module. This method is added to the module
- * and further described in [[ExtensionMethods]].
- */
- def u2evt(d: ClassDenotation)(implicit ctx: Context): Symbol =
- d.linkedClass.info.decl(nme.U2EVT).symbol
-
- /** For a value class `d`, this returns the synthetic cast from ErasedValueType to the
- * underlying type defined in the companion module. This method is added to the module
- * and further described in [[ExtensionMethods]].
- */
- def evt2u(d: ClassDenotation)(implicit ctx: Context): Symbol =
- d.linkedClass.info.decl(nme.EVT2U).symbol
-
- /** The unboxed type that underlies a derived value class */
- def underlyingOfValueClass(d: ClassDenotation)(implicit ctx: Context): Type =
- valueClassUnbox(d).info.resultType
-
-}