aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Namer.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/typer/Namer.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Namer.scala18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/dotty/tools/dotc/typer/Namer.scala b/src/dotty/tools/dotc/typer/Namer.scala
index 479b29cd8..cdda4f05a 100644
--- a/src/dotty/tools/dotc/typer/Namer.scala
+++ b/src/dotty/tools/dotc/typer/Namer.scala
@@ -124,7 +124,7 @@ class Namer { typer: Typer =>
tree match {
case tree: TypeDef if tree.isClassDef =>
record(tree, ctx.newClassSymbol(
- ctx.owner, tree.name, tree.mods.flags, new ClassCompleter(tree),
+ ctx.owner, tree.name, tree.mods.flags, new Completer(tree) withDecls newScope,
privateWithinClass(tree.mods), tree.pos, ctx.source.file))
case tree: MemberDef =>
record(tree, ctx.newSymbol(
@@ -251,7 +251,10 @@ class Namer { typer: Typer =>
nestedTyper(sym) = typer1
typer1.defDefSig(tree, sym)(localContext.withTyper(typer1))
case tree: TypeDef =>
- typeDefSig(tree, sym)(localContext.withNewScope)
+ if (tree.isClassDef)
+ classDefSig(tree, sym.asClass, decls.asInstanceOf[MutableScope])(localContext)
+ else
+ typeDefSig(tree, sym)(localContext.withNewScope)
case imp: Import =>
val expr1 = typedAheadExpr(imp.expr, AnySelectionProto)
ImportType(tpd.SharedTree(expr1))
@@ -261,17 +264,6 @@ class Namer { typer: Typer =>
}
}
- /** The completer for a symbol defined by a class definition */
- class ClassCompleter(original: TypeDef)(implicit ctx: Context)
- extends ClassCompleterWithDecls(newScope) {
- override def complete(denot: SymDenotation): Unit = {
- val cls = denot.symbol.asClass
- def localContext = ctx.fresh.withOwner(cls)
- println(s"completing ${cls.show}")
- cls.info = classDefSig(original, cls, decls.asInstanceOf[MutableScope])(localContext)
- }
- }
-
/** Typecheck tree during completion, and remember result in typedtree map */
private def typedAheadImpl(tree: Tree, pt: Type)(implicit ctx: Context): tpd.Tree =
typedTree.getOrElseUpdate(tree, typer.typedExpanded(tree, pt))