summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/TreeGen.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@gmail.com>2012-05-07 10:15:35 +0200
committerHubert Plociniczak <hubert.plociniczak@gmail.com>2012-05-07 10:17:32 +0200
commita3d4d17b7750fdc121cdb3a6b394bb0489c914cb (patch)
tree7d4d1e0661377b69c756ed7519df2e9db97e8cf2 /src/compiler/scala/tools/nsc/ast/TreeGen.scala
parent3631f1dadc8ce2beac86aa618a62120b88bda50c (diff)
downloadscala-a3d4d17b7750fdc121cdb3a6b394bb0489c914cb.tar.gz
scala-a3d4d17b7750fdc121cdb3a6b394bb0489c914cb.tar.bz2
scala-a3d4d17b7750fdc121cdb3a6b394bb0489c914cb.zip
Part III of the Lazy Vals Saga: Inliner strikes back. Or at least let's hope it will.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/TreeGen.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeGen.scala17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
index 978d83616b..4cfe2e5cb3 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
@@ -362,13 +362,12 @@ abstract class TreeGen extends reflect.internal.TreeGen with TreeDSL {
def mkDoubleCheckedLocking(clazz: Symbol, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree =
mkDoubleCheckedLocking(mkAttributedThis(clazz), cond, syncBody, stats)
- def mkDoubleCheckedLocking(attrThis: Tree, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree = {
- If(cond,
- Block(
- mkSynchronized(
- attrThis,
- If(cond, Block(syncBody: _*), EmptyTree)) ::
- stats: _*),
- EmptyTree)
- }
+ def mkDoubleCheckedLocking(attrThis: Tree, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree =
+ If(cond, mkSynchronizedCheck(attrThis, cond, syncBody, stats), EmptyTree)
+
+ def mkSynchronizedCheck(attrThis: Tree, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree =
+ Block(mkSynchronized(
+ attrThis,
+ If(cond, Block(syncBody: _*), EmptyTree)) ::
+ stats: _*)
}