diff options
author | Martin Odersky <odersky@gmail.com> | 2005-11-21 12:44:48 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2005-11-21 12:44:48 +0000 |
commit | b83bbad3113a93a2732021db27684c1fec4ba387 (patch) | |
tree | 1f2fb23a167ee45320e4c19bf7e201e6d938524e /sources/scala/tools/nsc/typechecker/RefChecks.scala | |
parent | 599345037c02cb147bf109a784bd97d8dd0d1de5 (diff) | |
download | scala-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-x | sources/scala/tools/nsc/typechecker/RefChecks.scala | 10 |
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)) } |