diff options
| author | krasimir <krasimir@chalmers.se> | 2016-03-03 06:59:50 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2016-03-03 06:59:50 +0000 |
| commit | 4ba9712f165efbf9ec55a759499a5a02ca144b5b (patch) | |
| tree | fcc49427a2aa047c549d6b171ae8a1ca8ce8b3e3 /src/compiler/GF | |
| parent | 508bc346e5192b537677c205820bae32d390c618 (diff) | |
add missing cases in vapply in the partial evaluator
Diffstat (limited to 'src/compiler/GF')
| -rw-r--r-- | src/compiler/GF/Compile/Compute/ConcreteNew.hs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs index 751f02f39..8ca1568b7 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs @@ -416,7 +416,6 @@ apply' env t vs = return $ \ svs -> vapply (gloc env) r (map ($svs) vs) -} App t1 t2 -> apply' env t1 . (:vs) =<< value env t2 - Meta i -> return $ \ svs -> VMeta i (zip (local env) svs) (map ($svs) vs) _ -> do fv <- value env t return $ \ svs -> vapply (gloc env) (fv svs) (map ($svs) vs) @@ -437,6 +436,8 @@ vapply loc v vs = VS (VV t pvs fs) s -> VS (VV t pvs [vapply loc f vs|f<-fs]) s VFV fs -> vfv [vapply loc f vs|f<-fs] VCApp f vs0 -> VCApp f (vs0++vs) + VMeta i env vs0 -> VMeta i env (vs0++vs) + VGen i vs0 -> VGen i (vs0++vs) v -> bug $ "vapply "++show v++" "++show vs vbeta loc bt f (v:vs) = |
