summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2010-06-30 11:03:00 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2010-06-30 11:03:00 +0000
commit9d5bc93142ce74a7e1881becef5a9c4fd21e5979 (patch)
treef43358f553ad9a4310e47b1f78a4e567867be23e /src/compiler/scala/tools/nsc/typechecker
parent24a694fe23cdd9f13e110e3ce2036556a0ef18a9 (diff)
downloadscala-9d5bc93142ce74a7e1881becef5a9c4fd21e5979.tar.gz
scala-9d5bc93142ce74a7e1881becef5a9c4fd21e5979.tar.bz2
scala-9d5bc93142ce74a7e1881becef5a9c4fd21e5979.zip
moved toScalaRepeatedParam TypeMap to refchecks.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala9
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala11
2 files changed, 10 insertions, 10 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index 4b5de16a31..87a11497fd 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -66,6 +66,15 @@ abstract class RefChecks extends InfoTransform {
}
}
+ val toScalaRepeatedParam = new TypeMap {
+ def apply(tp: Type): Type = tp match {
+ case tp @ TypeRef(pre, JavaRepeatedParamClass, args) =>
+ typeRef(pre, RepeatedParamClass, args)
+ case _ =>
+ mapOver(tp)
+ }
+ }
+
class RefCheckTransformer(unit: CompilationUnit) extends Transformer {
var localTyper: analyzer.Typer = typer;
diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
index 3dfbbbb77f..541ef35b4b 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
@@ -272,22 +272,13 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT
case _ => Nil
}
- // fix for #2413
- object javaToScalaRepeated extends TypeMap {
- def apply(tp: Type): Type = tp match {
- case tp @ TypeRef(_, _, List(arg)) if tp.typeSymbol == definitions.JavaRepeatedParamClass =>
- appliedType(definitions.RepeatedParamClass.typeConstructor, List(arg))
- case _ =>
- mapOver(tp)
- }
- }
assert(clazz != NoSymbol, sym)
if (settings.debug.value) log("Decided for host class: " + clazz)
val accName = nme.protName(sym.originalName)
val hasArgs = sym.tpe.paramTypes != Nil
- val memberType = javaToScalaRepeated(sym.tpe) // transform(sym.tpe)
+ val memberType = refchecks.toScalaRepeatedParam(sym.tpe) // fix for #2413
// if the result type depends on the this type of an enclosing class, the accessor
// has to take an object of exactly this type, otherwise it's more general