Skip to content

Typo in 'defaultTask' causes crash with puzzling error #7013

@gamlerhart

Description

@gamlerhart

When the 'defaultTask' has a typo / invalid reference, then running it crashes Mill with a unclear error.

Reproduce:

package build
import mill.*
import mill.javalib.*

object app extends JavaModule{
  override def defaultTask() = "myTaskTypo"
  def myTask() = Task.Command{
    println("My-Task")
    "result"
  }
}

Then run ./mill app, and mill crashes with:

java.util.NoSuchElementException: head of empty ArraySeq
        at scala.collection.IndexedSeqOps.head(IndexedSeq.scala:108)
        at scala.collection.IndexedSeqOps.head$(IndexedSeq.scala:38)
        at scala.collection.immutable.ArraySeq.head(ArraySeq.scala:38)
        at mill.resolve.Resolve$.handleTask$$anonfun$5$$anonfun$1(Resolve.scala:153)
        at mill.api.daemon.Result$Success.flatMap(Result.scala:37)
        at mill.resolve.Resolve$.mill$resolve$Resolve$Tasks$$$_$handleTask$$anonfun$5(Resolve.scala:152)
        at mill.api.daemon.Result$Success.flatMap(Result.scala:37)
        at mill.resolve.Resolve$Tasks$.handleTask(Resolve.scala:141)
        at mill.resolve.Resolve$.mill$resolve$Resolve$Tasks$$$_$_$$anonfun$6(Resolve.scala:190)
        at scala.collection.immutable.ArraySeq.map(ArraySeq.scala:78)
        at scala.collection.immutable.ArraySeq.map(ArraySeq.scala:74)
        at mill.resolve.Resolve$Tasks$.handleResolved(Resolve.scala:183)
        at mill.resolve.Resolve.resolveNonEmptyAndHandle2$$anonfun$1(Resolve.scala:545)
        at mill.api.daemon.Result$Success.flatMap(Result.scala:37)
        at mill.resolve.Resolve.resolveNonEmptyAndHandle2(Resolve.scala:535)
        at mill.resolve.Resolve.resolveNonEmptyAndHandle2$(Resolve.scala:369)
        at mill.resolve.Resolve$Tasks$.resolveNonEmptyAndHandle2(Resolve.scala:104)
        at mill.resolve.Resolve.notFoundResult$1(Resolve.scala:445)
        at mill.resolve.Resolve.$anonfun$2(Resolve.scala:449)
        at scala.collection.immutable.List.map(List.scala:240)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions