aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/LambdaLift.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2016-05-26 22:47:10 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2016-05-26 23:22:09 +0200
commit4007910927bf494c917ac1ffcbf8b73783541247 (patch)
tree7ec1cd76b34cc054e286d13551f5fc29b5b04e71 /src/dotty/tools/dotc/transform/LambdaLift.scala
parentf85663af4badc25cc5645fb811c616055e2702bb (diff)
downloaddotty-4007910927bf494c917ac1ffcbf8b73783541247.tar.gz
dotty-4007910927bf494c917ac1ffcbf8b73783541247.tar.bz2
dotty-4007910927bf494c917ac1ffcbf8b73783541247.zip
Fix deadlock in t5375 and similar tests.
See t5375.scala for details.
Diffstat (limited to 'src/dotty/tools/dotc/transform/LambdaLift.scala')
-rw-r--r--src/dotty/tools/dotc/transform/LambdaLift.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/LambdaLift.scala b/src/dotty/tools/dotc/transform/LambdaLift.scala
index 2d12a1d3c..83f272b01 100644
--- a/src/dotty/tools/dotc/transform/LambdaLift.scala
+++ b/src/dotty/tools/dotc/transform/LambdaLift.scala
@@ -369,8 +369,9 @@ class LambdaLift extends MiniPhase with IdentityDenotTransformer { thisTransform
// though the second condition seems weird, it's not true for symbols which are defined in some
// weird combinations of super calls.
(encClass, EmptyFlags)
- } else
- (topClass, JavaStatic)
+ } else if (encClass.is(ModuleClass, butNot = Package) && encClass.isStatic) // needed to not cause deadlocks in classloader. see t5375.scala
+ (encClass, EmptyFlags)
+ else (topClass, JavaStatic)
}
else (lOwner, EmptyFlags)
local.copySymDenotation(