aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dark@d-d.me>2015-07-01 14:43:07 +0200
committerDmitry Petrashko <dark@d-d.me>2015-07-01 14:43:07 +0200
commit11b796371b48e14bcb2987bc67089fbf51d88271 (patch)
treec19858b420d35b0be3bb4382f981c073d74442b4
parent65b0c374dccd68ba4362198fc73016c739a782a5 (diff)
parentb50f9abef672221a4706f0819eca2cfc1068751c (diff)
downloaddotty-11b796371b48e14bcb2987bc67089fbf51d88271.tar.gz
dotty-11b796371b48e14bcb2987bc67089fbf51d88271.tar.bz2
dotty-11b796371b48e14bcb2987bc67089fbf51d88271.zip
Merge pull request #700 from dotty-staging/fix/#689-lifted-modules
Drop Module flag from lifted symbols.
-rw-r--r--src/dotty/tools/dotc/transform/LambdaLift.scala3
-rw-r--r--tests/run/i689.scala10
-rw-r--r--tests/run/t8002.scala (renamed from tests/pending/run/t8002.scala)0
3 files changed, 12 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/LambdaLift.scala b/src/dotty/tools/dotc/transform/LambdaLift.scala
index 043c92737..cefd283be 100644
--- a/src/dotty/tools/dotc/transform/LambdaLift.scala
+++ b/src/dotty/tools/dotc/transform/LambdaLift.scala
@@ -309,7 +309,8 @@ class LambdaLift extends MiniPhase with IdentityDenotTransformer { thisTransform
local.copySymDenotation(
owner = newOwner,
name = newName(local),
- initFlags = local.flags &~ InSuperCall | Private | maybeStatic,
+ initFlags = local.flags &~ (InSuperCall | Module) | Private | maybeStatic,
+ // drop Module because class is no longer a singleton in the lifted context.
info = liftedInfo(local)).installAfter(thisTransform)
if (local.isClass)
for (member <- local.asClass.info.decls)
diff --git a/tests/run/i689.scala b/tests/run/i689.scala
new file mode 100644
index 000000000..262d13852
--- /dev/null
+++ b/tests/run/i689.scala
@@ -0,0 +1,10 @@
+object Test {
+ def main(args: Array[String]): Unit = {
+ object A {
+ def a = new A
+ def y = 0
+ }
+ class A { A.y }
+ A.a
+ }
+}
diff --git a/tests/pending/run/t8002.scala b/tests/run/t8002.scala
index c27e83a46..c27e83a46 100644
--- a/tests/pending/run/t8002.scala
+++ b/tests/run/t8002.scala