on master help sign in
Merge pull request #1116 from elm-lang/dev

Get full region for lambda expressions

commitae57b32f5f4085390ddca4989c43cd06218380b1 authorEvan Czaplicki <info@elm-lang.org> dateFri 23 Oct 2015, 03:02 (11 years ago) parent8bc9edd8e15f96
2 files changed+7−5
src/Optimize/DecisionTree.hs+3−3 src/Parse/Expression.hs+4−2
src/Optimize/DecisionTree.hs+3−3
@@ -209,9 +209,9 @@ flatten variantDict pathPattern@(path, A.A ann pattern) =
209209 [pathPattern]
210210
211211 P.Alias alias realPattern ->
212− [ (add path Alias, A.A ann (P.Var alias))
213− , (path, realPattern)
214− ]
212+ (add path Alias, A.A ann (P.Var alias))
213+ :
214+ flatten variantDict (path, realPattern)
215215
216216 P.Record _ ->
217217 [pathPattern]
src/Parse/Expression.hs+4−2
@@ -226,12 +226,14 @@ ifHelp branches =
226226
227227lambdaExpr :: IParser Source.Expr
228228lambdaExpr =
229− do char '\\' <|> char '\x03BB' <?> "an anonymous function"
229+ do start <- getMyPosition
230+ char '\\' <|> char '\x03BB' <?> "an anonymous function"
230231 whitespace
231232 args <- spaceSep1 Pattern.term
232233 padded rightArrow
233234 body <- expr
234− return (makeFunction args body)
235+ end <- getMyPosition
236+ return (foldr (\a b -> A.at start end $ E.Lambda a b) body args)
235237
236238
237239caseExpr :: IParser Source.Expr'