From 9972040b0f839de21496fb6fcfe5cb761b7e67b0 Mon Sep 17 00:00:00 2001 From: Donna Malayeri Date: Tue, 20 Jul 2010 16:17:35 +0000 Subject: [scaladoc] Don't generate documentation for emp... [scaladoc] Don't generate documentation for empty Java companion objects. No review. --- src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala index 87242eebf5..08fbc46789 100644 --- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala @@ -211,7 +211,8 @@ class ModelFactory(val global: Global, val settings: doc.Settings) { thisFactory def isDocTemplate = true def companion = sym.companionSymbol match { case NoSymbol => None - case comSym => Some(makeDocTemplate(comSym, inTpl)) + case comSym if !isEmptyJavaObject(comSym) => Some(makeDocTemplate(comSym, inTpl)) + case _ => None } } @@ -540,10 +541,15 @@ class ModelFactory(val global: Global, val settings: doc.Settings) { thisFactory def templateShouldDocument(aSym: Symbol): Boolean = { // TODO: document sourceless entities (e.g., Any, etc), based on a new Setting to be added (aSym.isPackageClass || (aSym.sourceFile != null)) && localShouldDocument(aSym) && - ( aSym.owner == NoSymbol || templateShouldDocument(aSym.owner) ) + ( aSym.owner == NoSymbol || templateShouldDocument(aSym.owner) ) && !isEmptyJavaObject(aSym) } - def localShouldDocument(aSym: Symbol): Boolean = - !aSym.isPrivate && (aSym.isProtected || aSym.privateWithin == NoSymbol) && !aSym.isSynthetic + def isEmptyJavaObject(aSym: Symbol): Boolean = { + val hasMembers = aSym.info.members.exists(s => localShouldDocument(s) && (!s.isConstructor || s.owner == aSym)) + aSym.isModule && aSym.hasFlag(Flags.JAVA) && !hasMembers + } + def localShouldDocument(aSym: Symbol): Boolean = { + !aSym.isPrivate && (aSym.isProtected || aSym.privateWithin == NoSymbol) && !aSym.isSynthetic + } } -- cgit v1.2.3