@@ -230,10 +230,15 @@ trait CBase extends Language {
230
230
case _ =>
231
231
???
232
232
233
- def genPrecAssigmentExpression (ctx : CBaseGenContext , expr : DataExpression ): PrecAssigmentExpression =
234
- genExpression(ctx, expr) match
235
- case e : PrecAssigmentExpression => e
236
- case other => WrappedExpression (other)
233
+ def genPrecAssigmentExpression (ctx : CBaseGenContext , dataExpr : DataExpression ): PrecAssigmentExpression =
234
+ val expr = genExpression(ctx, dataExpr)
235
+ // expr match
236
+ // case e: PrecAssigmentExpression => e
237
+ // case other => WrappedExpression(other)
238
+ if expr.isInstanceOf [PrecAssigmentExpression ] then
239
+ expr.asInstanceOf [PrecAssigmentExpression ]
240
+ else
241
+ WrappedExpression (expr)
237
242
238
243
239
244
def isSpecialSignature (signature : DataSortSignature ): Boolean =
@@ -258,14 +263,26 @@ trait CBase extends Language {
258
263
259
264
260
265
def toMultiplicativeExpression (expr : Expression ): MultiplicativeExpression =
261
- expr match
262
- case mExpr : MultiplicativeExpression => mExpr
263
- case _ => WrappedExpression (expr)
266
+ //
267
+ // expr match
268
+ // case mExpr: MultiplicativeExpression => mExpr
269
+ // case _ => WrappedExpression(expr)
270
+ if (expr.isInstanceOf [MultiplicativeExpression ]) then
271
+ expr.asInstanceOf [MultiplicativeExpression ]
272
+ else
273
+ WrappedExpression (expr)
264
274
265
275
def toCastExpression (expr : Expression ): CastExpression =
266
- expr match
267
- case cExpr : CastExpression => cExpr
268
- case _ => WrappedExpression (expr)
276
+ //
277
+ // dotty regression: see https://github.com/lampepfl/dotty/issues/13565
278
+ // expr match
279
+ // case cExpr: CastExpression => cExpr
280
+ // case _ => WrappedExpression(expr)
281
+ //
282
+ if (expr.isInstanceOf [CastExpression ]) then
283
+ expr.asInstanceOf [CastExpression ]
284
+ else
285
+ WrappedExpression (expr)
269
286
270
287
271
288
def generateConstantExpression (vtx : CBaseGenContext , sort : DataSort , value : String ): Expression =
0 commit comments