diff options
| author | hallgren <hallgren@chalmers.se> | 2013-09-09 14:29:57 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2013-09-09 14:29:57 +0000 |
| commit | 83283b0d6a1e714def620a2ad2a7166c6c3a0147 (patch) | |
| tree | a2b4ce8733808e516ad9ba573395599da5a0685e /src/compiler/GF/Compile | |
| parent | 5a4454aa8f910bc701da5cd4057eed77196764ad (diff) | |
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.
Diffstat (limited to 'src/compiler/GF/Compile')
| -rw-r--r-- | src/compiler/GF/Compile/Compute/ConcreteLazy.hs | 2 | ||||
| -rw-r--r-- | src/compiler/GF/Compile/Compute/ConcreteStrict.hs | 4 | ||||
| -rw-r--r-- | src/compiler/GF/Compile/Optimize.hs | 2 | ||||
| -rw-r--r-- | src/compiler/GF/Compile/Refresh.hs | 7 | ||||
| -rw-r--r-- | src/compiler/GF/Compile/TypeCheck/Abstract.hs | 2 |
5 files changed, 9 insertions, 8 deletions
diff --git a/src/compiler/GF/Compile/Compute/ConcreteLazy.hs b/src/compiler/GF/Compile/Compute/ConcreteLazy.hs index 4107329fb..fce118fec 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteLazy.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteLazy.hs @@ -24,7 +24,7 @@ import GF.Grammar.Printer import GF.Grammar.Predef import GF.Grammar.Macros import GF.Grammar.Lookup -import GF.Compile.Refresh +--import GF.Compile.Refresh import GF.Grammar.PatternMatch import GF.Grammar.Lockfield (isLockLabel,unlockRecord) ---- diff --git a/src/compiler/GF/Compile/Compute/ConcreteStrict.hs b/src/compiler/GF/Compile/Compute/ConcreteStrict.hs index 08c5229ef..3f417bae2 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteStrict.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteStrict.hs @@ -18,14 +18,14 @@ import GF.Data.Operations import GF.Grammar.Grammar import GF.Infra.Ident import GF.Infra.Option -import GF.Infra.Modules +--import GF.Infra.Modules import GF.Data.Str import GF.Grammar.ShowTerm import GF.Grammar.Printer import GF.Grammar.Predef import GF.Grammar.Macros import GF.Grammar.Lookup -import GF.Compile.Refresh +--import GF.Compile.Refresh import GF.Grammar.PatternMatch import GF.Grammar.Lockfield (isLockLabel,unlockRecord) ---- diff --git a/src/compiler/GF/Compile/Optimize.hs b/src/compiler/GF/Compile/Optimize.hs index 0599ed85b..3641440d8 100644 --- a/src/compiler/GF/Compile/Optimize.hs +++ b/src/compiler/GF/Compile/Optimize.hs @@ -21,7 +21,7 @@ import GF.Grammar.Printer import GF.Grammar.Macros import GF.Grammar.Lookup import GF.Grammar.Predef -import GF.Compile.Refresh +--import GF.Compile.Refresh import GF.Compile.Compute.Concrete import GF.Compile.CheckGrammar import GF.Compile.Update diff --git a/src/compiler/GF/Compile/Refresh.hs b/src/compiler/GF/Compile/Refresh.hs index edff8a479..837534afa 100644 --- a/src/compiler/GF/Compile/Refresh.hs +++ b/src/compiler/GF/Compile/Refresh.hs @@ -12,10 +12,10 @@ -- (Description of the module) ----------------------------------------------------------------------------- -module GF.Compile.Refresh (refreshTerm, refreshTermN, - refreshModule +module GF.Compile.Refresh ({-refreshTermN, refreshTerm, + refreshModule-} ) where - +{- import GF.Data.Operations import GF.Grammar.Grammar import GF.Infra.Ident @@ -143,3 +143,4 @@ inBlockSTM mo = do return v +-}
\ No newline at end of file diff --git a/src/compiler/GF/Compile/TypeCheck/Abstract.hs b/src/compiler/GF/Compile/TypeCheck/Abstract.hs index d6886b6ca..dfded01d2 100644 --- a/src/compiler/GF/Compile/TypeCheck/Abstract.hs +++ b/src/compiler/GF/Compile/TypeCheck/Abstract.hs @@ -25,7 +25,7 @@ import GF.Infra.CheckM import GF.Grammar import GF.Grammar.Lookup import GF.Grammar.Unify -import GF.Compile.Refresh +--import GF.Compile.Refresh import GF.Compile.Compute.Abstract import GF.Compile.TypeCheck.TC |
