139 |
case AbsPathMap.find (!knownInfo, sourcepath) of |
case AbsPathMap.find (!knownInfo, sourcepath) of |
140 |
NONE => newpersinfo () |
NONE => newpersinfo () |
141 |
| SOME (pi as PERS { group = gr' as (g, r), ... }) => |
| SOME (pi as PERS { group = gr' as (g, r), ... }) => |
142 |
if AbsPath.compare (group, g) <> EQUAL then |
if AbsPath.compare (group, g) <> EQUAL then let |
143 |
(if GroupReg.registered groupreg g then |
val n = AbsPath.name sourcepath |
144 |
let val n = AbsPath.name sourcepath |
in |
145 |
in gerror gp gr EM.COMPLAIN |
if GroupReg.registered groupreg g then |
146 |
|
(gerror gp gr EM.COMPLAIN |
147 |
(concat ["ML source file ", n, |
(concat ["ML source file ", n, |
148 |
" appears in more than one group"]) |
" appears in more than one group"]) |
149 |
EM.nullErrorBody; |
EM.nullErrorBody; |
150 |
gerror gp gr' EM.COMPLAIN |
gerror gp gr' EM.COMPLAIN |
151 |
(concat ["(previous occurence of ", n, ")"]) |
(concat ["(previous occurence of ", n, ")"]) |
152 |
EM.nullErrorBody |
EM.nullErrorBody) |
153 |
|
else |
154 |
|
gerror gp gr EM.WARN |
155 |
|
(concat ["ML source file ", n, |
156 |
|
" has switched groups"]) |
157 |
|
EM.nullErrorBody; |
158 |
|
newpersinfo () |
159 |
end |
end |
|
else (); |
|
|
newpersinfo ()) |
|
160 |
else pi |
else pi |
161 |
in |
in |
162 |
INFO { sourcepath = sourcepath, |
INFO { sourcepath = sourcepath, |