diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-06-30 11:03:00 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-06-30 11:03:00 +0000 |
commit | 9d5bc93142ce74a7e1881becef5a9c4fd21e5979 (patch) | |
tree | f43358f553ad9a4310e47b1f78a4e567867be23e /src | |
parent | 24a694fe23cdd9f13e110e3ce2036556a0ef18a9 (diff) | |
download | scala-9d5bc93142ce74a7e1881becef5a9c4fd21e5979.tar.gz scala-9d5bc93142ce74a7e1881becef5a9c4fd21e5979.tar.bz2 scala-9d5bc93142ce74a7e1881becef5a9c4fd21e5979.zip |
moved toScalaRepeatedParam TypeMap to refchecks.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 9 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala | 11 |
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 |