diff options
author | Martin Odersky <odersky@gmail.com> | 2014-03-26 18:45:03 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-03-29 09:10:10 +0100 |
commit | 6a35e3018081a1a8dd90a3e24200223fdbfdce7f (patch) | |
tree | 9426d5c581a160ba4def17600a11b71ff45db052 /src/dotty/tools/dotc/core/Symbols.scala | |
parent | 6db08e9457a8bcb093b8c8e79109f7ef419729c2 (diff) | |
download | dotty-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.scala | 5 |
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 |