diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-01 11:02:02 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-01 11:02:02 +0000 |
| commit | 9dbf9c56609132c7a3731819b53e73045c430e3b (patch) | |
| tree | 8a629aa5003111d82087797fb2eba25bf6165aa8 /src-3.0/GF/Compile | |
| parent | 2771367118994770907597c860cc7c4229496fd3 (diff) | |
added an argument place to ResOverload for extended overloads
Diffstat (limited to 'src-3.0/GF/Compile')
| -rw-r--r-- | src-3.0/GF/Compile/CheckGrammar.hs | 4 | ||||
| -rw-r--r-- | src-3.0/GF/Compile/Refresh.hs | 4 | ||||
| -rw-r--r-- | src-3.0/GF/Compile/Rename.hs | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src-3.0/GF/Compile/CheckGrammar.hs b/src-3.0/GF/Compile/CheckGrammar.hs index fe4b7223c..2fb4f5895 100644 --- a/src-3.0/GF/Compile/CheckGrammar.hs +++ b/src-3.0/GF/Compile/CheckGrammar.hs @@ -231,14 +231,14 @@ checkResInfo gr mo mm (c,info) = do _ -> return (pty, pde) --- other cases are uninteresting return (c, ResOper pty' pde') - ResOverload tysts -> chIn "overloading" $ do + ResOverload os tysts -> chIn "overloading" $ do tysts' <- mapM (uncurry $ flip check) tysts let tysts2 = [(y,x) | (x,y) <- tysts'] --- this can only be a partial guarantee, since matching --- with value type is only possible if expected type is given checkUniq $ sort [t : map snd xs | (x,_) <- tysts2, Ok (xs,t) <- [typeFormCnc x]] - return (c,ResOverload tysts2) + return (c,ResOverload os tysts2) ResParam (Yes (pcs,_)) -> chIn "parameter type" $ do ---- mapM ((mapM (computeLType gr . snd)) . snd) pcs diff --git a/src-3.0/GF/Compile/Refresh.hs b/src-3.0/GF/Compile/Refresh.hs index 09c384266..39fb57db0 100644 --- a/src-3.0/GF/Compile/Refresh.hs +++ b/src-3.0/GF/Compile/Refresh.hs @@ -119,10 +119,10 @@ refreshModule (k,ms) mi@(i,m) = case m of ResOper ptyp (Yes trm) -> do ---- refresh ptyp (k',trm') <- refreshTermKN k trm return $ (k', (c, ResOper ptyp (Yes trm')):cs) - ResOverload tyts -> do + ResOverload os tyts -> do (k',tyts') <- liftM (\ (t,(_,i)) -> (i,t)) $ appSTM (mapPairsM refresh tyts) (initIdStateN k) - return $ (k', (c, ResOverload tyts'):cs) + return $ (k', (c, ResOverload os tyts'):cs) CncCat mt (Yes trm) pn -> do ---- refresh mt, pn (k',trm') <- refreshTermKN k trm return $ (k', (c, CncCat mt (Yes trm') pn):cs) diff --git a/src-3.0/GF/Compile/Rename.hs b/src-3.0/GF/Compile/Rename.hs index 28055b85e..14c25c32b 100644 --- a/src-3.0/GF/Compile/Rename.hs +++ b/src-3.0/GF/Compile/Rename.hs @@ -170,7 +170,8 @@ renameInfo mo status (i,info) = errIn AbsTrans f -> liftM AbsTrans (rent f) ResOper pty ptr -> liftM2 ResOper (ren pty) (ren ptr) - ResOverload tysts -> liftM ResOverload $ mapM (pairM rent) tysts + ResOverload os tysts -> + liftM2 ResOverload (mapM rent os) (mapM (pairM rent) tysts) ResParam (Yes (pp,m)) -> do pp' <- mapM (renameParam status) pp |
