Skip to content

Commit f986c19

Browse files
committed
WIP 47 - fix scanning of Cross modules in Discover macro
1 parent 3e7e3d3 commit f986c19

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

main/define/src/mill/define/Discover.scala

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -58,34 +58,24 @@ object Discover {
5858
def applyImpl[T: Type](using Quotes): Expr[Discover[T]] = {
5959
import quotes.reflect.*
6060
val seen = mutable.Set.empty[TypeRepr]
61-
val crossSym = Symbol.requiredClass("mill.define.Cross")
62-
val crossArg = crossSym.typeMembers.filter(_.isTypeParam).head
6361
val moduleSym = Symbol.requiredClass("mill.define.Module")
6462
val deprecatedSym = Symbol.requiredClass("scala.deprecated")
6563
def rec(tpe: TypeRepr): Unit = {
6664
if (seen.add(tpe)) {
6765
val typeSym = tpe.typeSymbol
6866
for {
69-
// for some reason mill.define.Foreign has NoSymbol as type member.
67+
// for some reason mill.define.Foreign has NoSymbol as field member.
7068
m <- typeSym.fieldMembers.filterNot(_ == Symbol.noSymbol).toList.sortBy(_.name.toString)
71-
memberTpe = {
72-
if m == Symbol.noSymbol then
73-
report.errorAndAbort(s"no symbol found in $typeSym typemembers ${typeSym.typeMembers}", typeSym.pos.getOrElse(Position.ofMacroExpansion))
74-
// try tpe.memberType(m)
75-
// catch {
76-
// case NonFatal(err) =>
77-
// // report.errorAndAbort(s"Error getting member type for $m in $typeSym: ${err}", m.pos.getOrElse(Position.ofMacroExpansion))
78-
// tpe.memberType(m.typeRef.dealias.typeSymbol)
79-
// }
80-
m.termRef
81-
}
69+
memberTpe = m.termRef
8270
if memberTpe.baseClasses.contains(moduleSym)
83-
} rec(memberTpe)
84-
85-
if (tpe.baseClasses.contains(crossSym)) {
86-
val arg = tpe.memberType(crossArg)
87-
val argSym = arg.typeSymbol
88-
rec(tpe.memberType(argSym))
71+
} {
72+
rec(memberTpe)
73+
memberTpe.asType match {
74+
case '[mill.define.Cross[m]] =>
75+
rec(TypeRepr.of[m])
76+
case _ =>
77+
() // no cross argument to extract
78+
}
8979
}
9080
}
9181
}

0 commit comments

Comments
 (0)