aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationCollector.java3
-rw-r--r--src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java32
-rw-r--r--src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java9
4 files changed, 45 insertions, 3 deletions
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 2eccf19d85..af770f5293 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 @@ final class SkylarkDocumentationCollector {
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 2fb39d464b..b3e2960c26 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 @@ abstract class SkylarkDoc {
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 02f28faf88..77c708c242 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 @@ public class MethodLibrary {
)
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 cdfd62a73c..604c444aac 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 @@ public class SkylarkDocumentationTest extends SkylarkTestCase {
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 @@ public class SkylarkDocumentationTest extends SkylarkTestCase {
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) {