From 340eeb3530208f0fcac870a2aa74358164ea484d Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Wed, 3 Dec 2025 17:36:01 +0800 Subject: [PATCH] . --- .../src/mill/resolve/ResolveCore.scala | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/core/resolve/src/mill/resolve/ResolveCore.scala b/core/resolve/src/mill/resolve/ResolveCore.scala index 29d76aa80df9..ffb38ba600d1 100644 --- a/core/resolve/src/mill/resolve/ResolveCore.scala +++ b/core/resolve/src/mill/resolve/ResolveCore.scala @@ -284,14 +284,18 @@ private object ResolveCore { current.getClass, Some(s), cache = cache - ).flatMap { - case Seq((_, Some(f))) => f(current) - case unknown => - sys.error( - s"Unable to resolve single child " + - s"rootModule: ${rootModule}, segments: ${segments.render}," + - s"current: $current, s: ${s}, unknown: $unknown" - ) + ).flatMap { results => + // When resolving a module, filter out non-module results (commands/tasks have None getter) + // This handles cases where a user module has the same name as a built-in command (e.g. "init") + results.filter(_._2.isDefined) match { + case Seq((_, Some(f))) => f(current) + case unknown => + sys.error( + s"Unable to resolve single child " + + s"rootModule: ${rootModule}, segments: ${segments.render}," + + s"current: $current, s: ${s}, unknown: $unknown" + ) + } } case (mill.api.Result.Success(current), Segment.Cross(vs)) =>