summaryrefslogtreecommitdiff
path: root/src/reflect/scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2016-11-24 14:51:09 +0100
committerAdriaan Moors <adriaan@lightbend.com>2017-01-09 15:34:29 -0800
commitc603449b3ed6c36483605acfa45a72d9b5c52af2 (patch)
tree74d9104c21f1ee6a0faf50d5eae34a8971a98137 /src/reflect/scala
parent5b972dc10f0c263bcecd11c528715e8b94ca9efa (diff)
downloadscala-c603449b3ed6c36483605acfa45a72d9b5c52af2.tar.gz
scala-c603449b3ed6c36483605acfa45a72d9b5c52af2.tar.bz2
scala-c603449b3ed6c36483605acfa45a72d9b5c52af2.zip
Don’t run the uncurry info transformer on Java symbols.
Diffstat (limited to 'src/reflect/scala')
-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 e86003226a..79ecbb9fda 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
}