Skip to content

Commit b1bddc5

Browse files
committed
workarround against scala/scala3#13565
1 parent 4475bb6 commit b1bddc5

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
val dottyVersion = "3.0.1"
2+
val dottyVersion = "3.1.0-RC2"
33
//val dottyVersion = dottyLatestNightlyBuild.get
44

55
lazy val root = project

src/main/scala/ua/ips/algo/translation/languages/gpuc/CBase.scala

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,15 @@ trait CBase extends Language {
230230
case _ =>
231231
???
232232

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)
237242

238243

239244
def isSpecialSignature(signature: DataSortSignature): Boolean =
@@ -258,14 +263,26 @@ trait CBase extends Language {
258263

259264

260265
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)
264274

265275
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)
269286

270287

271288
def generateConstantExpression(vtx: CBaseGenContext, sort: DataSort, value: String): Expression =

0 commit comments

Comments
 (0)