@@ -97,29 +97,23 @@ 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
- 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 Typed (Ident (name), _) => (" $" + name).toTypeName
111
- case Bind (name, _) => (" $" + name).toTypeName
112
- case _ => NameKinds .UniqueName .fresh(" $" .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)
100
+ if ctx.mode.is(Mode .QuotedPattern ) && level == 1 then
101
+ def spliceOwner (ctx : Context ): Symbol =
102
+ if (ctx.mode.is(Mode .QuotedPattern )) spliceOwner(ctx.outer) else ctx.owner
103
+ val name = tree.expr match {
104
+ case Ident (name) => (" $" + name).toTypeName
105
+ case Typed (Ident (name), _) => (" $" + name).toTypeName
106
+ case Bind (name, _) => (" $" + name).toTypeName
107
+ case _ => NameKinds .UniqueName .fresh(" $" .toTypeName)
122
108
}
109
+ val typeSymInfo = pt match
110
+ case pt : TypeBounds => pt
111
+ case _ => TypeBounds .empty
112
+ val typeSym = ctx.newSymbol(spliceOwner(ctx), name, EmptyFlags , typeSymInfo, NoSymbol , tree.expr.span)
113
+ typeSym.addAnnotation(Annotation (New (ref(defn.InternalQuoted_patternBindHoleAnnot .typeRef)).withSpan(tree.expr.span)))
114
+ val pat = typedPattern(tree.expr, defn.QuotedTypeClass .typeRef.appliedTo(typeSym.typeRef))(
115
+ spliceContext.retractMode(Mode .QuotedPattern ).withOwner(spliceOwner(ctx)))
116
+ pat.select(tpnme.splice)
123
117
else
124
118
typedSelect(untpd.Select (tree.expr, tpnme.splice), pt)(spliceContext).withSpan(tree.span)
125
119
}
0 commit comments