summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-01-30 21:40:39 +0000
committerMartin Odersky <odersky@gmail.com>2006-01-30 21:40:39 +0000
commita3ec956b661349f50356874ad0a3e609d4461a86 (patch)
tree5ae4aaee3cde063a84d793b1a869835afab67e51 /src
parent430648004416a3a04104fd49798d99db30e1fb4f (diff)
downloadscala-a3ec956b661349f50356874ad0a3e609d4461a86.tar.gz
scala-a3ec956b661349f50356874ad0a3e609d4461a86.tar.bz2
scala-a3ec956b661349f50356874ad0a3e609d4461a86.zip
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala8
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 94997532f2..dddd9b9821 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -237,7 +237,7 @@ trait Namers requires Analyzer {
tree.symbol = enterModuleSymbol(tree.pos, mods.flags | MODULE | FINAL, name);
setPrivateWithin(tree.symbol, mods);
setPrivateWithin(tree.symbol.moduleClass, mods);
- tree.symbol.moduleClass.setInfo(innerNamer.typeCompleter(tree));
+ tree.symbol.moduleClass.setInfo(innerNamer.moduleClassTypeCompleter(tree));
finish
case ValDef(mods, name, tp, rhs) =>
if (context.owner.isClass & (mods.flags & LOCAL) == 0) {
@@ -313,6 +313,12 @@ trait Namers requires Analyzer {
}
}
+ def moduleClassTypeCompleter(tree: Tree) = new TypeCompleter(tree) {
+ override def complete(sym: Symbol): unit = {
+ tree.symbol.info // sets moduleClass info as a side effect.
+ }
+ }
+
def getterTypeCompleter(tree: Tree) = new TypeCompleter(tree) {
override def complete(sym: Symbol): unit = {
if (settings.debug.value) log("defining " + sym);
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 2a1502aa66..c3abb76e64 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -1323,7 +1323,7 @@ mixin class Typers requires Analyzer {
if (stableApplication) fun1 = stabilizeFun(fun1, mode, pt)
// if function is overloaded, filter all alternatives that match
// number of arguments and expected result type.
- // if (settings.debug.value) log("trans app "+fun1+":"+fun1.symbol+":"+fun1.tpe+" "+args);//DEBUG
+ if (settings.debug.value) log("trans app "+fun1+":"+fun1.symbol+":"+fun1.tpe+" "+args);//DEBUG
if (fun1.hasSymbol && fun1.symbol.hasFlag(OVERLOADED)) {
val argtypes = args map (arg => AllClass.tpe)
val pre = fun1.symbol.tpe.prefix