Skip to content

Commit bc5e525

Browse files
committed
Part 3 - move implementation of Caller.generate to Module
1 parent d5e3d64 commit bc5e525

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package mill.define
22

3-
// import sourcecode.Compat.Context
4-
// import language.experimental.macros
3+
import scala.quoted.*
54

65
case class Caller(value: Any)
76
object Caller {
87
def apply()(implicit c: Caller) = c.value
9-
implicit def generate: Caller = ??? //macro impl
10-
// def impl(c: Context): c.Tree = {
11-
// import c.universe._
12-
// q"new _root_.mill.define.Caller(this)"
13-
// }
8+
9+
/* basically a poison-pill to check that the Module defined version is enough */
10+
inline given generate: Caller = defaultCaller
11+
12+
@annotation.compileTimeOnly("No enclosing scope, this is a bug")
13+
def defaultCaller: Caller = Caller(null)
1414
}

main/define/src/mill/define/Module.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ trait Module extends Module.BaseClass {
4242
implicit def millModuleSegments: Segments = {
4343
millOuterCtx.segments ++ Seq(millOuterCtx.segment)
4444
}
45+
final given millModuleCaller: Caller = Caller(this)
4546

4647
override def toString = millModuleSegments.render
4748
}

0 commit comments

Comments
 (0)