summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-03-11 20:19:24 -0700
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-03-11 20:19:24 -0700
commit80f77cc4d1bc5532afbe30cbc126cf13a3f24e7c (patch)
tree76a8369300e50624ff1c104487a64066adb32af2 /src
parent7be46bd6e1b51c8e0e078b09eae3259810f3af10 (diff)
parent814ecad8a0f4830ce97112e00e4823a2b5c047e0 (diff)
downloadscala-80f77cc4d1bc5532afbe30cbc126cf13a3f24e7c.tar.gz
scala-80f77cc4d1bc5532afbe30cbc126cf13a3f24e7c.tar.bz2
scala-80f77cc4d1bc5532afbe30cbc126cf13a3f24e7c.zip
Merge pull request #3616 from retronym/ticket/8363
SI-8363 Disable -Ydelambdafy:method in constructor position
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/transform/UnCurry.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
index 8a7d30235f..d77c6b54a9 100644
--- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala
+++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
@@ -221,7 +221,9 @@ abstract class UnCurry extends InfoTransform
def mkMethod(owner: Symbol, name: TermName, additionalFlags: FlagSet = NoFlags): DefDef =
gen.mkMethodFromFunction(localTyper)(fun, owner, name, additionalFlags)
- if (inlineFunctionExpansion) {
+ val canUseDelamdafyMethod = (inConstructorFlag == 0) // Avoiding synthesizing code prone to SI-6666, SI-8363 by using old-style lambda translation
+
+ if (inlineFunctionExpansion || !canUseDelamdafyMethod) {
val parents = addSerializable(abstractFunctionForFunctionType(fun.tpe))
val anonClass = fun.symbol.owner newAnonymousFunctionClass(fun.pos, inConstructorFlag) addAnnotation SerialVersionUIDAnnotation
anonClass setInfo ClassInfoType(parents, newScope, anonClass)