diff options
Diffstat (limited to 'src/main/java/com')
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; } |