diff --git a/compile/api/src/main/scala/xsbt/api/Discovery.scala b/compile/api/src/main/scala/xsbt/api/Discovery.scala index 65cd994f3..a137cbfe7 100644 --- a/compile/api/src/main/scala/xsbt/api/Discovery.scala +++ b/compile/api/src/main/scala/xsbt/api/Discovery.scala @@ -62,7 +62,7 @@ object Discovery } def isStringArray(vp: IndexedSeq[ParameterList]): Boolean = vp.length == 1 && isStringArray(vp(0).parameters) def isStringArray(params: Seq[MethodParameter]): Boolean = params.length == 1 && isStringArray(params(0)) - def isStringArray(p: MethodParameter): Boolean = p.modifier == ParameterModifier.Plain && isStringArray(p.tpe) + def isStringArray(p: MethodParameter): Boolean = (p.modifier == ParameterModifier.Plain || p.modifier == ParameterModifier.Repeated) && isStringArray(p.tpe) def isStringArray(t: Type): Boolean = isParameterized(t, "scala.Array", "java.lang.String") // doesn't handle scala.this#Predef#String, should API phase dealias? def isParameterized(t: Type, base: String, args: String*): Boolean = t match { @@ -97,4 +97,4 @@ object Discovery } def isUnit(t: Type): Boolean = named(t, "scala.Unit") -} \ No newline at end of file +} diff --git a/sbt/src/sbt-test/java/varargs-main/A.java b/sbt/src/sbt-test/java/varargs-main/A.java new file mode 100644 index 000000000..3b417329f --- /dev/null +++ b/sbt/src/sbt-test/java/varargs-main/A.java @@ -0,0 +1,5 @@ +public class A{ + public static void main(String... args){ + + } +} diff --git a/sbt/src/sbt-test/java/varargs-main/test b/sbt/src/sbt-test/java/varargs-main/test new file mode 100644 index 000000000..62ea636c1 --- /dev/null +++ b/sbt/src/sbt-test/java/varargs-main/test @@ -0,0 +1 @@ +> run