From e15e544b0947d91942fe890cca1ad45479a42e3c Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 21 Aug 2006 19:27:19 +0000 Subject: --- src/compiler/scala/tools/nsc/transform/Mixin.scala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index 28b6342e1e..2dca9c0ea8 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -298,14 +298,18 @@ abstract class Mixin extends InfoTransform { def implementPrivateObject(stat: Tree): List[Tree] = { val sym = stat.symbol stat match { - case _: DefDef if (sym.isModule && sym.hasFlag(PRIVATE)) => + case _: DefDef if (sym.isModule && sym.owner.isClass && sym.hasFlag(PRIVATE)) => + Console.println("implementing "+sym+sym.locationString)//debug val vdef = attributedDef(position(sym), gen.mkModuleVarDef(sym)) val adef = attributedDef( position(sym), - DefDef(sym, vparamss => + DefDef(sym, { vparamss => + val args = vparamss.head.map(Ident).take( + vdef.symbol.primaryConstructor.info.paramTypes.length) gen.mkCached( vdef.symbol, - New(TypeTree(vdef.symbol.tpe), vparamss map (.map(Ident)))))) + New(TypeTree(vdef.symbol.tpe), List(args))) + })) sym resetFlag lateDEFERRED List(vdef, adef) case _ => -- cgit v1.2.3