summaryrefslogtreecommitdiff
path: root/src/GF/Compile/Rebuild.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Compile/Rebuild.hs')
-rw-r--r--src/GF/Compile/Rebuild.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/GF/Compile/Rebuild.hs b/src/GF/Compile/Rebuild.hs
index 048af3c7c..491c9c9f2 100644
--- a/src/GF/Compile/Rebuild.hs
+++ b/src/GF/Compile/Rebuild.hs
@@ -34,12 +34,14 @@ rebuildModule ms mo@(i,mi) = do
js' <- extendMod False i0 (jments m1) (jments m)
--- to avoid double inclusions, in instance I of I0 = J0 ** ...
case extends m of
- Nothing -> return $ replaceJudgements m js'
- Just j0 -> do
+ [] -> return $ replaceJudgements m js'
+ j0:jj -> do
m0 <- lookupModMod gr j0
let notInM0 c = not $ isInBinTree (fst c) $ mapTree fst $ jments m0
let js2 = sorted2tree $ filter notInM0 $ tree2list js'
- return $ replaceJudgements m js2
+ if null jj
+ then return $ replaceJudgements m js2
+ else Bad "FIXME: handle multiple inheritance in instance"
return $ ModMod m'
_ -> return mi