@@ -133,17 +133,11 @@ object TypeErasure {
133
133
erasureFn(isJava = false , semiEraseVCs = true , isConstructor = false , wildcardOK = false )(tp)(erasureCtx)
134
134
135
135
def sigName (tp : Type , isJava : Boolean )(implicit ctx : Context ): TypeName = {
136
- val normTp = if ( tp.isRepeatedParam) repeatedErased(tp, isJava) else tp
136
+ val normTp = tp.underlyingIfRepeated( isJava)
137
137
val erase = erasureFn(isJava, semiEraseVCs = false , isConstructor = false , wildcardOK = true )
138
138
erase.sigName(normTp)(erasureCtx)
139
139
}
140
140
141
- /** Erases a repeated T* type into Seq[T] or Array[T] */
142
- def repeatedErased (tp : Type , isJava : Boolean )(implicit ctx : Context ): Type = {
143
- val seqClass = if (isJava) defn.ArrayClass else defn.SeqClass
144
- tp.translateParameterized(defn.RepeatedParamClass , seqClass)
145
- }
146
-
147
141
/** The erasure of a top-level reference. Differs from normal erasure in that
148
142
* TermRefs are kept instead of being widened away.
149
143
*/
@@ -395,7 +389,7 @@ class TypeErasure(isJava: Boolean, semiEraseVCs: Boolean, isConstructor: Boolean
395
389
else eraseNormalClassRef(tp)
396
390
case tp : AppliedType =>
397
391
if (tp.tycon.isRef(defn.ArrayClass )) eraseArray(tp)
398
- else if (tp.isRepeatedParam) apply(repeatedErased(tp, isJava))
392
+ else if (tp.isRepeatedParam) apply(tp.underlyingIfRepeated( isJava))
399
393
else apply(tp.superType)
400
394
case _ : TermRef | _ : ThisType =>
401
395
this (tp.widen)
0 commit comments