summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-09-28 12:38:26 +0000
committerhallgren <hallgren@chalmers.se>2012-09-28 12:38:26 +0000
commit86d17827ee8f04e4f9e7ac63017ef2ad3105b222 (patch)
tree071e020404dda72020b16130c7e8fd69a02df6aa /src/compiler
parent8154e480dd2850d7f06e0faa37406287802eb802 (diff)
GF shell, show_operations: nicer looking types for linearization functions
Adding a lock field to the result type of linearization functions. TODO: figure out how to add a lock field to the argument types too.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/GF/Grammar/Lookup.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/GF/Grammar/Lookup.hs b/src/compiler/GF/Grammar/Lookup.hs
index 25c9b75a0..9148104fd 100644
--- a/src/compiler/GF/Grammar/Lookup.hs
+++ b/src/compiler/GF/Grammar/Lookup.hs
@@ -204,8 +204,14 @@ allOpers gr =
ResOper (Just ltyp) _ -> [ltyp]
ResValue ltyp -> [ltyp]
ResOverload _ tytrs -> [ltyp | (ltyp,_) <- tytrs]
- CncFun (Just (i,ctx,typ)) _ _ _ -> [L NoLoc (mkProdSimple ctx typ)]
+ CncFun (Just (i,ctx,typ)) _ _ _ ->
+ [L NoLoc (mkProdSimple ctx (lock' i typ))]
_ -> []
+
+ lock' i typ = case lock i typ of
+ Ok t -> t
+ _ -> typ
+
reachable = case greatestResource gr of
Just r -> allExtendSpecs gr r
_ -> []