Skip to content

Commit 9498f44

Browse files
committed
[ fix ] Parse let _ = as Let rather than LetPat
1 parent d289ed6 commit 9498f44

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

src/Idris/Parser/Let.idr

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,7 @@ mkDoLets origin lets = letFactory
8787
then DoLet fc fc' (UN n) rig ty val
8888
else DoLetPat fc (PRef fc' (UN n)) ty val []
8989
) :: buildDoLets rest
90-
(MkLetBinder rig pat ty val alts) => DoLetPat fc pat ty val alts :: buildDoLets rest
90+
(MkLetBinder rig (PImplicit fc') ty val []) =>
91+
DoLet fc fc' (UN "_") rig ty val :: buildDoLets rest
92+
(MkLetBinder rig pat ty val alts) =>
93+
DoLetPat fc pat ty val alts :: buildDoLets rest

tests/idris2/basic061/IgnoreDo.idr

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ module IgnoreDo
33
bound : Maybe () -> Maybe b -> Maybe b
44
bound m n = do
55
x <- m
6+
let y = Z
67
n
78

89
ignored : Maybe () -> Maybe b -> Maybe b
910
ignored m n = do
1011
_ <- m
12+
let _ = Z
1113
n
1214

1315
seqd : Maybe () -> Maybe b -> Maybe b

tests/idris2/basic061/expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
1/1: Building IgnoreDo (IgnoreDo.idr)
22
IgnoreDo> IgnoreDo.bound : Maybe () -> Maybe b -> Maybe b
3-
bound m n = m >>= (\x => n)
3+
bound m n = m >>= (\x => let y = 0 in n)
44
IgnoreDo> IgnoreDo.ignored : Maybe () -> Maybe b -> Maybe b
55
ignored m n = m >>= (\_ => n)
66
IgnoreDo> IgnoreDo.seqd : Maybe () -> Maybe b -> Maybe b

0 commit comments

Comments
 (0)