aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeProviderApi.java21
-rw-r--r--src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java12
-rw-r--r--src/main/java/com/google/devtools/build/skydoc/rendering/AttributeInfo.java2
3 files changed, 30 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeProviderApi.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeProviderApi.java
index cdf8ef1f6e..01b64c1b4d 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeProviderApi.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeProviderApi.java
@@ -16,11 +16,28 @@ package com.google.devtools.build.skydoc.fakebuildapi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
+import com.google.devtools.build.lib.syntax.BaseFunction;
+import com.google.devtools.build.lib.syntax.Environment;
+import com.google.devtools.build.lib.syntax.EvalException;
+import com.google.devtools.build.lib.syntax.FuncallExpression;
+import com.google.devtools.build.lib.syntax.FunctionSignature;
+import javax.annotation.Nullable;
/**
- * Fake implementation of {@link ProviderApi}.
+ * Fake implementation of {@link ProviderApi}. This fake is a subclass of {@link BaseFunction},
+ * as providers are themselves callable.
*/
-public class FakeProviderApi implements ProviderApi {
+public class FakeProviderApi extends BaseFunction implements ProviderApi {
+
+ public FakeProviderApi() {
+ super("ProviderFunction", FunctionSignature.WithValues.create(FunctionSignature.KWARGS));
+ }
+
+ @Override
+ protected Object call(Object[] args, @Nullable FuncallExpression ast, Environment env)
+ throws EvalException, InterruptedException {
+ return new FakeStructApi();
+ }
@Override
public void repr(SkylarkPrinter printer) {}
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
index e75a483829..f86c455f45 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.skydoc.fakebuildapi;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.FileTypeApi;
@@ -61,7 +62,7 @@ public class FakeSkylarkRuleFunctionsApi implements SkylarkRuleFunctionsApi<File
@Override
public ProviderApi provider(String doc, Object fields, Location location) throws EvalException {
- return null;
+ return new FakeProviderApi();
}
@Override
@@ -97,7 +98,14 @@ public class FakeSkylarkRuleFunctionsApi implements SkylarkRuleFunctionsApi<File
@Override
public Label label(String labelString, Boolean relativeToCallerRepository, Location loc,
Environment env) throws EvalException {
- return null;
+ try {
+ return Label.parseAbsolute(
+ labelString,
+ /* defaultToMain= */ false,
+ /* repositoryMapping= */ ImmutableMap.of());
+ } catch (LabelSyntaxException e) {
+ throw new EvalException(loc, "Illegal absolute label syntax: " + labelString);
+ }
}
@Override
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/AttributeInfo.java b/src/main/java/com/google/devtools/build/skydoc/rendering/AttributeInfo.java
index 696fe2deb6..3824696527 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/AttributeInfo.java
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/AttributeInfo.java
@@ -26,7 +26,7 @@ public class AttributeInfo {
public AttributeInfo(String name, String docString, String typeString, boolean mandatory) {
this.name = name;
- this.docString = docString;
+ this.docString = docString.trim();
this.typeString = typeString;
this.mandatory = mandatory;
}