summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-08-04 02:14:27 +0000
committerPaul Phillips <paulp@improving.org>2011-08-04 02:14:27 +0000
commite02eecbbadff2d5feccdfc81f8013e7433f10f4c (patch)
tree043d922a26932d2a4f0618e2560907b769b70f61 /src/compiler
parent9a86215c18a4eacd2ee1218fa01f458e415a8e7f (diff)
downloadscala-e02eecbbadff2d5feccdfc81f8013e7433f10f4c.tar.gz
scala-e02eecbbadff2d5feccdfc81f8013e7433f10f4c.tar.bz2
scala-e02eecbbadff2d5feccdfc81f8013e7433f10f4c.zip
Issue a warning about classes/objects inside pa...
Issue a warning about classes/objects inside package objects, no review.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala7
1 files changed, 7 insertions, 0 deletions
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)