Generate documentation for bool and int types. This improves consistency in the documentation (string and list already have their own page). -- PiperOrigin-RevId: 147599068 MOS_MIGRATED_REVID=147599068
diff --git a/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationCollector.java b/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationCollector.java index 2eccf19..af770f5 100644 --- a/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationCollector.java +++ b/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationCollector.java
@@ -193,6 +193,9 @@ private static Map<SkylarkModule, Class<?>> collectBuiltinJavaObjects(String ...clazz) { Map<SkylarkModule, Class<?>> modules = new HashMap<>(); + collectBuiltinModule(modules, MethodLibrary.BoolModule.class); + collectBuiltinModule(modules, MethodLibrary.IntModule.class); + collectBuiltinModule(modules, SkylarkRuleContext.class); collectBuiltinModule(modules, TransitiveInfoCollection.class);
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java index 2fb39d4..b3e2960 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java
@@ -47,7 +47,9 @@ protected String getTypeAnchor(Class<?> type) { if (type.equals(Boolean.class) || type.equals(boolean.class)) { - return "<a class=\"anchor\" href=\"" + TOP_LEVEL_ID + ".html#bool\">bool</a>"; + return "<a class=\"anchor\" href=\"bool.html\">bool</a>"; + } else if (type.equals(int.class) || type.equals(Integer.class)) { + return "<a class=\"anchor\" href=\"int.html\">int</a>"; } else if (type.equals(String.class)) { return "<a class=\"anchor\" href=\"string.html\">string</a>"; } else if (Map.class.isAssignableFrom(type)) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java index 02f28fa..77c708c 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
@@ -2147,6 +2147,38 @@ ) static final class StringModule {} + /** Skylark int type. */ + @SkylarkModule( + name = "int", + category = SkylarkModuleCategory.BUILTIN, + doc = + "A type to represent integers. It can represent any number between -2147483648 and " + + "2147483647 (included). " + + "Examples of int values:<br>" + + "<pre class=\"language-python\">" + + "153\n" + + "0x2A # hexadecimal literal\n" + + "054 # octal literal\n" + + "23 * 2 + 5\n" + + "100 / -7\n" + + "100 % -7 # -5 (unlike in some other languages)\n" + + "int(\"18\")\n" + + "</pre>" + ) + public static final class IntModule {} + + /** Skylark bool type. */ + @SkylarkModule( + name = "bool", + category = SkylarkModuleCategory.BUILTIN, + doc = + "A type to represent booleans. There are only two possible values: " + + "<a href=\"globals.html#True\">True</a> and " + + "<a href=\"globals.html#False\">False</a>. " + + "Any value can be converted to a boolean using the " + + "<a href=\"globals.html#bool\">bool</a> function." + ) + public static final class BoolModule {} static final List<BaseFunction> defaultGlobalFunctions = ImmutableList.<BaseFunction>of(
diff --git a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java index cdfd62a..604c444 100644 --- a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java +++ b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
@@ -194,7 +194,11 @@ assertThat(moduleDoc.getMethods()).hasSize(1); SkylarkMethodDoc methodDoc = moduleDoc.getMethods().iterator().next(); assertThat(methodDoc.getDocumentation()).isEqualTo("MockClassD#test"); - assertThat(methodDoc.getSignature()).isEqualTo("int MockClassD.test(arg0:int, b, *, c, d=1)"); + assertThat(methodDoc.getSignature()) + .isEqualTo( + "<a class=\"anchor\" href=\"int.html\">int</a> " + + "MockClassD.test(arg0:<a class=\"anchor\" href=\"int.html\">int</a>, " + + "b, *, c, d=1)"); assertThat(methodDoc.getParams()).hasSize(3); } @@ -208,7 +212,8 @@ assertThat(moduleDoc.getMethods()).hasSize(1); SkylarkMethodDoc methodDoc = moduleDoc.getMethods().iterator().next(); assertThat(methodDoc.getDocumentation()).isEqualTo("MockClassA#get"); - assertThat(methodDoc.getSignature()).isEqualTo("int MockClassE.get()"); + assertThat(methodDoc.getSignature()) + .isEqualTo("<a class=\"anchor\" href=\"int.html\">int</a> MockClassE.get()"); } private Iterable<Method> extractMethods(Collection<SkylarkJavaMethodDoc> methods) {