@@ -97,29 +97,25 @@ trait QuotesAndSplices {
97
97
ctx.warning(" Canceled quote directly inside a splice. ${ '[ XYZ ] } is equivalent to XYZ." , tree.sourcePos)
98
98
case _ =>
99
99
}
100
+
100
101
if (ctx.mode.is(Mode .QuotedPattern ) && level == 1 )
101
- if (false && isFullyDefined(pt, ForceDegree .all)) {
102
- ctx.error(i " Spliced type pattern must not be fully defined. Consider using $pt directly " , tree.expr.sourcePos)
103
- tree.withType(UnspecifiedErrorType )
104
- }
105
- else {
106
- def spliceOwner (ctx : Context ): Symbol =
107
- if (ctx.mode.is(Mode .QuotedPattern )) spliceOwner(ctx.outer) else ctx.owner
108
- val name = tree.expr match {
109
- case Ident (name) => (" $" + name).toTypeName
110
- case expr =>
111
- ctx.error(" expected a name binding" , expr.sourcePos)
112
- " $error" .toTypeName
113
- }
114
- val typeSymInfo = pt match
115
- case pt : TypeBounds => pt
116
- case _ => TypeBounds .empty
117
- val typeSym = ctx.newSymbol(spliceOwner(ctx), name, EmptyFlags , typeSymInfo, NoSymbol , tree.expr.span)
118
- typeSym.addAnnotation(Annotation (New (ref(defn.InternalQuoted_patternBindHoleAnnot .typeRef)).withSpan(tree.expr.span)))
119
- val pat = typedPattern(tree.expr, defn.QuotedTypeClass .typeRef.appliedTo(typeSym.typeRef))(
120
- spliceContext.retractMode(Mode .QuotedPattern ).withOwner(spliceOwner(ctx)))
121
- pat.select(tpnme.splice)
102
+ def spliceOwner (ctx : Context ): Symbol =
103
+ if (ctx.mode.is(Mode .QuotedPattern )) spliceOwner(ctx.outer) else ctx.owner
104
+ val name = tree.expr match {
105
+ case Ident (name) => (" $" + name).toTypeName
106
+ case expr =>
107
+ ctx.error(" expected a name binding" , expr.sourcePos)
108
+ " $error" .toTypeName
122
109
}
110
+
111
+ val typeSymInfo = pt match
112
+ case pt : TypeBounds => pt
113
+ case _ => TypeBounds .empty
114
+ val typeSym = ctx.newSymbol(spliceOwner(ctx), name, EmptyFlags , typeSymInfo, NoSymbol , tree.expr.span)
115
+ typeSym.addAnnotation(Annotation (New (ref(defn.InternalQuoted_patternBindHoleAnnot .typeRef)).withSpan(tree.expr.span)))
116
+ val pat = typedPattern(tree.expr, defn.QuotedTypeClass .typeRef.appliedTo(typeSym.typeRef))(
117
+ spliceContext.retractMode(Mode .QuotedPattern ).withOwner(spliceOwner(ctx)))
118
+ pat.select(tpnme.splice)
123
119
else
124
120
typedSelect(untpd.Select (tree.expr, tpnme.splice), pt)(spliceContext).withSpan(tree.span)
125
121
}
0 commit comments