X-Git-Url: http://nitlanguage.org diff --git a/src/nitdoc.nit b/src/nitdoc.nit index dfd5ec8..a8e1b45 100644 --- a/src/nitdoc.nit +++ b/src/nitdoc.nit @@ -187,6 +187,7 @@ special AbstractCompiler add("Overview Index With Frames\n") add("") add("Visibility: ") + var module = module if (not inside_mode and not intrude_mode) or module == null then add("Public ") else @@ -342,13 +343,17 @@ special MMEntity redef fun prototype_head(dctx) do return "module " var _known_owner_of_cache: Map[MMModule, MMModule] = new HashMap[MMModule, MMModule] + + # Return the owner of `module` from the point of view of `self` fun known_owner_of(module: MMModule): MMModule - do + do if _known_owner_of_cache.has_key(module) then return _known_owner_of_cache[module] var res = module - if mhe < module and visibility_for(module) != 0 then + # is module is publicly imported by self? + if mhe < module and visibility_for(module) != 0 then res = known_owner_of_intern(module, self, false) else + # Return the canonnical owner of module from the point of view of self res = module.owner(self) end _known_owner_of_cache[module] = res @@ -368,6 +373,7 @@ special MMEntity return res end + # ??? private fun known_owner_of_intern(module: MMModule, from: MMModule, as_owner: Bool): MMModule do if module == self then return self @@ -377,7 +383,8 @@ special MMEntity if not m.mhe <= module then continue candidates.add(m.known_owner_of_intern(module, from, true)) end - assert not candidates.is_empty + # FIXME: I do not know what this does + if candidates.is_empty then return module.owner(from) var max = candidates.first for m in candidates do if max.mhe < m then max = m @@ -453,7 +460,7 @@ special MMEntity redef fun prototype_body(dctx) do var res = new Buffer - res.append(signature.to_html(dctx)) + res.append(signature.to_html(dctx, true)) var s = self if s isa MMMethod then if s.is_abstract then @@ -548,7 +555,7 @@ redef class MMSrcModule dctx.add("