aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/transform/Erasure.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-07-15 09:09:42 +0200
committerMartin Odersky <odersky@gmail.com>2014-08-03 16:55:18 +0200
commit29e8f67ba19ab531932c98eba1411a63815cfa80 (patch)
treee141e391a93803048b681b80f1ea7a20b52da954 /src/dotty/tools/dotc/core/transform/Erasure.scala
parent70bd06c81aa82e7b6ffd45d3d41e2817f0edb29b (diff)
downloaddotty-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/dotty/tools/dotc/core/transform/Erasure.scala')
-rw-r--r--src/dotty/tools/dotc/core/transform/Erasure.scala8
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:
*