overload extension: syntax overload OldModule* {def*}

This commit is contained in:
aarne
2008-06-03 09:21:24 +00:00
parent 9dbf9c5660
commit 8d98fec81e
6 changed files with 15 additions and 10 deletions

View File

@@ -116,9 +116,11 @@ lookupOverload gr m c = do
ModMod mo -> do
info <- lookupIdentInfo mo c
case info of
ResOverload os tysts ->
return [(map snd args,(val,tr)) |
(ty,tr) <- tysts, Ok (args,val) <- [typeFormCnc ty]]
ResOverload os tysts -> do
tss <- mapM (\x -> lookupOverload gr x c) os
return $ [(map snd args,(val,tr)) |
(ty,tr) <- tysts, Ok (args,val) <- [typeFormCnc ty]] ++
concat tss
AnyInd _ n -> lookupOverload gr n c
_ -> Bad $ prt c +++ "is not an overloaded operation"