diff options
| author | krasimir <krasimir@chalmers.se> | 2017-03-06 15:44:25 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2017-03-06 15:44:25 +0000 |
| commit | a0d6a4f9a44a82b08c2df96cf31318428dc2a872 (patch) | |
| tree | 0cb8262582951f4b74dd0c637c6786ef37d9dffb /src/compiler/GF | |
| parent | fe4f38f6eec02173f87d286339e15d87e7061309 (diff) | |
GF.Compile.Compute.ConcreteNew now can handle EPattType
Diffstat (limited to 'src/compiler/GF')
| -rw-r--r-- | src/compiler/GF/Compile/Compute/ConcreteNew.hs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs index d6754c905..a77da88bf 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs @@ -189,6 +189,8 @@ value env t0 = Glue t1 t2 -> ((ok2p (glue env).) # both id) # both (value env) (t1,t2) ELin c r -> (unlockVRec (gloc env) c.) # value env r EPatt p -> return $ const (VPatt p) -- hmm + EPattType ty -> do vt <- value env ty + return (VPattType . vt) Typed t ty -> value env t t -> fail.render $ "value"<+>ppTerm Unqualified 10 t $$ show t @@ -510,8 +512,8 @@ value2term' stop loc xs v0 = VC v1 v2 -> liftM2 C (v2t v1) (v2t v2) VS v1 v2 -> liftM2 S (v2t v1) (v2t v2) VP v l -> v2t v >>= \t -> return (P t l) - VPatt p -> return (EPatt p) -- hmm --- VPattType v -> ... + VPatt p -> return (EPatt p) + VPattType v -> v2t v >>= return . EPattType VAlts v vvs -> liftM2 Alts (v2t v) (mapM (\(x,y) -> liftM2 (,) (v2t x) (v2t y)) vvs) VStrs vs -> liftM Strs (mapM v2t vs) -- VGlue v1 v2 -> Glue (v2t v1) (v2t v2) |
