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("

Module {self}

\n
") var s = "" var d: nullable MMDirectory = directory - while d == null do + while d != null do if d.owner != null and (d.owner != self or dctx.inside_mode or dctx.intrude_mode) then s = "{d.owner.html_link(dctx)}::{s}" end @@ -806,7 +813,6 @@ special MMEntity if not c2 isa MMConcreteClass then continue c2.compute_super_classes c2.compute_ancestors - c2.inherit_global_properties end for c2 in c.cshe.direct_smallers do if c2.global.intro == c2 then @@ -1102,7 +1108,7 @@ end redef class MMSignature # Htlm transcription of the signature (with nested links) - fun to_html(dctx: DocContext): String + fun to_html(dctx: DocContext, with_closure: Bool): String do var res = new Buffer if arity > 0 then @@ -1118,6 +1124,16 @@ redef class MMSignature res.append(": ") res.append(return_type.html_link(dctx)) end + if with_closure then + for c in closures do + res.append(" ") + if c.is_optional then res.append("[") + if c.is_break then res.append("break ") + res.append("!{c.name}") + res.append(c.signature.to_html(dctx, false)) + if c.is_optional then res.append("]") + end + end return res.to_s end end