error(nvisibility, "Error: refinement changed the visibility from a {mclass.visibility} to a {mvisibility}")
end
nclassdef.mclass = mclass
- nmodule.mclass2nclassdef[mclass] = nclassdef
+ if not nmodule.mclass2nclassdef.has_key(mclass) then
+ nmodule.mclass2nclassdef[mclass] = nclassdef
+ end
end
# Visit the AST and create the `MClassDef` objects
if nclassdef isa AStdClassdef then
var ndoc = nclassdef.n_doc
- if ndoc != null then mclassdef.mdoc = ndoc.to_mdoc
+ if ndoc != null then
+ var mdoc = ndoc.to_mdoc
+ mclassdef.mdoc = mdoc
+ mdoc.original_mentity = mclassdef
+ end
end
if mclassdef.is_intro then
var mmodule = nmodule.mmodule.as(not null)
for imp in mmodule.in_importation.direct_greaters do
+ if not mmodule2nmodule.has_key(imp) then continue
build_classes(mmodule2nmodule[imp])
end
if errcount != toolcontext.error_count then return
# Create the mclassdef hierarchy
- for nclassdef in nmodule.n_classdefs do
- var mclassdef = nclassdef.mclassdef.as(not null)
+ for mclassdef in mmodule.mclassdefs do
mclassdef.add_in_hierarchy
end