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 @@ -837,9 +837,19 @@ object TreeChecker {
837837
838838 def checkMacroGeneratedTree (original : tpd.Tree , expansion : tpd.Tree )(using Context ): Unit =
839839 if ctx.settings.XcheckMacros .value then
840+ // We want make sure that transparent inline macros are checked in the same way that
841+ // non transparent macros are, so we try to prepare a context which would make
842+ // the checks behave the same way for both types of macros.
843+ //
844+ // E.g. Different instances of skolem types are by definition not able to be a subtype of
845+ // one another, however in practice this is only upheld during typer phase, and we do not want
846+ // it to be upheld during this check.
847+ // See issue: #17009
840848 val checkingCtx = ctx
841849 .fresh
842850 .setReporter(new ThrowingReporter (ctx.reporter))
851+ .setPhase(ctx.base.inliningPhase)
852+
843853 val phases = ctx.base.allPhases.toList
844854 val treeChecker = new LocalChecker (previousPhases(phases))
845855
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