From 0e40fc46d1e96a96f9cb751ef4a47bf1d4df215b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 5 Oct 2019 16:38:24 -0400 Subject: [PATCH] generated docs: show public stuff only --- lib/std/special/doc/main.js | 12 +++++----- src/dump_analysis.cpp | 48 +++++++++++++++++++++++++++---------- 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/lib/std/special/doc/main.js b/lib/std/special/doc/main.js index e39173034..e0f4d210b 100644 --- a/lib/std/special/doc/main.js +++ b/lib/std/special/doc/main.js @@ -90,7 +90,7 @@ renderPkgList(lastPkg); var lastDecl = curNav.declObjs[curNav.declObjs.length - 1]; - if (lastDecl.decls != null) { + if (lastDecl.pubDecls != null) { return renderContainer(lastDecl); } else if (lastDecl.type != null) { var typeObj = zigAnalysis.types[lastDecl.type]; @@ -220,8 +220,8 @@ function renderContainer(container) { var typesList = []; var fnsList = []; - for (var i = 0; i < container.decls.length; i += 1) { - var decl = zigAnalysis.decls[container.decls[i]]; + for (var i = 0; i < container.pubDecls.length; i += 1) { + var decl = zigAnalysis.decls[container.pubDecls[i]]; if (decl.type != null) { if (decl.type == typeTypeId) { typesList.push(decl); @@ -332,9 +332,9 @@ } function findSubDecl(parentType, childName) { - if (parentType.decls == null) throw new Error("parent object has no decls"); - for (var i = 0; i < parentType.decls.length; i += 1) { - var declIndex = parentType.decls[i]; + if (parentType.pubDecls == null) throw new Error("parent object has no public decls"); + for (var i = 0; i < parentType.pubDecls.length; i += 1) { + var declIndex = parentType.pubDecls[i]; var childDecl = zigAnalysis.decls[declIndex]; if (childDecl.name === childName) { return childDecl; diff --git a/src/dump_analysis.cpp b/src/dump_analysis.cpp index b110e0e03..220019c18 100644 --- a/src/dump_analysis.cpp +++ b/src/dump_analysis.cpp @@ -650,22 +650,46 @@ static void anal_dump_type(AnalDumpCtx *ctx, ZigType *ty) { // TODO break; } - jw_object_field(jw, "decls"); - jw_begin_array(jw); - ScopeDecls *decls_scope = ty->data.structure.decls_scope; - auto it = decls_scope->decl_table.entry_iterator(); - for (;;) { - auto *entry = it.next(); - if (!entry) - break; + { + jw_object_field(jw, "pubDecls"); + jw_begin_array(jw); - Tld *tld = entry->value; + ScopeDecls *decls_scope = ty->data.structure.decls_scope; + auto it = decls_scope->decl_table.entry_iterator(); + for (;;) { + auto *entry = it.next(); + if (!entry) + break; - jw_array_elem(jw); - anal_dump_decl_ref(ctx, tld); + Tld *tld = entry->value; + if (tld->visib_mod == VisibModPub) { + jw_array_elem(jw); + anal_dump_decl_ref(ctx, tld); + } + } + jw_end_array(jw); + } + + { + jw_object_field(jw, "privDecls"); + jw_begin_array(jw); + + ScopeDecls *decls_scope = ty->data.structure.decls_scope; + auto it = decls_scope->decl_table.entry_iterator(); + for (;;) { + auto *entry = it.next(); + if (!entry) + break; + + Tld *tld = entry->value; + if (tld->visib_mod == VisibModPrivate) { + jw_array_elem(jw); + anal_dump_decl_ref(ctx, tld); + } + } + jw_end_array(jw); } - jw_end_array(jw); if (ty->data.structure.root_struct != nullptr) { Buf *path_buf = ty->data.structure.root_struct->path;