-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Here's a repro.zip that, when merged with hsreduce merge massiv-example produces an AllInOne.hs with a syntax error:
go !i
| i Prelude.< k4
= do let
r = f (unsafeLinearIndex_DataMassivCoreCommon arr i)
Prelude.||
f (unsafeLinearIndex_DataMassivCoreCommon arr (i Prelude.+ 1))
Prelude.||
f (unsafeLinearIndex_DataMassivCoreCommon arr (i Prelude.+ 2))
Prelude.||
f (unsafeLinearIndex_DataMassivCoreCommon arr (i Prelude.+ 3))
in
if r then
Control.Scheduler.cancelBatchWith batch Prelude.True
else
do done <- Control.Scheduler.hasBatchFinished batch
if done then Prelude.pure Prelude.True else go (i Prelude.+ 4)Compiling the file complains about the in. I think let ... in ... might be illegal in that situation because it produces an expression, but we need a statement in that context. Maybe this is a weakness in the Haskell grammar (after all, how to tell whether we want a statment let vs. expression let?), not sure.
Metadata
Metadata
Assignees
Labels
No labels