diff options
| author | aarne <unknown> | 2004-06-10 14:34:07 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2004-06-10 14:34:07 +0000 |
| commit | 3522b2a3cd8d01ef1b908c1a717b0592332a5737 (patch) | |
| tree | 9be8653f1d4be2b4ae5556356fc5af7c391a6bbd /src/GF/Infra/ReadFiles.hs | |
| parent | f07087647e12938ac070f82261bd238be56b7c3b (diff) | |
readfiles
Diffstat (limited to 'src/GF/Infra/ReadFiles.hs')
| -rw-r--r-- | src/GF/Infra/ReadFiles.hs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/GF/Infra/ReadFiles.hs b/src/GF/Infra/ReadFiles.hs index 46091c6b5..c4076ba8c 100644 --- a/src/GF/Infra/ReadFiles.hs +++ b/src/GF/Infra/ReadFiles.hs @@ -98,7 +98,8 @@ needCompile opts headers sfiles0 = paths $ res $ mark $ iter changed where let us = uses f in if not (all noComp us) then fp else - if (typ f == MTyIncomplete || (not (null us) && all isAux us)) then + if (elem (typ f) [MTyIncomplete, MTyIncResource] || + (not (null us) && all isAux us)) then (f,(p,CSDont)) else fp @@ -124,7 +125,8 @@ needCompile opts headers sfiles0 = paths $ res $ mark $ iter changed where -- Also read res if the option "retain" is present res cs = map mkRes cs where mkRes x@(f,(path,st)) | elem st [CSRead,CSEnv] = case typ f of - MTyResource | not (null [m | (m,(_,CSComp)) <- cs, + t | elem t [MTyResource,MTyIncResource] && + not (null [m | (m,(_,CSComp)) <- cs, Just ms <- [lookup m allDeps], elem f ms]) || oElem retainOpers opts -> (f,(path,CSRes)) @@ -177,6 +179,7 @@ data ModUse = data ModTyp = MTyResource | MTyIncomplete + | MTyIncResource -- interface, incomplete resource | MTyOther deriving (Eq,Show) @@ -205,10 +208,12 @@ importsOfFile = getModuleHeader :: [String] -> ModuleHeader -- with, reuse getModuleHeader ws = case ws of - "incomplete":ws2 -> let ((_,name),us) = getModuleHeader ws2 in - ((MTyIncomplete,name),us) + "incomplete":ws2 -> let ((ty,name),us) = getModuleHeader ws2 in + case ty of + MTyResource -> ((MTyIncResource,name),us) + _ -> ((MTyIncomplete,name),us) "interface":ws2 -> let ((_,name),us) = getModuleHeader ("resource":ws2) in - ((MTyIncomplete,name),us) + ((MTyIncResource,name),us) "resource":name:ws2 -> case ws2 of "reuse":m:_ -> ((MTyResource,name),[(m,MUReuse)]) |
