File tree Expand file tree Collapse file tree 3 files changed +22
-0
lines changed
compiler/src/dotty/tools/dotc/transform Expand file tree Collapse file tree 3 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -775,9 +775,19 @@ object TreeChecker {
775775
776776 def checkMacroGeneratedTree (original : tpd.Tree , expansion : tpd.Tree )(using Context ): Unit =
777777 if ctx.settings.XcheckMacros .value then
778+ // We want make sure that transparent inline macros are checked in the same way that
779+ // non transparent macros are, so we try to prepare a context which would make
780+ // the checks behave the same way for both types of macros.
781+ //
782+ // E.g. Different instances of skolem types are by definition not able to be a subtype of
783+ // one another, however in practice this is only upheld during typer phase, and we do not want
784+ // it to be upheld during this check.
785+ // See issue: #17009
778786 val checkingCtx = ctx
779787 .fresh
780788 .setReporter(new ThrowingReporter (ctx.reporter))
789+ .setPhase(ctx.base.inliningPhase)
790+
781791 val phases = ctx.base.allPhases.toList
782792 val treeChecker = new LocalChecker (previousPhases(phases))
783793
Original file line number Diff line number Diff line change 1+ import scala .quoted ._
2+
3+ object Macro {
4+ transparent inline def transform [T ](inline expr : T ): T = $ { transformImpl[T ](' expr ) }
5+ def transformImpl [T : Type ](f : Expr [T ])(using Quotes ): Expr [T ] = f
6+ }
Original file line number Diff line number Diff line change 1+ def processLine (line : String ): Unit = {
2+ Macro .transform {
3+ line.split(" " ).nn
4+ ???
5+ }
6+ }
You can’t perform that action at this time.
0 commit comments