File tree Expand file tree Collapse file tree 2 files changed +8
-5
lines changed
compiler/src/dotty/tools/dotc Expand file tree Collapse file tree 2 files changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -22,10 +22,13 @@ class JavaPlatform extends Platform {
22
22
23
23
// The given symbol is a method with the right name and signature to be a runnable java program.
24
24
def isMainMethod (sym : SymDenotation )(implicit ctx : Context ): Boolean =
25
- (sym.name == nme.main) && (sym.info match {
26
- case MethodTpe (_, defn.ArrayOf (el) :: Nil , restpe) => el =:= defn.StringType && (restpe isRef defn.UnitClass )
27
- case _ => false
28
- })
25
+ sym.name == nme.main &&
26
+ (sym.owner.is(Module ) || sym.owner.isClass && ! sym.owner.is(Trait ) && sym.is(JavaStatic )) && {
27
+ sym.info match {
28
+ case MethodTpe (_, defn.ArrayOf (el) :: Nil , restpe) => el =:= defn.StringType && (restpe isRef defn.UnitClass )
29
+ case _ => false
30
+ }
31
+ }
29
32
30
33
/** Update classpath with a substituted subentry */
31
34
def updateClassPath (subst : Map [ClassPath , ClassPath ]): Unit = currentClassPath.get match {
Original file line number Diff line number Diff line change @@ -230,7 +230,7 @@ private class ExtractAPICollector(implicit val ctx: Context) extends ThunkHolder
230
230
231
231
allNonLocalClassesInSrc += cl
232
232
233
- if (sym.isStatic && defType == DefinitionType . Module && ctx.platform.hasMainMethod(sym)) {
233
+ if (sym.isStatic && ctx.platform.hasMainMethod(sym)) {
234
234
_mainClasses += name
235
235
}
236
236
You can’t perform that action at this time.
0 commit comments