aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/transform/Erasure.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-03-25 21:45:20 +0100
committerMartin Odersky <odersky@gmail.com>2013-03-25 21:45:20 +0100
commit5a039031c165fd9116749f28e9d9e6a0b6d5b0e6 (patch)
tree0a0b956ad7d384cf31a8d2b7835fe716c33d2834 /src/dotty/tools/dotc/core/transform/Erasure.scala
parent27a508c50482f4053591ed740f09ecced5bf749b (diff)
downloaddotty-5a039031c165fd9116749f28e9d9e6a0b6d5b0e6.tar.gz
dotty-5a039031c165fd9116749f28e9d9e6a0b6d5b0e6.tar.bz2
dotty-5a039031c165fd9116749f28e9d9e6a0b6d5b0e6.zip
More fixes to classfile reading.
Can now read entire contents of scala distribution.
Diffstat (limited to 'src/dotty/tools/dotc/core/transform/Erasure.scala')
-rw-r--r--src/dotty/tools/dotc/core/transform/Erasure.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/transform/Erasure.scala b/src/dotty/tools/dotc/core/transform/Erasure.scala
index d10415829..330442408 100644
--- a/src/dotty/tools/dotc/core/transform/Erasure.scala
+++ b/src/dotty/tools/dotc/core/transform/Erasure.scala
@@ -109,7 +109,13 @@ object Erasure {
else paramSignature(sym.info)
case tp: RefinedType =>
val parent = tp.parent
- if (parent.dealias.typeSymbol == defn.ArrayClass) paramSignature(eraseArray(tp))
+ if (parent.dealias.typeSymbol == defn.ArrayClass)
+ eraseArray(tp) match {
+ case tp1: RefinedType if tp1.parent.dealias.typeSymbol == defn.ArrayClass =>
+ paramSignature(tp1.parent) ++ "[]"
+ case tp1 =>
+ paramSignature(tp1)
+ }
else paramSignature(parent)
case tp: TypeProxy =>
paramSignature(tp.underlying)