Fix an old name shadowing bug in concrete syntax by removing the refresh pass

The refresh pass does not correctly keep track of the scope of local variables
and can convert things like \x->(\x->x) x into \x1->(\x2->x2) x2. Fortunately,
it appears that the refresh pass is not needed anymore, so it has been removed.
This commit is contained in:
hallgren
2013-09-09 14:29:57 +00:00
parent 4e328d1f33
commit 7afdc2e139
8 changed files with 20 additions and 17 deletions

View File

@@ -12,7 +12,7 @@ import GF.Compile.GeneratePMCFG
import GF.Compile.GrammarToPGF
import GF.Compile.ReadFiles
import GF.Compile.Update
import GF.Compile.Refresh
--import GF.Compile.Refresh
import GF.Compile.Coding
import GF.Compile.Tags
@@ -196,8 +196,10 @@ compileSourceModule opts env@(k,gr,_) mb_gfFile mo@(i,mi) = do
if tagsFlag then generateTags k mo3 else compileCompleteModule k mo3
where
compileCompleteModule k mo3 = do
(k',mo3r:_) <- runPass2 (head.snd) Refresh "refreshing" $
refreshModule (k,gr) mo3
-- (k',mo3r:_) <- runPass2 (head.snd) Refresh "refreshing" $
-- refreshModule (k,gr) mo3
let k' = k
mo3r = mo3
mo4 <- runPass2 id Optimize "optimizing" $ optimizeModule opts gr mo3r
mo5 <- if isModCnc (snd mo4) && flag optPMCFG opts
then runPass2' "generating PMCFG" $ generatePMCFG opts gr mb_gfFile mo4