diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2016-11-24 14:51:09 +0100 |
---|---|---|
committer | Adriaan Moors <adriaan@lightbend.com> | 2017-01-09 15:34:29 -0800 |
commit | c603449b3ed6c36483605acfa45a72d9b5c52af2 (patch) | |
tree | 74d9104c21f1ee6a0faf50d5eae34a8971a98137 /src | |
parent | 5b972dc10f0c263bcecd11c528715e8b94ca9efa (diff) | |
download | scala-c603449b3ed6c36483605acfa45a72d9b5c52af2.tar.gz scala-c603449b3ed6c36483605acfa45a72d9b5c52af2.tar.bz2 scala-c603449b3ed6c36483605acfa45a72d9b5c52af2.zip |
Don’t run the uncurry info transformer on Java symbols.
Diffstat (limited to 'src')
-rw-r--r-- | src/reflect/scala/reflect/internal/transform/UnCurry.scala | 7 |
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 } |