git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #452 from purescript/EffBug

Remove unused variable optimization #451

commit549a652591207093dfc07136a43a199e8fbf96ad authorPhil Freeman <paf31@cantab.net> dateThu 26 Jun 2014, 16:27 (12 years ago) parent02b6be0f1a5730
3 files changed+1−15
purescript.cabal+1−1 src/Language/PureScript/Optimizer.hs−3 src/Language/PureScript/Optimizer/Unused.hs−11
purescript.cabal+1−1
@@ -1,5 +1,5 @@
11name: purescript
2−version: 0.5.2.4
2+version: 0.5.2.5
33cabal-version: >=1.8
44build-type: Custom
55license: MIT
src/Language/PureScript/Optimizer.hs−3
@@ -19,8 +19,6 @@
1919--
2020-- * Inlining of (>>=) and ret for the Eff monad
2121--
22−-- * Removal of unused variables
23−--
2422-- * Removal of unnecessary thunks
2523--
2624-- * Eta conversion
@@ -57,7 +55,6 @@ optimize opts | optionsNoOptimizations opts = id
5755 [ collapseNestedBlocks
5856 , tco opts
5957 , magicDo opts
60− , removeUnusedVariables
6158 , removeCodeAfterReturnStatements
6259 , unThunk
6360 , etaConvert
src/Language/PureScript/Optimizer/Unused.hs−11
@@ -14,23 +14,12 @@
1414-----------------------------------------------------------------------------
1515
1616module Language.PureScript.Optimizer.Unused (
17− removeUnusedVariables,
1817 removeCodeAfterReturnStatements
1918) where
2019
2120import Language.PureScript.CodeGen.JS.AST
2221import Language.PureScript.Optimizer.Common
2322
24−removeUnusedVariables :: JS -> JS
25−removeUnusedVariables = everywhereOnJS (removeFromBlock withBlock)
26− where
27− withBlock :: [JS] -> [JS]
28− withBlock sts = go sts sts
29− go :: [JS] -> [JS] -> [JS]
30− go _ [] = []
31− go sts (JSVariableIntroduction var _ : rest) | not (any (isUsed var) sts) = go sts rest
32− go sts (s : rest) = s : go sts rest
33−
3423removeCodeAfterReturnStatements :: JS -> JS
3524removeCodeAfterReturnStatements = everywhereOnJS (removeFromBlock go)
3625 where