@@ -52,7 +52,10 @@ class CrossStageSafety extends TreeMapWithStages {
52
52
transform(tree)(using ctx.withSource(tree.source))
53
53
else if ! inQuoteOrSpliceScope then
54
54
checkAnnotations(tree)
55
- super .transform(tree)
55
+ tree match
56
+ case tree @ QuotedTypeOf (quotedTree) =>
57
+ transformQuotedType(quotedTree, tree)
58
+ case _ => super .transform(tree)
56
59
else tree match {
57
60
case _ : TypeTree =>
58
61
val tp1 = transformTypeAnnotationSplices(tree.tpe)
@@ -92,6 +95,8 @@ class CrossStageSafety extends TreeMapWithStages {
92
95
case tree : TypeDef if tree.symbol.is(Case ) && level > 0 =>
93
96
report.error(reporting.CaseClassInInlinedCode (tree), tree)
94
97
super .transform(tree)
98
+ case tree @ QuotedTypeOf (quotedTree) =>
99
+ transformQuotedType(quotedTree, tree)
95
100
case tree @ SplicedType (splicedTree) =>
96
101
transformSpliceType(splicedTree, tree)
97
102
case _ =>
@@ -109,7 +114,7 @@ class CrossStageSafety extends TreeMapWithStages {
109
114
cpy.Quote (quote)(transformedBody).withBodyType(bodyType1)
110
115
}
111
116
112
- override protected def transformQuotedType (body : Tree , quote : Apply )(using Context ): Tree = {
117
+ private def transformQuotedType (body : Tree , quote : Apply )(using Context ): Tree = {
113
118
if (ctx.property(InAnnotation ).isDefined)
114
119
report.error(" Cannot have a quote in an annotation" , quote.srcPos)
115
120
body.tpe match
0 commit comments