From 7361ddea45727e80a79ba42af34e45f9641fc993 Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 12 Mar 2011 11:24:14 +0000 Subject: make it possible to override opers defined in an interface by syntax 'instance Foo of Bar - [f,g,h]' --- src/compiler/GF/Compile/ReadFiles.hs | 2 +- src/compiler/GF/Compile/Update.hs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/compiler/GF/Compile') diff --git a/src/compiler/GF/Compile/ReadFiles.hs b/src/compiler/GF/Compile/ReadFiles.hs index 83f99ec17..68f16a5d8 100644 --- a/src/compiler/GF/Compile/ReadFiles.hs +++ b/src/compiler/GF/Compile/ReadFiles.hs @@ -178,7 +178,7 @@ importsOfModule (m,mi) = (modName m,depModInfo mi []) depModType (MTResource) xs = xs depModType (MTInterface) xs = xs depModType (MTConcrete m2) xs = modName m2:xs - depModType (MTInstance m2) xs = modName m2:xs + depModType (MTInstance (m2,_)) xs = modName m2:xs depExtends es xs = foldr depInclude xs es diff --git a/src/compiler/GF/Compile/Update.hs b/src/compiler/GF/Compile/Update.hs index b5f301e8b..1dcae722c 100644 --- a/src/compiler/GF/Compile/Update.hs +++ b/src/compiler/GF/Compile/Update.hs @@ -89,10 +89,10 @@ rebuildModule gr mo@(i,mi@(ModInfo mt stat fs_ me mw ops_ med_ js_)) = do ("module" +++ showIdent i +++ "has open interfaces and must therefore be declared incomplete") case mt of - MTInstance i0 -> do + MTInstance (i0,mincl) -> do m1 <- lookupModule gr i0 testErr (isModRes m1) ("interface expected instead of" +++ showIdent i0) - js' <- extendMod gr False (i0,const True) i (jments m1) (jments mi) + js' <- extendMod gr False (i0, isInherited mincl) i (jments m1) (jments mi) --- to avoid double inclusions, in instance I of I0 = J0 ** ... case extends mi of [] -> return $ replaceJudgements mi js' -- cgit v1.2.3