From e02eecbbadff2d5feccdfc81f8013e7433f10f4c Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Thu, 4 Aug 2011 02:14:27 +0000 Subject: Issue a warning about classes/objects inside pa... Issue a warning about classes/objects inside package objects, no review. --- src/compiler/scala/tools/nsc/typechecker/Namers.scala | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/compiler') diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala index d7b665e214..7a42d6e519 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala @@ -453,6 +453,13 @@ trait Namers { self: Analyzer => val m = ensureCompanionObject(tree, companionModuleDef(tree)) classAndNamerOfModule(m) = (tree, null) } + val owner = tree.symbol.owner + if (owner.isPackageObjectClass) { + context.unit.warning(tree.pos, + "it is not recommended to define classes/objects inside of package objects.\n" + + "If possible, define " + tree.symbol + " in " + owner.skipPackageObject + " instead." + ) + } case tree @ ModuleDef(mods, name, _) => tree.symbol = enterModuleSymbol(tree) sym.moduleClass setInfo namerOf(sym).moduleClassTypeCompleter(tree) -- cgit v1.2.3