aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-03-20 14:54:23 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-03-23 11:51:24 +0000
commitc4cf9130e83b731becb287e898faf758c753f40a (patch)
tree665966d93fbe042929dfbb0b7d15f62dccf17bf7 /src/main/java/com/google/devtools
parente00c8848776e9d93ab6653e194d308bb839e7250 (diff)
Skylark: proper anchor is generated for Boolean types in the documentation.
-- MOS_MIGRATED_REVID=89123292
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java2
3 files changed, 13 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java b/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java
index b089720ea6..deafa8a6a6 100644
--- a/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java
@@ -251,23 +251,25 @@ public class SkylarkDocumentationProcessor {
return getTypeAnchor(returnType) + " of " + getTypeAnchor(generic1) + "s";
}
- private String getTypeAnchor(Class<?> returnType) {
- if (returnType.equals(String.class)) {
+ private String getTypeAnchor(Class<?> type) {
+ if (type.equals(Boolean.class) || type.equals(boolean.class)) {
+ return "<a class=\"anchor\" href=\"#modules._top_level.bool\">bool</a>";
+ } else if (type.equals(String.class)) {
return "<a class=\"anchor\" href=\"#modules.string\">string</a>";
- } else if (Map.class.isAssignableFrom(returnType)) {
+ } else if (Map.class.isAssignableFrom(type)) {
return "<a class=\"anchor\" href=\"#modules.dict\">dict</a>";
- } else if (List.class.isAssignableFrom(returnType)) {
+ } else if (List.class.isAssignableFrom(type)) {
// Annotated Java methods can return simple java.util.Lists (which get auto-converted).
return "<a class=\"anchor\" href=\"#modules.list\">list</a>";
- } else if (returnType.equals(Void.TYPE) || returnType.equals(NoneType.class)) {
+ } else if (type.equals(Void.TYPE) || type.equals(NoneType.class)) {
return "<a class=\"anchor\" href=\"#modules." + TOP_LEVEL_ID + ".None\">None</a>";
- } else if (returnType.isAnnotationPresent(SkylarkModule.class)) {
+ } else if (type.isAnnotationPresent(SkylarkModule.class)) {
// TODO(bazel-team): this can produce dead links for types don't show up in the doc.
// The correct fix is to generate those types (e.g. SkylarkFileType) too.
- String module = returnType.getAnnotation(SkylarkModule.class).name();
+ String module = type.getAnnotation(SkylarkModule.class).name();
return "<a class=\"anchor\" href=\"#modules." + module + "\">" + module + "</a>";
} else {
- return EvalUtils.getDataTypeNameFromClass(returnType);
+ return EvalUtils.getDataTypeNameFromClass(type);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java b/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java
index 3a457f9a76..f754ae8f1f 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/MethodLibrary.java
@@ -582,7 +582,8 @@ public class MethodLibrary {
@SkylarkBuiltin(name = "bool", returnType = Boolean.class, doc = "Converts an object to boolean. "
+ "It returns False if the object is None, False, an empty string, the number 0, or an "
- + "empty collection. Otherwise, it returns True.",
+ + "empty collection. Otherwise, it returns True. Similarly to Python <code>bool</code> "
+ + "is also a type.",
mandatoryParams = {@Param(name = "x", doc = "The variable to convert.")})
private static Function bool = new MixedModeFunction("bool",
ImmutableList.of("this"), 1, false) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
index 6b71f62b71..f173218727 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
@@ -192,7 +192,7 @@ public class SkylarkRuleClassFunctions {
optionalParams = {
@Param(name = "test", type = Boolean.class, doc = "Whether this rule is a test rule. "
+ "If True, the rule must end with <code>_test</code> (otherwise it cannot)."),
- @Param(name = "attrs", doc =
+ @Param(name = "attrs", type = Map.class, doc =
"dictionary to declare all the attributes of the rule. It maps from an attribute name "
+ "to an attribute object (see 'attr' module). Attributes starting with <code>_</code> "
+ "are private, and can be used to add an implicit dependency on a label."),