Use a newScope for a case alternative
commit6e760dc541452cf3a3239b5bb4dd3c76812f2880
authorPhil Freeman <paf31@cantab.net>
dateSun 3 Aug 2014, 10:32 (12 years ago)
parent0805144
examples/passing/DeepCase.pursnew file+14
@@ -0,0 +1,14 @@
1+module Main where
2+
3+import Debug.Trace
4+import Control.Monad.Eff
5+import Control.Monad.ST
6+
7+f x y =
8+ let
9+ g = case y of
10+ 0 -> x
11+ x -> 1 + x * x
12+ in g + x + y
13+
14+main = print $ f 1 10
src/Language/PureScript/Renamer.hs+2−2
@@ -158,8 +158,8 @@ renameInValue v = return v
158158-- Renames within case alternatives.
159159--
160160renameInCaseAlternative :: CaseAlternative -> Rename CaseAlternative
161−renameInCaseAlternative (CaseAlternative bs g v) =
162− CaseAlternative <$> mapM renameInBinder bs <*> maybeM renameInValue g <*> renameInValue v
161+renameInCaseAlternative (CaseAlternative bs g v) =
162+ newScope $ CaseAlternative <$> mapM renameInBinder bs <*> maybeM renameInValue g <*> renameInValue v
163163
164164-- |
165165-- Renames within binders.