Skip to content

Commit c0e1279

Browse files
committed
Add some post conditions to ReifyQuotes
1 parent 82f954e commit c0e1279

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

compiler/src/dotty/tools/dotc/transform/ReifyQuotes.scala

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ class ReifyQuotes extends MacroTransformWithImplicits {
7474

7575
override def phaseName: String = "reifyQuotes"
7676

77+
override def checkPostCondition(tree: Tree)(implicit ctx: Context): Unit = {
78+
val inTransparentMethod = ctx.owner.ownersIterator.exists(_.isTransparentMethod)
79+
tree match {
80+
case tree: RefTree if !inTransparentMethod =>
81+
assert(!tree.symbol.isQuote)
82+
// assert(!tree.symbol.isSplice) // TODO widen ~ type references at stage 0?
83+
assert(tree.symbol != defn.QuotedExpr_~)
84+
case tree: Select if tree.symbol == defn.QuotedExpr_~ =>
85+
assert(Splicer.canBeSpliced(tree.qualifier))
86+
case _ =>
87+
}
88+
}
89+
7790
override def run(implicit ctx: Context): Unit =
7891
if (ctx.compilationUnit.containsQuotesOrSplices) super.run
7992

0 commit comments

Comments
 (0)