aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core
diff options
context:
space:
mode:
authorOndrej Lhotak <olhotak@uwaterloo.ca>2014-10-08 11:49:19 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-11-22 20:10:20 +0100
commitade0565fcdf6cb95818f538a95f798c7456d4c72 (patch)
treee7fc8e5a372c91516d06400e7b41981714a4d143 /src/dotty/tools/dotc/core
parent03627e71d9fdc4b2211d244cc8fd844d57997357 (diff)
downloaddotty-ade0565fcdf6cb95818f538a95f798c7456d4c72.tar.gz
dotty-ade0565fcdf6cb95818f538a95f798c7456d4c72.tar.bz2
dotty-ade0565fcdf6cb95818f538a95f798c7456d4c72.zip
desugar Java repeated parms into an Array instead of Seq
Diffstat (limited to 'src/dotty/tools/dotc/core')
-rw-r--r--src/dotty/tools/dotc/core/TypeApplications.scala10
-rw-r--r--src/dotty/tools/dotc/core/Types.scala4
2 files changed, 8 insertions, 6 deletions
diff --git a/src/dotty/tools/dotc/core/TypeApplications.scala b/src/dotty/tools/dotc/core/TypeApplications.scala
index 3808cb17c..3beb680d9 100644
--- a/src/dotty/tools/dotc/core/TypeApplications.scala
+++ b/src/dotty/tools/dotc/core/TypeApplications.scala
@@ -283,12 +283,12 @@ class TypeApplications(val self: Type) extends AnyVal {
/** If this is repeated parameter type, its underlying Seq type,
* or, if isJava is true, Array type, else the type itself.
*/
- def underlyingIfRepeated(isJava: Boolean)(implicit ctx: Context): Type = {
- if (self.isRepeatedParam)
- if (isJava) translateParameterized(defn.RepeatedParamClass, defn.ArrayClass)
- else translateParameterized(defn.RepeatedParamClass, defn.SeqClass)
+ def underlyingIfRepeated(isJava: Boolean)(implicit ctx: Context): Type =
+ if (self.isRepeatedParam) {
+ val seqClass = if(isJava) defn.ArrayClass else defn.SeqClass
+ translateParameterized(defn.RepeatedParamClass, seqClass)
+ }
else self
- }
/** If this is an encoding of a (partially) applied type, return its arguments,
* otherwise return Nil.
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala
index 601870e55..2997e9e77 100644
--- a/src/dotty/tools/dotc/core/Types.scala
+++ b/src/dotty/tools/dotc/core/Types.scala
@@ -1974,7 +1974,9 @@ object Types {
def fromSymbols(params: List[Symbol], resultType: Type)(implicit ctx: Context) = {
def paramInfo(param: Symbol): Type = param.info match {
case AnnotatedType(annot, tp) if annot matches defn.RepeatedAnnot =>
- tp.translateParameterized(defn.SeqClass, defn.RepeatedParamClass)
+ val typeSym = param.info.typeSymbol.asClass
+ assert(typeSym == defn.SeqClass || typeSym == defn.ArrayClass)
+ tp.translateParameterized(typeSym, defn.RepeatedParamClass)
case tp =>
tp
}