diff options
author | Martin Odersky <odersky@gmail.com> | 2013-03-25 21:45:20 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-03-25 21:45:20 +0100 |
commit | 5a039031c165fd9116749f28e9d9e6a0b6d5b0e6 (patch) | |
tree | 0a0b956ad7d384cf31a8d2b7835fe716c33d2834 /src/dotty/tools/dotc/core/transform/Erasure.scala | |
parent | 27a508c50482f4053591ed740f09ecced5bf749b (diff) | |
download | dotty-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.scala | 8 |
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) |