diff options
author | Martin Odersky <odersky@gmail.com> | 2014-07-15 09:09:42 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-08-03 16:55:18 +0200 |
commit | 29e8f67ba19ab531932c98eba1411a63815cfa80 (patch) | |
tree | e141e391a93803048b681b80f1ea7a20b52da954 /src | |
parent | 70bd06c81aa82e7b6ffd45d3d41e2817f0edb29b (diff) | |
download | dotty-29e8f67ba19ab531932c98eba1411a63815cfa80.tar.gz dotty-29e8f67ba19ab531932c98eba1411a63815cfa80.tar.bz2 dotty-29e8f67ba19ab531932c98eba1411a63815cfa80.zip |
Adapt signature of <repeated>
so that sig(<repeated>[T]) = sig(Seq[T]).
Diffstat (limited to 'src')
-rw-r--r-- | src/dotty/tools/dotc/core/transform/Erasure.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/transform/Erasure.scala b/src/dotty/tools/dotc/core/transform/Erasure.scala index e35cdd128..587f0c088 100644 --- a/src/dotty/tools/dotc/core/transform/Erasure.scala +++ b/src/dotty/tools/dotc/core/transform/Erasure.scala @@ -46,8 +46,12 @@ object Erasure { def erasure(tp: Type)(implicit ctx: Context): Type = scalaErasureFn(tp) def semiErasure(tp: Type)(implicit ctx: Context): Type = semiErasureFn(tp) - def sigName(tp: Type, isJava: Boolean)(implicit ctx: Context): TypeName = - (if (isJava) javaSigFn else scalaSigFn).sigName(tp) + def sigName(tp: Type, isJava: Boolean)(implicit ctx: Context): TypeName = { + val normTp = + if (tp.isRepeatedParam) tp.translateParameterized(defn.RepeatedParamClass, defn.SeqClass) + else tp + (if (isJava) javaSigFn else scalaSigFn).sigName(normTp) + } /** The symbol's erased info. This is the type's erasure, except for the following symbols: * |