aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Symbols.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-03-26 18:45:03 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-03-29 09:10:10 +0100
commit6a35e3018081a1a8dd90a3e24200223fdbfdce7f (patch)
tree9426d5c581a160ba4def17600a11b71ff45db052 /src/dotty/tools/dotc/core/Symbols.scala
parent6db08e9457a8bcb093b8c8e79109f7ef419729c2 (diff)
downloaddotty-6a35e3018081a1a8dd90a3e24200223fdbfdce7f.tar.gz
dotty-6a35e3018081a1a8dd90a3e24200223fdbfdce7f.tar.bz2
dotty-6a35e3018081a1a8dd90a3e24200223fdbfdce7f.zip
Reworked erasure denotation transformer
Now works for all combinations of java/scala sue ErasedValueClass/go directly to underlying type constructors/others wildcards ok/not Signatures had to be refined as well, because the signature depends on whether a type comes form Java or Scala (handling of intersections is different). Also, replaced splitArray method in TypeApplication by extractors for single- and multi-dimensional array types in definitions.
Diffstat (limited to 'src/dotty/tools/dotc/core/Symbols.scala')
-rw-r--r--src/dotty/tools/dotc/core/Symbols.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/Symbols.scala b/src/dotty/tools/dotc/core/Symbols.scala
index ff70679b8..b4db26ae6 100644
--- a/src/dotty/tools/dotc/core/Symbols.scala
+++ b/src/dotty/tools/dotc/core/Symbols.scala
@@ -379,6 +379,11 @@ object Symbols {
/** If this symbol satisfies predicate `p` this symbol, otherwise `NoSymbol` */
def filter(p: Symbol => Boolean): Symbol = if (p(this)) this else NoSymbol
+ /** Is this symbol a user-defined value class? */
+ final def isDerivedValueClass(implicit ctx: Context): Boolean =
+ false && // value classes are not supported yet
+ isClass && denot.derivesFrom(defn.AnyValClass) && !isPrimitiveValueClass
+
/** Is symbol a primitive value class? */
def isPrimitiveValueClass(implicit ctx: Context) = defn.ScalaValueClasses contains this