ref: fdc6a7cb63f1f6949ac1096c08ed873197b8bc32
parent: 5a5f8336492b005277dd361f905f2d72f8f14a9a
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Mon Oct 23 14:47:42 EDT 2023
Rename methods in signatures too.
--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -1097,11 +1097,14 @@
S.return (BFcn mi eqns)
f b = S.return b
in S.runState (S.mapM f bs) (1, [])
+ bs'' = map tr bs'
+ where tr (BSign i t) = BSign (fromMaybe i $ lookup i ims) t
+ tr b = b
meths = map meth mis
where meth i = EVar $ fromMaybe (mkDefaultMethodId i) $ lookup i ims
sups = map (const (EVar $ mkIdentSLoc loc "dict$")) supers
args = sups ++ meths
- let bind = Fcn iInst [Eqn [] $ EAlts [([], foldl EApp (EVar $ mkClassConstructor iCls) args)] bs']
+ let bind = Fcn iInst [Eqn [] $ EAlts [([], foldl EApp (EVar $ mkClassConstructor iCls) args)] bs'']
mn <- gets moduleName
addInstTable [(EVar $ qualIdent mn iInst, vks, ctx, cc)]
T.return [dinst, sign, bind]
--
⑨