@@ -1143,10 +1143,11 @@ object desugar {
1143
1143
) // no `_`
1144
1144
1145
1145
val ids = for ((named, _) <- vars) yield Ident (named.name)
1146
- val caseDef = CaseDef (pat, EmptyTree , makeTuple(ids))
1147
1146
val matchExpr =
1148
1147
if (tupleOptimizable) rhs
1149
- else Match (makeSelector(rhs, MatchCheck .IrrefutablePatDef ), caseDef :: Nil )
1148
+ else
1149
+ val caseDef = CaseDef (pat, EmptyTree , makeTuple(ids))
1150
+ Match (makeSelector(rhs, MatchCheck .IrrefutablePatDef ), caseDef :: Nil )
1150
1151
vars match {
1151
1152
case Nil if ! mods.is(Lazy ) =>
1152
1153
matchExpr
@@ -1166,8 +1167,16 @@ object desugar {
1166
1167
val restDefs =
1167
1168
for (((named, tpt), n) <- vars.zipWithIndex if named.name != nme.WILDCARD )
1168
1169
yield
1169
- if (mods.is(Lazy )) derivedDefDef(original, named, tpt, selector(n), mods &~ Lazy )
1170
- else derivedValDef(original, named, tpt, selector(n), mods)
1170
+ if mods.is(Lazy ) then
1171
+ DefDef (named.name.asTermName, Nil , tpt, selector(n))
1172
+ .withMods(mods &~ Lazy )
1173
+ .withSpan(named.span)
1174
+ else
1175
+ valDef(
1176
+ ValDef (named.name.asTermName, tpt, selector(n))
1177
+ .withMods(mods)
1178
+ .withSpan(named.span)
1179
+ )
1171
1180
flatTree(firstDef :: restDefs)
1172
1181
}
1173
1182
}
0 commit comments