From 71e59bb45db6f9f8abd8d42041583d56c88fe289 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 5 Aug 2013 17:48:02 +0200 Subject: Revised typed ClassDef construction. --- src/dotty/tools/dotc/core/pickling/UnPickler.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/core/pickling/UnPickler.scala') diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala index 4c96c5e4b..23fb79f8f 100644 --- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala +++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala @@ -897,7 +897,10 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: setSymModsName() val impl = readTemplateRef() val tparams = until(end, readTypeDefRef) - ClassDef(symbol.asClass, tparams map (_.symbol.asType), ???, impl.body) // !!! TODO: pull out primary constructor + val cls = symbol.asClass + val ((constr: DefDef) :: Nil, stats) = + impl.body.partition(_.symbol == cls.primaryConstructor) + ClassDef(cls, constr, tparams ++ stats) case MODULEtree => setSymModsName() -- cgit v1.2.3