summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-02 00:14:58 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-02 00:14:58 +0000
commitb9982a3d3d338d097fbee082c5f6778f6494f5cd (patch)
tree872b3ecb57a53490bd689fa6643474affad5eb62 /src
parent62614a6f9f7c335cf53f464ce272ac05979f5647 (diff)
downloadscala-b9982a3d3d338d097fbee082c5f6778f6494f5cd.tar.gz
scala-b9982a3d3d338d097fbee082c5f6778f6494f5cd.tar.bz2
scala-b9982a3d3d338d097fbee082c5f6778f6494f5cd.zip
Closes #3932, #1537. Review by extempore
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeGen.scala6
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala2
2 files changed, 3 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
index 253d259af1..a47200a63d 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
@@ -293,10 +293,8 @@ abstract class TreeGen {
def mkCachedModuleAccessDef(accessor: Symbol, mvar: Symbol) =
DefDef(accessor, mkCached(mvar, newModule(accessor, mvar.tpe)))
- // def m: T = new tpe(...)
- // where (...) are eventual outer accessors
- def mkModuleAccessDef(accessor: Symbol, tpe: Type) =
- DefDef(accessor, newModule(accessor, tpe))
+ def mkModuleAccessDef(accessor: Symbol, msym: Symbol) =
+ DefDef(accessor, Select(This(msym.owner), msym))
def newModule(accessor: Symbol, tpe: Type) =
New(TypeTree(tpe),
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index fd8d8274d3..17048f691a 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -965,7 +965,7 @@ abstract class RefChecks extends InfoTransform {
val ddef =
atPhase(phase.next) {
localTyper.typed {
- gen.mkModuleAccessDef(factory, sym.tpe)
+ gen.mkModuleAccessDef(factory, sym)
}
}
transformTrees(List(cdef, ddef))