summaryrefslogtreecommitdiff
path: root/sources/scala/tools/nsc/typechecker/RefChecks.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-11-21 12:44:48 +0000
committerMartin Odersky <odersky@gmail.com>2005-11-21 12:44:48 +0000
commitb83bbad3113a93a2732021db27684c1fec4ba387 (patch)
tree1f2fb23a167ee45320e4c19bf7e201e6d938524e /sources/scala/tools/nsc/typechecker/RefChecks.scala
parent599345037c02cb147bf109a784bd97d8dd0d1de5 (diff)
downloadscala-b83bbad3113a93a2732021db27684c1fec4ba387.tar.gz
scala-b83bbad3113a93a2732021db27684c1fec4ba387.tar.bz2
scala-b83bbad3113a93a2732021db27684c1fec4ba387.zip
*** empty log message ***
Diffstat (limited to 'sources/scala/tools/nsc/typechecker/RefChecks.scala')
-rwxr-xr-xsources/scala/tools/nsc/typechecker/RefChecks.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/sources/scala/tools/nsc/typechecker/RefChecks.scala b/sources/scala/tools/nsc/typechecker/RefChecks.scala
index 9f3bb56d3c..b6becf5972 100755
--- a/sources/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/sources/scala/tools/nsc/typechecker/RefChecks.scala
@@ -81,6 +81,10 @@ abstract class RefChecks extends InfoTransform {
mvarRef))
}
+ // def m: T;
+ def newModuleAccessDcl(accessor: Symbol) =
+ DefDef(accessor setFlag lateDEFERRED, vparamss => EmptyTree);
+
class RefCheckTransformer(unit: CompilationUnit) extends Transformer {
var localTyper: analyzer.Typer = typer;
@@ -450,10 +454,12 @@ abstract class RefChecks extends InfoTransform {
val ddef =
atPhase(phase.next) {
localTyper.typed {
- newModuleAccessDef(sym, vdef.symbol)
+ if (sym.owner.isTrait) newModuleAccessDcl(sym)
+ else newModuleAccessDef(sym, vdef.symbol)
}
}
- if (sym.owner.isTrait) List(transform(cdef))
+
+ if (sym.owner.isTrait) transformTrees(List(cdef, ddef))
else transformTrees(List(cdef, vdef, ddef))
}