summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2016-11-24 14:51:09 +0100
committerIulian Dragos <jaguarul@gmail.com>2016-11-25 10:51:06 +0100
commit6e719afe609a7447d0f9717ff9548818d3b94f5d (patch)
treee1bd6be2b06d9319fcda313dc22cdc69c99f9330 /src/reflect/scala/reflect
parent7602f2ebc0fbd0e1b51aa8d9d9a9e71607a06dd6 (diff)
downloadscala-6e719afe609a7447d0f9717ff9548818d3b94f5d.tar.gz
scala-6e719afe609a7447d0f9717ff9548818d3b94f5d.tar.bz2
scala-6e719afe609a7447d0f9717ff9548818d3b94f5d.zip
Don’t run the uncurry info transformer on Java symbols.
Diffstat (limited to 'src/reflect/scala/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/transform/UnCurry.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/reflect/scala/reflect/internal/transform/UnCurry.scala b/src/reflect/scala/reflect/internal/transform/UnCurry.scala
index 222f25440e..e20f1f04f6 100644
--- a/src/reflect/scala/reflect/internal/transform/UnCurry.scala
+++ b/src/reflect/scala/reflect/internal/transform/UnCurry.scala
@@ -72,7 +72,7 @@ trait UnCurry {
def apply(tp0: Type): Type = {
val tp = expandAlias(tp0)
tp match {
- case ClassInfoType(parents, decls, clazz) =>
+ case ClassInfoType(parents, decls, clazz) if !clazz.isJavaDefined =>
val parents1 = parents mapConserve uncurry
val varargOverloads = mutable.ListBuffer.empty[Symbol]
@@ -83,8 +83,7 @@ trait UnCurry {
// is anyway faster and safer
for (decl <- decls if decl.annotations.exists(_.symbol == VarargsClass)) {
if (mexists(decl.paramss)(sym => definitions.isRepeatedParamType(sym.tpe))) {
- val forwarderSym = varargForwarderSym(clazz, decl, exitingPhase(phase)(decl.info))
- varargOverloads += forwarderSym
+ varargOverloads += varargForwarderSym(clazz, decl, exitingPhase(phase)(decl.info))
}
}
if ((parents1 eq parents) && varargOverloads.isEmpty) tp
@@ -93,8 +92,10 @@ trait UnCurry {
varargOverloads.foreach(newDecls.enter)
ClassInfoType(parents1, newDecls, clazz)
} // @MAT normalize in decls??
+
case PolyType(_, _) =>
mapOver(tp)
+
case _ =>
tp
}