bazel syntax: disallow NestedSet return type in @SkylarkCallable methods
This change causes the processor for @SkylarkCallable annotations to disallow
a declared return type that provably contains no values acceptable by
Starlark.fromJava, by rejecting final types that do not implement
StarlarkValue, String, Integer, Boolean, List, or Map.
In particular, this disallows a return type of NestedSet, and the bulk of
the change is a tedious manual conversion of all such functions to return a
SkylarkNestedSet (aka and soon to be renamed "depset") with an explicit
type symbol. If you have ritalin, take some now.
Previously, the wrapping of NestedSet<T> to depset was done implicitly by
the interpreter, which dug the type argument T out of the representation
of the program for use in the type symbol. This was too clever: widening
the return type to Object (for example to accommodate depset+None) would
change the behavior of the program in surprising ways. Also, the interpreter
should not depend on depset, a Bazelism. The implicit conversion is now removed.
In cases where the Java code relies on function f returning a NestedSet,
we renamed the @SkylarkCallable-annotated function to fForStarlark and made
its implementation delegate to the existing function f then wrap its result
in a depset. Where possible, the visibility of f was reduced: only the
annotated methods need be public.
PiperOrigin-RevId: 281792571
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java
index b94ef10..d71cf86 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.FileProviderApi;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/**
* A representation of the concept "this transitive info provider builds these files".
@@ -42,20 +43,23 @@
/**
* Returns the set of artifacts that are the "output" of this rule.
*
- * <p>The term "output" is somewhat hazily defined; it is vaguely the set of files that are
- * passed on to dependent rules that list the rule in their {@code srcs} attribute and the
- * set of files that are built when a rule is mentioned on the command line. It does
- * <b>not</b> include the runfiles; that is the bailiwick of {@code FilesToRunProvider}.
+ * <p>The term "output" is somewhat hazily defined; it is vaguely the set of files that are passed
+ * on to dependent rules that list the rule in their {@code srcs} attribute and the set of files
+ * that are built when a rule is mentioned on the command line. It does <b>not</b> include the
+ * runfiles; that is the bailiwick of {@code FilesToRunProvider}.
*
* <p>Note that the above definition is somewhat imprecise; in particular, when a rule is
- * mentioned on the command line, some other files are also built
- * {@code TopLevelArtifactHelper} and dependent rules are free to filter this set of artifacts
- * e.g. based on their extension.
+ * mentioned on the command line, some other files are also built {@code TopLevelArtifactHelper}
+ * and dependent rules are free to filter this set of artifacts e.g. based on their extension.
*
* <p>Also, some rules may generate artifacts that are not listed here by way of defining other
* implicit targets, for example, deploy jars.
*/
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getFilesToBuildForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, filesToBuild);
+ }
+
public NestedSet<Artifact> getFilesToBuild() {
return filesToBuild;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
index 2fd9ef9..0efe6b5 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
@@ -39,6 +39,8 @@
import com.google.devtools.build.lib.skylarkbuildapi.RunfilesApi;
import com.google.devtools.build.lib.skylarkbuildapi.SymlinkEntryApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import com.google.devtools.build.lib.syntax.SkylarkType;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.io.BufferedReader;
@@ -336,6 +338,10 @@
* pruning manifest candidates.
*/
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getArtifactsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, getArtifacts());
+ }
+
public NestedSet<Artifact> getArtifacts() {
NestedSetBuilder<Artifact> allArtifacts = NestedSetBuilder.stableOrder();
allArtifacts.addTransitive(unconditionalArtifacts);
@@ -347,11 +353,19 @@
/** Returns the symlinks. */
@Override
+ public SkylarkNestedSet /*<SymlinkEntry>*/ getSymlinksForStarlark() {
+ return SkylarkNestedSet.of(SymlinkEntry.class, symlinks);
+ }
+
public NestedSet<SymlinkEntry> getSymlinks() {
return symlinks;
}
@Override
+ public SkylarkNestedSet /*<String>*/ getEmptyFilenamesForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, getEmptyFilenames());
+ }
+
public NestedSet<String> getEmptyFilenames() {
Set<PathFragment> manifestKeys =
Streams.concat(
@@ -574,6 +588,10 @@
/** Returns the root symlinks. */
@Override
+ public SkylarkNestedSet /*<SymlinkEntry>*/ getRootSymlinksForStarlark() {
+ return SkylarkNestedSet.of(SymlinkEntry.class, rootSymlinks);
+ }
+
public NestedSet<SymlinkEntry> getRootSymlinks() {
return rootSymlinks;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java
index 19e4527..051cc78 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java
@@ -110,6 +110,10 @@
}
@Override
+ public SkylarkNestedSet /*<ParsedAndroidAssets>*/ getDirectParsedAssetsForStarlark() {
+ return SkylarkNestedSet.of(ParsedAndroidAssets.class, directParsedAssets);
+ }
+
public NestedSet<ParsedAndroidAssets> getDirectParsedAssets() {
return directParsedAssets;
}
@@ -125,16 +129,28 @@
}
@Override
+ public SkylarkNestedSet /*<ParsedAndroidAssets>*/ getTransitiveParsedAssetsForStarlark() {
+ return SkylarkNestedSet.of(ParsedAndroidAssets.class, transitiveParsedAssets);
+ }
+
public NestedSet<ParsedAndroidAssets> getTransitiveParsedAssets() {
return transitiveParsedAssets;
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getAssetsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveAssets);
+ }
+
public NestedSet<Artifact> getAssets() {
return transitiveAssets;
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getSymbolsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveSymbols);
+ }
+
public NestedSet<Artifact> getSymbols() {
return transitiveSymbols;
}
@@ -146,7 +162,11 @@
}
@Override
- public NestedSet<Artifact> getCompiledSymbols() {
+ public SkylarkNestedSet /*<Artifact>*/ getCompiledSymbolsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveCompiledSymbols);
+ }
+
+ NestedSet<Artifact> getCompiledSymbols() {
return transitiveCompiledSymbols;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java
index 1642ca8..a40b6ea 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java
@@ -22,6 +22,7 @@
import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidIdlProviderApi;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import com.google.devtools.build.lib.syntax.SkylarkType;
/**
* Configured targets implementing this provider can contribute Android IDL information to the
@@ -51,22 +52,38 @@
}
@Override
- public NestedSet<String> getTransitiveIdlImportRoots() {
+ public SkylarkNestedSet /*<String>*/ getTransitiveIdlImportRootsForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, transitiveIdlImportRoots);
+ }
+
+ NestedSet<String> getTransitiveIdlImportRoots() {
return transitiveIdlImportRoots;
}
@Override
- public NestedSet<Artifact> getTransitiveIdlImports() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveIdlImportsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveIdlImports);
+ }
+
+ NestedSet<Artifact> getTransitiveIdlImports() {
return transitiveIdlImports;
}
@Override
- public NestedSet<Artifact> getTransitiveIdlJars() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveIdlJarsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveIdlJars);
+ }
+
+ NestedSet<Artifact> getTransitiveIdlJars() {
return transitiveIdlJars;
}
@Override
- public NestedSet<Artifact> getTransitiveIdlPreprocessed() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveIdlPreprocessedForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveIdlPreprocessed);
+ }
+
+ NestedSet<Artifact> getTransitiveIdlPreprocessed() {
return transitiveIdlPreprocessed;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java
index a3ce116..2617fc5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java
@@ -25,6 +25,7 @@
import com.google.devtools.build.lib.packages.NativeInfo;
import com.google.devtools.build.lib.packages.NativeProvider;
import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidLibraryAarInfoApi;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import java.util.Objects;
import javax.annotation.Nullable;
@@ -79,6 +80,10 @@
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveAarArtifactsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveAarArtifacts);
+ }
+
public NestedSet<Artifact> getTransitiveAarArtifacts() {
return transitiveAarArtifacts;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java
index 23be2e5..38074bc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java
@@ -23,7 +23,6 @@
import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidLibraryResourceClassJarProviderApi;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
-import javax.annotation.Nonnull;
/**
* A provider which contains the resource class jars from android_library rules. See {@link
@@ -52,8 +51,11 @@
target.get(AndroidLibraryResourceClassJarProvider.PROVIDER.getKey());
}
- @Nonnull
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getResourceClassJarsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, resourceClassJars);
+ }
+
public NestedSet<Artifact> getResourceClassJars() {
return resourceClassJars;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
index 2d6dcb3..eb9247c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
@@ -43,7 +43,11 @@
}
@Override
- public NestedSet<Artifact> getNativeLibs() {
+ public SkylarkNestedSet /*<Artifact>*/ getNativeLibsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, nativeLibs);
+ }
+
+ NestedSet<Artifact> getNativeLibs() {
return nativeLibs;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
index 08385a7..d931d07 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
@@ -111,52 +111,93 @@
}
@Override
+ public SkylarkNestedSet /*<ValidatedAndroidResources>*/
+ getTransitiveAndroidResourcesForStarlark() {
+ return SkylarkNestedSet.of(ValidatedAndroidResources.class, transitiveAndroidResources);
+ }
+
public NestedSet<ValidatedAndroidResources> getTransitiveAndroidResources() {
return transitiveAndroidResources;
}
@Override
+ public SkylarkNestedSet /*<ValidatedAndroidResources>*/ getDirectAndroidResourcesForStarlark() {
+ return SkylarkNestedSet.of(ValidatedAndroidResources.class, directAndroidResources);
+ }
+
public NestedSet<ValidatedAndroidResources> getDirectAndroidResources() {
return directAndroidResources;
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveResourcesForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveResources);
+ }
+
public NestedSet<Artifact> getTransitiveResources() {
return transitiveResources;
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveManifestsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveManifests);
+ }
+
public NestedSet<Artifact> getTransitiveManifests() {
return transitiveManifests;
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveAapt2RTxtForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveAapt2RTxt);
+ }
+
public NestedSet<Artifact> getTransitiveAapt2RTxt() {
return transitiveAapt2RTxt;
}
@Override
- public NestedSet<Artifact> getTransitiveAapt2ValidationArtifacts() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveAapt2ValidationArtifactsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveAapt2ValidationArtifacts);
+ }
+
+ NestedSet<Artifact> getTransitiveAapt2ValidationArtifacts() {
return transitiveAapt2ValidationArtifacts;
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveSymbolsBinForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveSymbolsBin);
+ }
+
public NestedSet<Artifact> getTransitiveSymbolsBin() {
return transitiveSymbolsBin;
}
@Override
- public NestedSet<Artifact> getTransitiveCompiledSymbols() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveCompiledSymbolsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveCompiledSymbols);
+ }
+
+ NestedSet<Artifact> getTransitiveCompiledSymbols() {
return transitiveCompiledSymbols;
}
@Override
- public NestedSet<Artifact> getTransitiveStaticLib() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveStaticLibForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveStaticLib);
+ }
+
+ NestedSet<Artifact> getTransitiveStaticLib() {
return transitiveStaticLib;
}
@Override
- public NestedSet<Artifact> getTransitiveRTxt() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveRTxtForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveRTxt);
+ }
+
+ NestedSet<Artifact> getTransitiveRTxt() {
return transitiveRTxt;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
index b32a0c5..bc2ae90 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
@@ -97,8 +97,9 @@
}
@Override
- public NestedSet<Artifact> getResources() {
- return collectDirectArtifacts(ValidatedAndroidResources::getResources);
+ public SkylarkNestedSet /*<Artifact>*/ getResources() {
+ return SkylarkNestedSet.of(
+ Artifact.TYPE, collectDirectArtifacts(ValidatedAndroidResources::getResources));
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java b/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java
index 1462874..6e0bcbe 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java
@@ -24,6 +24,7 @@
import com.google.devtools.build.lib.skylarkbuildapi.android.DataBindingV2ProviderApi;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.Sequence;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import javax.annotation.Nullable;
/**
@@ -75,6 +76,10 @@
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveBRFilesForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveBRFiles);
+ }
+
public NestedSet<Artifact> getTransitiveBRFiles() {
return transitiveBRFiles;
}
@@ -86,6 +91,11 @@
}
@Override
+ public SkylarkNestedSet /*<LabelJavaPackagePair>*/
+ getTransitiveLabelAndJavaPackagesForStarlark() {
+ return SkylarkNestedSet.of(LabelJavaPackagePair.class, transitiveLabelAndJavaPackages);
+ }
+
public NestedSet<LabelJavaPackagePair> getTransitiveLabelAndJavaPackages() {
return transitiveLabelAndJavaPackages;
}
@@ -96,6 +106,7 @@
Artifact brFile,
String label,
String javaPackage,
+ // ugh these *Api types do not help one bit
Iterable<? extends DataBindingV2ProviderApi<Artifact>> databindingV2ProvidersInDeps,
Iterable<? extends DataBindingV2ProviderApi<Artifact>> databindingV2ProvidersInExports) {
@@ -126,7 +137,8 @@
if (databindingV2ProvidersInDeps != null) {
- for (DataBindingV2ProviderApi<Artifact> provider : databindingV2ProvidersInDeps) {
+ for (DataBindingV2ProviderApi<Artifact> p : databindingV2ProvidersInDeps) {
+ DataBindingV2Provider provider = (DataBindingV2Provider) p;
brFiles.addTransitive(provider.getTransitiveBRFiles());
transitiveLabelAndJavaPackages.addTransitive(provider.getTransitiveLabelAndJavaPackages());
}
@@ -136,7 +148,8 @@
// Add all of the information from providers from exported targets, so that targets which
// depend on this target appear to depend on the exported targets.
- for (DataBindingV2ProviderApi<Artifact> provider : databindingV2ProvidersInExports) {
+ for (DataBindingV2ProviderApi<Artifact> p : databindingV2ProvidersInExports) {
+ DataBindingV2Provider provider = (DataBindingV2Provider) p;
setterStoreFiles.addAll(provider.getSetterStores());
classInfoFiles.addAll(provider.getClassInfos());
brFiles.addTransitive(provider.getTransitiveBRFiles());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java
index e7eb2fb..81969e4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java
@@ -23,6 +23,7 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcSkylarkApiProviderApi;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.vfs.PathFragment;
/**
@@ -42,14 +43,22 @@
}
@Override
- public NestedSet<Artifact> getTransitiveHeaders() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveHeadersForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, getTransitiveHeaders());
+ }
+
+ NestedSet<Artifact> getTransitiveHeaders() {
CcCompilationContext ccCompilationContext =
getInfo().get(CcInfo.PROVIDER).getCcCompilationContext();
return ccCompilationContext.getDeclaredIncludeSrcs();
}
@Override
- public NestedSet<Artifact> getLibraries() {
+ public SkylarkNestedSet /*<Artifact>*/ getLibrariesForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, getLibraries());
+ }
+
+ NestedSet<Artifact> getLibraries() {
NestedSetBuilder<Artifact> libs = NestedSetBuilder.linkOrder();
CcInfo ccInfo = getInfo().get(CcInfo.PROVIDER);
if (ccInfo == null) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/GoogleLegacyStubs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/GoogleLegacyStubs.java
index 5c90696..358c9e6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/GoogleLegacyStubs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/GoogleLegacyStubs.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.cpp;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.RunfilesApi;
import com.google.devtools.build.lib.skylarkbuildapi.SkylarkRuleContextApi;
@@ -239,7 +238,7 @@
}
@Override
- public NestedSet<FileApi> getGopackageFiles(
+ public SkylarkNestedSet /*<FileApi>*/ getGopackageFilesForStarlark(
SkylarkRuleContextApi skylarkRuleContext, FileApi skylarkGopkg) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
index a0931d3..fc69382 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
@@ -22,6 +22,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.java.JavaAnnotationProcessingApi;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import javax.annotation.Nullable;
/** The collection of gen jars from the transitive closure. */
@@ -105,17 +106,29 @@
}
@Override
- public NestedSet<Artifact> getTransitiveGenClassJars() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveGenClassJarsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveGenClassJars);
+ }
+
+ NestedSet<Artifact> getTransitiveGenClassJars() {
return transitiveGenClassJars;
}
@Override
- public NestedSet<Artifact> getTransitiveGenSourceJars() {
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveGenSourceJarsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveGenSourceJars);
+ }
+
+ NestedSet<Artifact> getTransitiveGenSourceJars() {
return transitiveGenSourceJars;
}
@Override
- public NestedSet<Artifact> getProcessorClasspath() {
+ public SkylarkNestedSet /*<Artifact>*/ getProcessorClasspathForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, processorClasspath);
+ }
+
+ NestedSet<Artifact> getProcessorClasspath() {
return processorClasspath;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
index f2da42e..572fa14 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
@@ -39,6 +39,10 @@
}
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveProguardSpecsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveProguardSpecs);
+ }
+
public NestedSet<Artifact> getTransitiveProguardSpecs() {
return transitiveProguardSpecs;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java
index 4766f91..89c6823 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java
@@ -71,6 +71,10 @@
/** @return the proto jars used to generate the registry. */
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getInputsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, inputs);
+ }
+
public NestedSet<Artifact> getInputs() {
return inputs;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
index 8620829..44c08ef 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
@@ -43,6 +43,7 @@
import com.google.devtools.build.lib.syntax.EvalUtils;
import com.google.devtools.build.lib.syntax.Sequence;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import com.google.devtools.build.lib.syntax.SkylarkType;
import com.google.devtools.build.lib.syntax.StarlarkSemantics;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.Collections;
@@ -394,18 +395,26 @@
ImmutableSet.<Key<?>>of(HEADER, MODULE_MAP, SOURCE);
@Override
+ public SkylarkNestedSet /*<String>*/ defineForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, define());
+ }
+
public NestedSet<String> define() {
return get(DEFINE);
}
@Override
- public NestedSet<Artifact> dynamicFrameworkFile() {
+ public SkylarkNestedSet /*<Artifact>*/ dynamicFrameworkFileForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, dynamicFrameworkFile());
+ }
+
+ NestedSet<Artifact> dynamicFrameworkFile() {
return get(DYNAMIC_FRAMEWORK_FILE);
}
@Override
- public NestedSet<Artifact> exportedDebugArtifacts() {
- return get(EXPORTED_DEBUG_ARTIFACTS);
+ public SkylarkNestedSet /*<Artifact>*/ exportedDebugArtifacts() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(EXPORTED_DEBUG_ARTIFACTS));
}
@Override
@@ -414,12 +423,16 @@
}
@Override
- public NestedSet<Artifact> forceLoadLibrary() {
- return get(FORCE_LOAD_LIBRARY);
+ public SkylarkNestedSet /*<Artifact>*/ forceLoadLibrary() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(FORCE_LOAD_LIBRARY));
}
@Override
- public NestedSet<Artifact> header() {
+ public SkylarkNestedSet /*<Artifact>*/ headerForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, header());
+ }
+
+ NestedSet<Artifact> header() {
return get(HEADER);
}
@@ -429,12 +442,12 @@
}
@Override
- public NestedSet<Artifact> importedLibrary() {
- return get(IMPORTED_LIBRARY);
+ public SkylarkNestedSet /*<Artifact>*/ importedLibrary() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(IMPORTED_LIBRARY));
}
@Override
- public SkylarkNestedSet include() {
+ public SkylarkNestedSet /*<String>*/ include() {
return ObjcProviderSkylarkConverters.convertPathFragmentsToSkylark(get(INCLUDE));
}
@@ -449,48 +462,48 @@
}
@Override
- public NestedSet<Artifact> j2objcLibrary() {
- return get(J2OBJC_LIBRARY);
+ public SkylarkNestedSet /*<Artifact>*/ j2objcLibrary() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(J2OBJC_LIBRARY));
}
@Override
- public NestedSet<Artifact> jreLibrary() {
- return get(JRE_LIBRARY);
+ public SkylarkNestedSet /*<Artifact>*/ jreLibrary() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(JRE_LIBRARY));
}
@Override
- public NestedSet<Artifact> library() {
- return get(LIBRARY);
+ public SkylarkNestedSet /*<Artifact>*/ library() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(LIBRARY));
}
@Override
- public NestedSet<Artifact> linkInputs() {
- return get(LINK_INPUTS);
+ public SkylarkNestedSet /*<Artifact>*/ linkInputs() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(LINK_INPUTS));
}
@Override
- public NestedSet<Artifact> linkedBinary() {
- return get(LINKED_BINARY);
+ public SkylarkNestedSet /*<Artifact>*/ linkedBinary() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(LINKED_BINARY));
}
@Override
- public NestedSet<Artifact> linkmapFile() {
- return get(LINKMAP_FILE);
+ public SkylarkNestedSet /*<Artifact>*/ linkmapFile() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(LINKMAP_FILE));
}
@Override
- public NestedSet<String> linkopt() {
- return get(LINKOPT);
+ public SkylarkNestedSet /*<String>*/ linkopt() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, get(LINKOPT));
}
@Override
- public NestedSet<Artifact> mergeZip() {
- return get(MERGE_ZIP);
+ public SkylarkNestedSet /*<Artifact>*/ mergeZip() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(MERGE_ZIP));
}
@Override
- public NestedSet<Artifact> moduleMap() {
- return get(MODULE_MAP);
+ public SkylarkNestedSet /*<Artifact>*/ moduleMap() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(MODULE_MAP));
}
@Override
@@ -499,23 +512,23 @@
}
@Override
- public NestedSet<Artifact> multiArchDynamicLibraries() {
- return get(MULTI_ARCH_DYNAMIC_LIBRARIES);
+ public SkylarkNestedSet /*<Artifact>*/ multiArchDynamicLibraries() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(MULTI_ARCH_DYNAMIC_LIBRARIES));
}
@Override
- public NestedSet<Artifact> multiArchLinkedArchives() {
- return get(MULTI_ARCH_LINKED_ARCHIVES);
+ public SkylarkNestedSet /*<Artifact>*/ multiArchLinkedArchives() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(MULTI_ARCH_LINKED_ARCHIVES));
}
@Override
- public NestedSet<Artifact> multiArchLinkedBinaries() {
- return get(MULTI_ARCH_LINKED_BINARIES);
+ public SkylarkNestedSet /*<Artifact>*/ multiArchLinkedBinaries() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(MULTI_ARCH_LINKED_BINARIES));
}
@Override
- public NestedSet<String> sdkDylib() {
- return get(SDK_DYLIB);
+ public SkylarkNestedSet /*<String>*/ sdkDylib() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, get(SDK_DYLIB));
}
@Override
@@ -525,7 +538,11 @@
}
@Override
- public NestedSet<Artifact> source() {
+ public SkylarkNestedSet /*<Artifact>*/ sourceForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, source());
+ }
+
+ NestedSet<Artifact> source() {
return get(SOURCE);
}
@@ -535,13 +552,17 @@
}
@Override
- public NestedSet<Artifact> staticFrameworkFile() {
+ public SkylarkNestedSet /*<Artifact>*/ staticFrameworkFileForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, staticFrameworkFile());
+ }
+
+ NestedSet<Artifact> staticFrameworkFile() {
return get(STATIC_FRAMEWORK_FILE);
}
@Override
- public NestedSet<Artifact> umbrellaHeader() {
- return get(UMBRELLA_HEADER);
+ public SkylarkNestedSet /*<Artifact>*/ umbrellaHeader() {
+ return SkylarkNestedSet.of(Artifact.TYPE, get(UMBRELLA_HEADER));
}
@Override
@@ -936,22 +957,38 @@
}
@Override
- public NestedSet<String> dynamicFrameworkNames() {
+ public SkylarkNestedSet /*<String>*/ dynamicFrameworkNamesForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, dynamicFrameworkNames());
+ }
+
+ NestedSet<String> dynamicFrameworkNames() {
return getFrameworkNames(DYNAMIC_FRAMEWORK_FILE);
}
@Override
- public NestedSet<String> dynamicFrameworkPaths() {
+ public SkylarkNestedSet /*<String>*/ dynamicFrameworkPathsForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, dynamicFrameworkPaths());
+ }
+
+ NestedSet<String> dynamicFrameworkPaths() {
return getFrameworkPaths(DYNAMIC_FRAMEWORK_FILE);
}
@Override
- public NestedSet<String> staticFrameworkNames() {
+ public SkylarkNestedSet /*<String>*/ staticFrameworkNamesForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, staticFrameworkNames());
+ }
+
+ NestedSet<String> staticFrameworkNames() {
return getFrameworkNames(STATIC_FRAMEWORK_FILE);
}
@Override
- public NestedSet<String> staticFrameworkPaths() {
+ public SkylarkNestedSet /*<String>*/ staticFrameworkPathsForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, staticFrameworkPaths());
+ }
+
+ NestedSet<String> staticFrameworkPaths() {
return getFrameworkPaths(STATIC_FRAMEWORK_FILE);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoInfo.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoInfo.java
index e6008dd..3fb6b57 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoInfo.java
@@ -24,6 +24,8 @@
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkbuildapi.ProtoInfoApi;
import com.google.devtools.build.lib.skylarkbuildapi.proto.ProtoBootstrap;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import com.google.devtools.build.lib.syntax.SkylarkType;
import com.google.devtools.build.lib.util.Pair;
import javax.annotation.Nullable;
@@ -122,6 +124,10 @@
/** The proto sources in the transitive closure of this rule. */
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveProtoSourcesForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, getTransitiveProtoSources());
+ }
+
public NestedSet<Artifact> getTransitiveProtoSources() {
return transitiveProtoSources;
}
@@ -131,14 +137,18 @@
* {@code protoc} in the specified order, via the {@code --proto_path} flag.
*/
@Override
+ public SkylarkNestedSet /*<String>*/ getTransitiveProtoSourceRootsForStarlark() {
+ return SkylarkNestedSet.of(SkylarkType.STRING, transitiveProtoSourceRoots);
+ }
+
public NestedSet<String> getTransitiveProtoSourceRoots() {
return transitiveProtoSourceRoots;
}
@Deprecated
@Override
- public NestedSet<Artifact> getTransitiveImports() {
- return getTransitiveProtoSources();
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveImports() {
+ return getTransitiveProtoSourcesForStarlark();
}
/**
@@ -149,6 +159,10 @@
* direct dependencies, but not from transitive ones)
*/
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getStrictImportableProtoSourcesForDependentsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, strictImportableProtoSourcesForDependents);
+ }
+
public NestedSet<Artifact> getStrictImportableProtoSourcesForDependents() {
return strictImportableProtoSourcesForDependents;
}
@@ -217,6 +231,10 @@
* direct-srcs descriptor set)
*/
@Override
+ public SkylarkNestedSet /*<Artifact>*/ getTransitiveDescriptorSetsForStarlark() {
+ return SkylarkNestedSet.of(Artifact.TYPE, transitiveDescriptorSets);
+ }
+
public NestedSet<Artifact> getTransitiveDescriptorSets() {
return transitiveDescriptorSets;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java
index c645e58..e4c2700 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java
@@ -14,11 +14,11 @@
package com.google.devtools.build.lib.skylarkbuildapi;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** A representation of the concept "this builds these files". */
@SkylarkModule(
@@ -43,5 +43,5 @@
* implicit targets, for example, deploy jars.
*/
@SkylarkCallable(name = "files_to_build", documented = false, structField = true)
- NestedSet<? extends FileApi> getFilesToBuild();
+ SkylarkNestedSet /*<? extends FileApi>*/ getFilesToBuildForStarlark();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/ProtoInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/ProtoInfoApi.java
index 66d542b..3e61b2a 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/ProtoInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/ProtoInfoApi.java
@@ -15,10 +15,10 @@
package com.google.devtools.build.lib.skylarkbuildapi;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** Info object propagating information about protocol buffer sources. */
@SkylarkModule(
@@ -43,7 +43,7 @@
name = "transitive_imports",
doc = "Transitive imports including weak dependencies.",
structField = true)
- public NestedSet<FileT> getTransitiveImports();
+ public SkylarkNestedSet /*<FileT>*/ getTransitiveImports();
@SkylarkCallable(
name = "transitive_sources",
@@ -52,7 +52,7 @@
// TODO(bazel-team): The difference between transitive imports and transitive proto sources
// should never be used by Skylark or by an Aspect. One of these two should be removed,
// preferably soon, before Skylark users start depending on them.
- public NestedSet<FileT> getTransitiveProtoSources();
+ public SkylarkNestedSet /*<FileT>*/ getTransitiveProtoSourcesForStarlark();
@SkylarkCallable(
name = "direct_sources",
@@ -67,7 +67,7 @@
+ "that has no sources, it contains the check_deps_sources "
+ "from this library's direct deps.",
structField = true)
- public NestedSet<FileT> getStrictImportableProtoSourcesForDependents();
+ public SkylarkNestedSet /*<FileT>*/ getStrictImportableProtoSourcesForDependentsForStarlark();
@SkylarkCallable(
name = "direct_descriptor_set",
@@ -87,13 +87,13 @@
+ " as passing --include_imports to proto-compiler. Will be empty if no"
+ " dependencies.",
structField = true)
- public NestedSet<FileT> getTransitiveDescriptorSets();
+ public SkylarkNestedSet /*<FileT>*/ getTransitiveDescriptorSetsForStarlark();
@SkylarkCallable(
name = "transitive_proto_path",
doc = "A set of proto source roots collected from the transitive closure of this rule.",
structField = true)
- public NestedSet<String> getTransitiveProtoSourceRoots();
+ public SkylarkNestedSet /*<String>*/ getTransitiveProtoSourceRootsForStarlark();
@SkylarkCallable(
name = "proto_source_root",
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/RunfilesApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/RunfilesApi.java
index d868e33..c41e2b0 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/RunfilesApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/RunfilesApi.java
@@ -14,12 +14,12 @@
package com.google.devtools.build.lib.skylarkbuildapi;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** An interface for a set of runfiles. */
@SkylarkModule(
@@ -33,27 +33,25 @@
public interface RunfilesApi extends SkylarkValue {
@SkylarkCallable(
- name = "files",
- doc = "Returns the set of runfiles as files.",
- structField = true
- )
- public NestedSet<? extends FileApi> getArtifacts();
+ name = "files",
+ doc = "Returns the set of runfiles as files.",
+ structField = true)
+ public SkylarkNestedSet /*<? extends FileApi>*/ getArtifactsForStarlark();
@SkylarkCallable(name = "symlinks", doc = "Returns the set of symlinks.", structField = true)
- public NestedSet<? extends SymlinkEntryApi> getSymlinks();
+ public SkylarkNestedSet /*<? extends SymlinkEntryApi>*/ getSymlinksForStarlark();
@SkylarkCallable(
name = "root_symlinks",
doc = "Returns the set of root symlinks.",
structField = true)
- public NestedSet<? extends SymlinkEntryApi> getRootSymlinks();
+ public SkylarkNestedSet /*<? extends SymlinkEntryApi>*/ getRootSymlinksForStarlark();
@SkylarkCallable(
- name = "empty_filenames",
- doc = "Returns names of empty files to create.",
- structField = true
- )
- public NestedSet<String> getEmptyFilenames();
+ name = "empty_filenames",
+ doc = "Returns names of empty files to create.",
+ structField = true)
+ public SkylarkNestedSet /*<String>*/ getEmptyFilenamesForStarlark();
@SkylarkCallable(
name = "merge",
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java
index 91867a0..a32a1d1 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java
@@ -15,7 +15,6 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -62,7 +61,7 @@
FileApi getValidationResult();
@SkylarkCallable(name = "direct_parsed_assets", structField = true, doc = "", documented = false)
- NestedSet<AssetsT> getDirectParsedAssets();
+ SkylarkNestedSet /*<AssetsT>*/ getDirectParsedAssetsForStarlark();
/** Returns the local assets for the target. */
@SkylarkCallable(
@@ -87,16 +86,16 @@
structField = true,
doc = "",
documented = false)
- NestedSet<AssetsT> getTransitiveParsedAssets();
+ SkylarkNestedSet /*<AssetsT>*/ getTransitiveParsedAssetsForStarlark();
@SkylarkCallable(name = "assets", structField = true, doc = "", documented = false)
- NestedSet<FileT> getAssets();
+ SkylarkNestedSet /*<FileT>*/ getAssetsForStarlark();
@SkylarkCallable(name = "symbols", structField = true, doc = "", documented = false)
- NestedSet<FileT> getSymbols();
+ SkylarkNestedSet /*<FileT>*/ getSymbolsForStarlark();
@SkylarkCallable(name = "compiled_symbols", structField = true, doc = "", documented = false)
- NestedSet<FileT> getCompiledSymbols();
+ SkylarkNestedSet /*<FileT>*/ getCompiledSymbolsForStarlark();
/** The provider implementing this can construct the AndroidAssetsInfo provider. */
@SkylarkModule(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java
index 2d57de2..f1ce426 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.skylarkbuildapi.android;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -48,7 +47,7 @@
structField = true,
doc = "Returns a depset of strings of all the idl import roots.",
documented = false)
- NestedSet<String> getTransitiveIdlImportRoots();
+ SkylarkNestedSet /*<String>*/ getTransitiveIdlImportRootsForStarlark();
/** The IDL files in the transitive closure. */
@SkylarkCallable(
@@ -56,7 +55,7 @@
structField = true,
doc = "Returns a depset of artifacts of all the idl imports.",
documented = false)
- NestedSet<FileT> getTransitiveIdlImports();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveIdlImportsForStarlark();
/** The IDL jars in the transitive closure, both class and source jars. */
@SkylarkCallable(
@@ -64,7 +63,7 @@
structField = true,
doc = "Returns a depset of artifacts of all the idl class and source jars.",
documented = false)
- NestedSet<FileT> getTransitiveIdlJars();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveIdlJarsForStarlark();
/** The preprocessed IDL files in the transitive closure. */
@SkylarkCallable(
@@ -72,7 +71,7 @@
structField = true,
doc = "Returns a depset of artifacts of all the idl preprocessed files.",
documented = false)
- NestedSet<FileT> getTransitiveIdlPreprocessed();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveIdlPreprocessedForStarlark();
/** The provider implementing this can construct the AndroidIdlInfo provider. */
@SkylarkModule(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryAarInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryAarInfoApi.java
index d2467f9..229d9f1 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryAarInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryAarInfoApi.java
@@ -13,12 +13,12 @@
// limitations under the License.
package com.google.devtools.build.lib.skylarkbuildapi.android;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** A target that can provide the aar artifact of Android libraries */
@SkylarkModule(
@@ -47,5 +47,5 @@
doc = "",
documented = false,
structField = true)
- NestedSet<FileT> getTransitiveAarArtifacts();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveAarArtifactsForStarlark();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java
index 6b6a87f..5041f11 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.skylarkbuildapi.android;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -40,7 +39,7 @@
String NAME = "AndroidLibraryResourceClassJarProvider";
@SkylarkCallable(name = "jars", structField = true, doc = "", documented = false)
- NestedSet<FileT> getResourceClassJars();
+ SkylarkNestedSet /*<FileT>*/ getResourceClassJarsForStarlark();
/** The provider implementing this can construct the AndroidLibraryResourceClassJarProvider. */
@SkylarkModule(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidNativeLibsInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidNativeLibsInfoApi.java
index d6781221..4b1b7f7 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidNativeLibsInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidNativeLibsInfoApi.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.skylarkbuildapi.android;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -46,7 +45,7 @@
doc = "Returns the native libraries produced by the rule.",
documented = false,
structField = true)
- NestedSet<FileT> getNativeLibs();
+ SkylarkNestedSet /*<FileT>*/ getNativeLibsForStarlark();
/** Provider for {@link AndroidNativeLibsInfoApi}. */
@SkylarkModule(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java
index e13e67b..2ac36ba 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skylarkbuildapi.android;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -74,7 +73,7 @@
doc = "Returns the transitive ResourceContainers for the label.",
documented = false,
structField = true)
- NestedSet<ValidatedAndroidDataT> getTransitiveAndroidResources();
+ SkylarkNestedSet /*<ValidatedAndroidDataT>*/ getTransitiveAndroidResourcesForStarlark();
/** Returns the immediate ResourceContainers for the label. */
@SkylarkCallable(
@@ -82,44 +81,44 @@
doc = "Returns the immediate ResourceContainers for the label.",
documented = false,
structField = true)
- NestedSet<ValidatedAndroidDataT> getDirectAndroidResources();
+ SkylarkNestedSet /*<ValidatedAndroidDataT>*/ getDirectAndroidResourcesForStarlark();
@SkylarkCallable(name = "transitive_resources", doc = "", documented = false, structField = true)
- NestedSet<FileT> getTransitiveResources();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveResourcesForStarlark();
@SkylarkCallable(name = "transitive_manifests", doc = "", documented = false, structField = true)
- NestedSet<FileT> getTransitiveManifests();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveManifestsForStarlark();
@SkylarkCallable(
name = "transitive_aapt2_r_txt",
doc = "",
documented = false,
structField = true)
- NestedSet<FileT> getTransitiveAapt2RTxt();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveAapt2RTxtForStarlark();
// TODO(b/132383435): remove this
@SkylarkCallable(name = "validation_artifacts", doc = "", documented = false, structField = true)
- NestedSet<FileT> getTransitiveAapt2ValidationArtifacts();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveAapt2ValidationArtifactsForStarlark();
@SkylarkCallable(
name = "transitive_symbols_bin",
doc = "",
documented = false,
structField = true)
- NestedSet<FileT> getTransitiveSymbolsBin();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveSymbolsBinForStarlark();
@SkylarkCallable(
name = "transitive_compiled_symbols",
doc = "",
documented = false,
structField = true)
- NestedSet<FileT> getTransitiveCompiledSymbols();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveCompiledSymbolsForStarlark();
@SkylarkCallable(name = "transitive_static_lib", doc = "", documented = false, structField = true)
- NestedSet<FileT> getTransitiveStaticLib();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveStaticLibForStarlark();
@SkylarkCallable(name = "transitive_r_txt", doc = "", documented = false, structField = true)
- NestedSet<FileT> getTransitiveRTxt();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveRTxtForStarlark();
/** Provider for {@link AndroidResourcesInfoApi}. */
@SkylarkModule(
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidSkylarkApiProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidSkylarkApiProviderApi.java
index 5c3bf0f..90969a0 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidSkylarkApiProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidSkylarkApiProviderApi.java
@@ -15,7 +15,6 @@
import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.java.OutputJarApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
@@ -125,7 +124,7 @@
structField = true,
doc = "Returns resources defined by this target.",
documented = false)
- NestedSet<FileT> getResources();
+ SkylarkNestedSet /*<FileT>*/ getResources();
@SkylarkCallable(
name = "resource_jar",
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/DataBindingV2ProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/DataBindingV2ProviderApi.java
index ee3544c..aee7c21 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/DataBindingV2ProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/DataBindingV2ProviderApi.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skylarkbuildapi.android;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -25,6 +24,7 @@
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.Sequence;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import javax.annotation.Nullable;
/**
@@ -92,18 +92,18 @@
/** Returns the BR files from this rule and its dependencies. */
@SkylarkCallable(name = "transitive_br_files", structField = true, doc = "", documented = false)
- NestedSet<T> getTransitiveBRFiles();
+ SkylarkNestedSet /*<T>*/ getTransitiveBRFilesForStarlark();
/**
* Returns a NestedSet containing the label and java package for this rule and its transitive
* dependencies.
- * */
+ */
@SkylarkCallable(
name = "transitive_label_and_java_packages",
structField = true,
doc = "",
documented = false)
- NestedSet<LabelJavaPackagePair> getTransitiveLabelAndJavaPackages();
+ SkylarkNestedSet /*<LabelJavaPackagePair>*/ getTransitiveLabelAndJavaPackagesForStarlark();
/**
* Returns the label and java package for this rule and any rules that this rule exports.
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/ObjcProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/ObjcProviderApi.java
index 1e023fc..308d022 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/ObjcProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/ObjcProviderApi.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skylarkbuildapi.apple;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
@@ -34,12 +33,13 @@
)
public interface ObjcProviderApi<FileApiT extends FileApi> extends SkylarkValue {
- @SkylarkCallable(name = "define",
+ @SkylarkCallable(
+ name = "define",
structField = true,
- doc = "A set of strings from 'defines' attributes. These are to be passed as '-D' flags to "
- + "all invocations of the compiler for this target and all depending targets."
- )
- public NestedSet<String> define();
+ doc =
+ "A set of strings from 'defines' attributes. These are to be passed as '-D' flags to "
+ + "all invocations of the compiler for this target and all depending targets.")
+ public SkylarkNestedSet /*<String>*/ defineForStarlark();
@SkylarkCallable(
name = "dynamic_framework_file",
@@ -47,32 +47,33 @@
doc =
"The library files in .framework directories belonging to a dynamically linked "
+ "framework.")
- public NestedSet<FileApiT> dynamicFrameworkFile();
+ public SkylarkNestedSet /*<FileApiT>*/ dynamicFrameworkFileForStarlark();
- @SkylarkCallable(name = "exported_debug_artifacts",
+ @SkylarkCallable(
+ name = "exported_debug_artifacts",
structField = true,
- doc = "Debug files that should be exported by the top-level target."
- )
- public NestedSet<FileApiT> exportedDebugArtifacts();
+ doc = "Debug files that should be exported by the top-level target.")
+ public SkylarkNestedSet /*<FileApiT>*/ exportedDebugArtifacts();
- @SkylarkCallable(name = "framework_search_path_only",
+ @SkylarkCallable(
+ name = "framework_search_path_only",
structField = true,
- doc = "Exec paths of .framework directories corresponding to frameworks to include "
- + "in search paths, but not to link."
- )
- public SkylarkNestedSet frameworkSearchPathOnly();
+ doc =
+ "Exec paths of .framework directories corresponding to frameworks to include "
+ + "in search paths, but not to link.")
+ public SkylarkNestedSet /*<String>*/ frameworkSearchPathOnly();
- @SkylarkCallable(name = "force_load_library",
+ @SkylarkCallable(
+ name = "force_load_library",
structField = true,
- doc = "Libraries to load with -force_load."
- )
- public NestedSet<FileApiT> forceLoadLibrary();
+ doc = "Libraries to load with -force_load.")
+ public SkylarkNestedSet /*<FileApiT>*/ forceLoadLibrary();
- @SkylarkCallable(name = "header",
+ @SkylarkCallable(
+ name = "header",
structField = true,
- doc = "All header files. These may be either public or private headers."
- )
- public NestedSet<FileApiT> header();
+ doc = "All header files. These may be either public or private headers.")
+ public SkylarkNestedSet /*<FileApiT>*/ headerForStarlark();
@SkylarkCallable(
name = "direct_headers",
@@ -82,11 +83,11 @@
+ "These may be either public or private headers.")
public Sequence<FileApiT> directHeaders();
- @SkylarkCallable(name = "imported_library",
+ @SkylarkCallable(
+ name = "imported_library",
structField = true,
- doc = "Imported precompiled static libraries (.a files) to be linked into the binary."
- )
- public NestedSet<FileApiT> importedLibrary();
+ doc = "Imported precompiled static libraries (.a files) to be linked into the binary.")
+ public SkylarkNestedSet /*<FileApiT>*/ importedLibrary();
@SkylarkCallable(name = "include",
structField = true,
@@ -107,51 +108,50 @@
)
public SkylarkNestedSet iquote();
- @SkylarkCallable(name = "j2objc_library",
+ @SkylarkCallable(
+ name = "j2objc_library",
structField = true,
- doc = "Static libraries that are built from J2ObjC-translated Java code."
- )
- public NestedSet<FileApiT> j2objcLibrary();
+ doc = "Static libraries that are built from J2ObjC-translated Java code.")
+ public SkylarkNestedSet /*<FileApiT>*/ j2objcLibrary();
- @SkylarkCallable(name = "jre_library",
+ @SkylarkCallable(
+ name = "jre_library",
structField = true,
- doc = "J2ObjC JRE emulation libraries and their dependencies."
- )
- public NestedSet<FileApiT> jreLibrary();
+ doc = "J2ObjC JRE emulation libraries and their dependencies.")
+ public SkylarkNestedSet /*<FileApiT>*/ jreLibrary();
- @SkylarkCallable(name = "library",
+ @SkylarkCallable(
+ name = "library",
structField = true,
- doc = "Library (.a) files compiled by dependencies of the current target."
- )
- public NestedSet<FileApiT> library();
+ doc = "Library (.a) files compiled by dependencies of the current target.")
+ public SkylarkNestedSet /*<FileApiT>*/ library();
- @SkylarkCallable(name = "link_inputs",
+ @SkylarkCallable(
+ name = "link_inputs",
structField = true,
- doc = "Link time artifacts from dependencies that do not fall into any other category such "
- + "as libraries or archives. This catch-all provides a way to add arbitrary data (e.g. "
- + "Swift AST files) to the linker. The rule that adds these is also responsible to "
- + "add the necessary linker flags to 'linkopt'."
- )
- public NestedSet<FileApiT> linkInputs();
+ doc =
+ "Link time artifacts from dependencies that do not fall into any other category such as"
+ + " libraries or archives. This catch-all provides a way to add arbitrary data (e.g."
+ + " Swift AST files) to the linker. The rule that adds these is also responsible to"
+ + " add the necessary linker flags to 'linkopt'.")
+ public SkylarkNestedSet /*<FileApiT>*/ linkInputs();
- @SkylarkCallable(name = "linked_binary",
+ @SkylarkCallable(
+ name = "linked_binary",
structField = true,
- doc = "Single-architecture linked binaries to be combined for the final multi-architecture "
- + "binary."
- )
- public NestedSet<FileApiT> linkedBinary();
+ doc =
+ "Single-architecture linked binaries to be combined for the final multi-architecture "
+ + "binary.")
+ public SkylarkNestedSet /*<FileApiT>*/ linkedBinary();
- @SkylarkCallable(name = "linkmap_file",
+ @SkylarkCallable(
+ name = "linkmap_file",
structField = true,
- doc = "Single-architecture link map for a binary."
- )
- public NestedSet<FileApiT> linkmapFile();
+ doc = "Single-architecture link map for a binary.")
+ public SkylarkNestedSet /*<FileApiT>*/ linkmapFile();
- @SkylarkCallable(name = "linkopt",
- structField = true,
- doc = "Linking options."
- )
- public NestedSet<String> linkopt();
+ @SkylarkCallable(name = "linkopt", structField = true, doc = "Linking options.")
+ public SkylarkNestedSet /*<String>*/ linkopt();
@SkylarkCallable(
name = "merge_zip",
@@ -160,13 +160,13 @@
"Merge zips to include in the bundle. The entries of these zip files are included "
+ "in the final bundle with the same path. The entries in the merge zips should not "
+ "include the bundle root path (e.g. 'Foo.app').")
- public NestedSet<FileApiT> mergeZip();
+ public SkylarkNestedSet /*<FileApiT>*/ mergeZip();
- @SkylarkCallable(name = "module_map",
+ @SkylarkCallable(
+ name = "module_map",
structField = true,
- doc = "Clang module maps, used to enforce proper use of private header files."
- )
- public NestedSet<FileApiT> moduleMap();
+ doc = "Clang module maps, used to enforce proper use of private header files.")
+ public SkylarkNestedSet /*<FileApiT>*/ moduleMap();
@SkylarkCallable(
name = "direct_module_maps",
@@ -176,29 +176,29 @@
+ "Used to enforce proper use of private header files and for Swift compilation.")
public Sequence<FileApiT> directModuleMaps();
- @SkylarkCallable(name = "multi_arch_dynamic_libraries",
+ @SkylarkCallable(
+ name = "multi_arch_dynamic_libraries",
structField = true,
- doc = "Combined-architecture dynamic libraries to include in the final bundle."
- )
- public NestedSet<FileApiT> multiArchDynamicLibraries();
+ doc = "Combined-architecture dynamic libraries to include in the final bundle.")
+ public SkylarkNestedSet /*<FileApiT>*/ multiArchDynamicLibraries();
- @SkylarkCallable(name = "multi_arch_linked_archives",
+ @SkylarkCallable(
+ name = "multi_arch_linked_archives",
structField = true,
- doc = "Combined-architecture archives to include in the final bundle."
- )
- public NestedSet<FileApiT> multiArchLinkedArchives();
+ doc = "Combined-architecture archives to include in the final bundle.")
+ public SkylarkNestedSet /*<FileApiT>*/ multiArchLinkedArchives();
- @SkylarkCallable(name = "multi_arch_linked_binaries",
+ @SkylarkCallable(
+ name = "multi_arch_linked_binaries",
structField = true,
- doc = "Combined-architecture binaries to include in the final bundle."
- )
- public NestedSet<FileApiT> multiArchLinkedBinaries();
+ doc = "Combined-architecture binaries to include in the final bundle.")
+ public SkylarkNestedSet /*<FileApiT>*/ multiArchLinkedBinaries();
- @SkylarkCallable(name = "sdk_dylib",
+ @SkylarkCallable(
+ name = "sdk_dylib",
structField = true,
- doc = "Names of SDK .dylib libraries to link with. For instance, 'libz' or 'libarchive'."
- )
- public NestedSet<String> sdkDylib();
+ doc = "Names of SDK .dylib libraries to link with. For instance, 'libz' or 'libarchive'.")
+ public SkylarkNestedSet /*<String>*/ sdkDylib();
@SkylarkCallable(name = "sdk_framework",
structField = true,
@@ -206,11 +206,8 @@
)
public SkylarkNestedSet sdkFramework();
- @SkylarkCallable(name = "source",
- structField = true,
- doc = "All transitive source files."
- )
- public NestedSet<FileApiT> source();
+ @SkylarkCallable(name = "source", structField = true, doc = "All transitive source files.")
+ public SkylarkNestedSet /*<FileApiT>*/ sourceForStarlark();
@SkylarkCallable(
name = "direct_sources",
@@ -222,14 +219,15 @@
name = "static_framework_file",
structField = true,
doc = "The library files in .framework directories that should be statically linked.")
- public NestedSet<FileApiT> staticFrameworkFile();
+ public SkylarkNestedSet /*<FileApiT>*/ staticFrameworkFileForStarlark();
- @SkylarkCallable(name = "umbrella_header",
+ @SkylarkCallable(
+ name = "umbrella_header",
structField = true,
- doc = "Clang umbrella header. Public headers are #included in umbrella headers to be "
- + "compatible with J2ObjC segmented headers."
- )
- public NestedSet<FileApiT> umbrellaHeader();
+ doc =
+ "Clang umbrella header. Public headers are #included in umbrella headers to be "
+ + "compatible with J2ObjC segmented headers.")
+ public SkylarkNestedSet /*<FileApiT>*/ umbrellaHeader();
@SkylarkCallable(
name = "weak_sdk_framework",
@@ -244,23 +242,23 @@
name = "dynamic_framework_names",
structField = true,
doc = "Returns all names of dynamic frameworks in this provider.")
- public NestedSet<String> dynamicFrameworkNames();
+ public SkylarkNestedSet /*<String>*/ dynamicFrameworkNamesForStarlark();
@SkylarkCallable(
name = "dynamic_framework_paths",
structField = true,
doc = "Returns all framework paths to dynamic frameworks in this provider.")
- public NestedSet<String> dynamicFrameworkPaths();
+ public SkylarkNestedSet /*<String>*/ dynamicFrameworkPathsForStarlark();
@SkylarkCallable(
name = "static_framework_names",
structField = true,
doc = "Returns all names of static frameworks in this provider.")
- public NestedSet<String> staticFrameworkNames();
+ public SkylarkNestedSet /*<String>*/ staticFrameworkNamesForStarlark();
@SkylarkCallable(
name = "static_framework_paths",
structField = true,
doc = "Returns all framework paths to static frameworks in this provider.")
- public NestedSet<String> staticFrameworkPaths();
+ public SkylarkNestedSet /*<String>*/ staticFrameworkPathsForStarlark();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcSkylarkApiProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcSkylarkApiProviderApi.java
index 3788c1b..13869ef 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcSkylarkApiProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcSkylarkApiProviderApi.java
@@ -15,12 +15,12 @@
package com.google.devtools.build.lib.skylarkbuildapi.cpp;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** Object with information about C++ rules. Every C++-related target should provide this. */
@SkylarkModule(
@@ -39,7 +39,7 @@
"Returns a <a href=\"depset.html\">depset</a> of headers that have been declared in the "
+ " <code>src</code> or <code>headers</code> attribute"
+ "(possibly empty but never <code>None</code>).")
- public NestedSet<FileT> getTransitiveHeaders();
+ public SkylarkNestedSet /*<FileT>*/ getTransitiveHeadersForStarlark();
@SkylarkCallable(
name = "libs",
@@ -49,7 +49,7 @@
+ "<code>FULLY STATIC</code> mode (<code>linkopts=[\"-static\"]</code>) or "
+ "<code>MOSTLY STATIC</code> mode (<code>linkstatic=1</code>) "
+ "(possibly empty but never <code>None</code>)")
- public NestedSet<FileT> getLibraries();
+ public SkylarkNestedSet /*<FileT>*/ getLibrariesForStarlark();
@SkylarkCallable(
name = "link_flags",
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/GoWrapCcHelperApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/GoWrapCcHelperApi.java
index 37d4010..c67f048 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/GoWrapCcHelperApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/GoWrapCcHelperApi.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skylarkbuildapi.cpp;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.RunfilesApi;
import com.google.devtools.build.lib.skylarkbuildapi.SkylarkRuleContextApi;
@@ -30,6 +29,7 @@
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.NoneType;
import com.google.devtools.build.lib.syntax.Sequence;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.syntax.Tuple;
/**
@@ -213,6 +213,6 @@
named = true,
allowedTypes = {@ParamType(type = NoneType.class), @ParamType(type = FileApi.class)}),
})
- public NestedSet<FileT> getGopackageFiles(
+ public SkylarkNestedSet /*<FileT>*/ getGopackageFilesForStarlark(
SkylarkRuleContextT skylarkRuleContext, FileT skylarkGopkg);
}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/GeneratedExtensionRegistryProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/GeneratedExtensionRegistryProviderApi.java
index e5ecec9..633f427 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/GeneratedExtensionRegistryProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/GeneratedExtensionRegistryProviderApi.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skylarkbuildapi.java;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -49,7 +48,7 @@
FileT getSrcJar();
@SkylarkCallable(name = "inputs", structField = true, doc = "", documented = false)
- NestedSet<FileT> getInputs();
+ SkylarkNestedSet /*<FileT>*/ getInputsForStarlark();
/** The provider implementing this can construct the GeneratedExtensionRegistryProvider. */
@SkylarkModule(name = "Provider", doc = "", documented = false)
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/JavaAnnotationProcessingApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/JavaAnnotationProcessingApi.java
index 6be778c..9317502 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/JavaAnnotationProcessingApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/JavaAnnotationProcessingApi.java
@@ -15,12 +15,12 @@
package com.google.devtools.build.lib.skylarkbuildapi.java;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import javax.annotation.Nullable;
/**
@@ -59,29 +59,26 @@
public FileTypeT getGenSourceJar();
@SkylarkCallable(
- name = "transitive_class_jars",
- structField = true,
- doc =
- "Returns a transitive set of class file jars resulting from annotation "
- + "processing of this rule and its dependencies."
- )
- public NestedSet<FileTypeT> getTransitiveGenClassJars();
+ name = "transitive_class_jars",
+ structField = true,
+ doc =
+ "Returns a transitive set of class file jars resulting from annotation "
+ + "processing of this rule and its dependencies.")
+ public SkylarkNestedSet /*<FileTypeT>*/ getTransitiveGenClassJarsForStarlark();
@SkylarkCallable(
- name = "transitive_source_jars",
- structField = true,
- doc =
- "Returns a transitive set of source archives resulting from annotation processing "
- + "of this rule and its dependencies."
- )
- public NestedSet<FileTypeT> getTransitiveGenSourceJars();
+ name = "transitive_source_jars",
+ structField = true,
+ doc =
+ "Returns a transitive set of source archives resulting from annotation processing "
+ + "of this rule and its dependencies.")
+ public SkylarkNestedSet /*<FileTypeT>*/ getTransitiveGenSourceJarsForStarlark();
@SkylarkCallable(
- name = "processor_classpath",
- structField = true,
- doc = "Returns a classpath of annotation processors applied to this rule."
- )
- public NestedSet<FileTypeT> getProcessorClasspath();
+ name = "processor_classpath",
+ structField = true,
+ doc = "Returns a classpath of annotation processors applied to this rule.")
+ public SkylarkNestedSet /*<FileTypeT>*/ getProcessorClasspathForStarlark();
@SkylarkCallable(
name = "processor_classnames",
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java
index 4e20a0f..8985e03 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.skylarkbuildapi.java;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
@@ -35,7 +34,7 @@
public static final String NAME = "ProguardSpecProvider";
@SkylarkCallable(name = "specs", structField = true, doc = "", documented = false)
- NestedSet<FileT> getTransitiveProguardSpecs();
+ SkylarkNestedSet /*<FileT>*/ getTransitiveProguardSpecsForStarlark();
/** The provider implementing this can construct the ProguardSpecProvider. */
@SkylarkModule(name = "Provider", doc = "", documented = false)
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/ProtoRegistryProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/ProtoRegistryProviderApi.java
index e65decf..9e30dd7 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/ProtoRegistryProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/proto/ProtoRegistryProviderApi.java
@@ -14,13 +14,13 @@
package com.google.devtools.build.lib.skylarkbuildapi.proto;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.syntax.Sequence;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** Provides information about flavors for all built protos. */
@SkylarkModule(
@@ -30,7 +30,7 @@
public interface ProtoRegistryProviderApi<FileT extends FileApi> extends StructApi {
@SkylarkCallable(name = "jars", documented = false, doc = "", structField = true)
- NestedSet<FileT> getJars();
+ SkylarkNestedSet /*<FileT>*/ getJars();
@SkylarkCallable(name = "flavors", documented = false, doc = "", structField = true)
Sequence<String> getFlavors();
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java b/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java
index d7930e3..64bb882 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java
@@ -37,8 +37,11 @@
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.MirroredTypeException;
+import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.type.WildcardType;
+import javax.lang.model.util.Elements;
+import javax.lang.model.util.Types;
import javax.tools.Diagnostic;
/**
@@ -74,6 +77,8 @@
* <li>A method annotated with selfCall=true must have a non-empty name.
* <li>A method annotated with selfCall=true must have structField=false.
* <li>The method's class must implement SkylarkValue.
+ * <li>The class of the declared result type, if final, must be accepted by {@link
+ * Starlark#fromJava}.
* </ul>
*
* <p>These properties can be relied upon at runtime without additional checks.
@@ -84,7 +89,6 @@
"com.google.devtools.build.lib.skylarkinterface.SkylarkModule"
})
public final class SkylarkCallableProcessor extends AbstractProcessor {
- private ProcessingEnvironment env;
private Messager messager;
// A set containing the names of all classes which have a method with @SkylarkCallable.selfCall.
@@ -93,6 +97,9 @@
// that class (where "method name" is @SkylarkCallable.name").
private SetMultimap<String, String> processedClassMethods;
+ private Types types;
+ private Elements elements;
+
private static final String SKYLARK_LIST = "com.google.devtools.build.lib.syntax.Sequence<?>";
private static final String SKYLARK_DICT = "com.google.devtools.build.lib.syntax.Dict<?,?>";
private static final String LOCATION = "com.google.devtools.build.lib.events.Location";
@@ -101,8 +108,6 @@
"com.google.devtools.build.lib.syntax.StarlarkThread";
private static final String STARLARK_SEMANTICS =
"com.google.devtools.build.lib.syntax.StarlarkSemantics";
- private static final String SKYLARK_VALUE =
- "com.google.devtools.build.lib.skylarkinterface.SkylarkValue";
@Override
public SourceVersion getSupportedSourceVersion() {
@@ -112,22 +117,30 @@
@Override
public synchronized void init(ProcessingEnvironment env) {
super.init(env);
- this.env = env;
+ this.types = env.getTypeUtils();
+ this.elements = env.getElementUtils();
messager = env.getMessager();
classesWithSelfcall = new HashSet<>();
processedClassMethods = LinkedHashMultimap.create();
}
+ private TypeMirror getType(String name) {
+ return elements.getTypeElement(name).asType();
+ }
+
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ TypeMirror stringType = getType("java.lang.String");
+ TypeMirror integerType = getType("java.lang.Integer");
+ TypeMirror booleanType = getType("java.lang.Boolean");
+ TypeMirror listType = getType("java.util.List");
+ TypeMirror mapType = getType("java.util.Map");
+ TypeMirror skylarkValueType =
+ getType("com.google.devtools.build.lib.skylarkinterface.SkylarkValue");
+
// Ensure SkylarkModule-annotated classes implement SkylarkValue.
- TypeElement skylarkValueType = env.getElementUtils().getTypeElement(SKYLARK_VALUE);
- if (skylarkValueType == null) {
- messager.printMessage(Diagnostic.Kind.ERROR, "no SkylarkValue type in compilation unit");
- return true;
- }
for (Element cls : roundEnv.getElementsAnnotatedWith(SkylarkModule.class)) {
- if (!env.getTypeUtils().isAssignable(cls.asType(), skylarkValueType.asType())) {
+ if (!types.isAssignable(cls.asType(), skylarkValueType)) {
error(
cls,
String.format(
@@ -175,11 +188,31 @@
error(exception.methodElement, exception.errorMessage);
}
+ // Verify that result type, if final, might satisfy Starlark.fromJava.
+ // (If the type is non-final we can't prove that all subclasses are invalid.)
+ TypeMirror ret = methodElement.getReturnType();
+ if (ret.getKind() == TypeKind.DECLARED) {
+ DeclaredType obj = (DeclaredType) ret;
+ if (obj.asElement().getModifiers().contains(Modifier.FINAL)
+ && !types.isSameType(ret, stringType)
+ && !types.isSameType(ret, integerType)
+ && !types.isSameType(ret, booleanType)
+ && !types.isAssignable(obj, skylarkValueType)
+ && !types.isAssignable(obj, listType)
+ && !types.isAssignable(obj, mapType)) {
+ error(
+ methodElement,
+ String.format(
+ "@SkylarkCallable-annotated method %s returns %s, which has no legal Starlark"
+ + " values (see Starlark.fromJava)",
+ methodElement.getSimpleName(), ret));
+ }
+ }
+
// Check that the method's class is SkylarkGlobalLibrary-annotated,
// or implements SkylarkValue, or an error has already been reported.
Element cls = methodElement.getEnclosingElement();
- if (okClasses.add(cls)
- && !env.getTypeUtils().isAssignable(cls.asType(), skylarkValueType.asType())) {
+ if (okClasses.add(cls) && !types.isAssignable(cls.asType(), skylarkValueType)) {
error(
cls,
String.format(
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/MethodDescriptor.java b/src/main/java/com/google/devtools/build/lib/syntax/MethodDescriptor.java
index c1414a2..978075d 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/MethodDescriptor.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/MethodDescriptor.java
@@ -17,14 +17,10 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.WildcardType;
import java.util.Arrays;
/**
@@ -165,38 +161,10 @@
}
}
- // TODO(adonovan): eliminate this hack.
- // There are about a dozen methods that return NestedSet directly.
- if (result instanceof NestedSet<?>) {
- return SkylarkNestedSet.of(resultType(), (NestedSet<?>) result);
- }
-
// Careful: thread may be null when we are called by invokeStructField.
return Starlark.fromJava(result, thread != null ? thread.mutability() : null);
}
- // legacy hack for NestedSet
- private SkylarkType resultType() {
- // This is where we can infer generic type information, so SkylarkNestedSets can be
- // created in a safe way. Eventually we should probably do something with Lists and Maps too.
- ParameterizedType t = (ParameterizedType) method.getGenericReturnType();
- Type type = t.getActualTypeArguments()[0];
- if (type instanceof Class) {
- return SkylarkType.of((Class<?>) type);
- }
- if (type instanceof WildcardType) {
- WildcardType wildcard = (WildcardType) type;
- Type upperBound = wildcard.getUpperBounds()[0];
- if (upperBound instanceof Class) {
- // i.e. List<? extends SuperClass>
- return SkylarkType.of((Class<?>) upperBound);
- }
- }
- // It means someone annotated a method with @SkylarkCallable with no specific generic type info.
- // We shouldn't annotate methods which return List<?> or List<T>.
- throw new IllegalStateException("Cannot infer type from method signature " + method);
- }
-
/** @see SkylarkCallable#name() */
public String getName() {
return name;
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidNativeLibsInfo.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidNativeLibsInfo.java
index c93e0a4..539f495 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidNativeLibsInfo.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidNativeLibsInfo.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.skydoc.fakebuildapi.android;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidNativeLibsInfoApi;
@@ -28,7 +27,7 @@
public class FakeAndroidNativeLibsInfo implements AndroidNativeLibsInfoApi<FileApi> {
@Override
- public NestedSet<FileApi> getNativeLibs() {
+ public SkylarkNestedSet /*<FileApi>*/ getNativeLibsForStarlark() {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidResourcesInfo.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidResourcesInfo.java
index 87d706c..3e974a9 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidResourcesInfo.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/android/FakeAndroidResourcesInfo.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.skydoc.fakebuildapi.android;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidManifestInfoApi;
@@ -53,52 +52,53 @@
}
@Override
- public NestedSet<FakeValidatedAndroidDataApi> getTransitiveAndroidResources() {
+ public SkylarkNestedSet /*<FakeValidatedAndroidDataApi>*/
+ getTransitiveAndroidResourcesForStarlark() {
return null;
}
@Override
- public NestedSet<FakeValidatedAndroidDataApi> getDirectAndroidResources() {
+ public SkylarkNestedSet /*<FakeValidatedAndroidDataApi>*/ getDirectAndroidResourcesForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveResources() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveResourcesForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveManifests() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveManifestsForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveAapt2RTxt() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveAapt2RTxtForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveAapt2ValidationArtifacts() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveAapt2ValidationArtifactsForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveSymbolsBin() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveSymbolsBinForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveCompiledSymbols() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveCompiledSymbolsForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveStaticLib() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveStaticLibForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> getTransitiveRTxt() {
+ public SkylarkNestedSet /*<FileApi>*/ getTransitiveRTxtForStarlark() {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/apple/FakeObjcProvider.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/apple/FakeObjcProvider.java
index 1a5f330..d463ed2 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/apple/FakeObjcProvider.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/apple/FakeObjcProvider.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.skydoc.fakebuildapi.apple;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.apple.ObjcProviderApi;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
@@ -27,17 +26,17 @@
public class FakeObjcProvider implements ObjcProviderApi<FileApi> {
@Override
- public NestedSet<String> define() {
+ public SkylarkNestedSet /*<String>*/ defineForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> dynamicFrameworkFile() {
+ public SkylarkNestedSet /*<FileApi>*/ dynamicFrameworkFileForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> exportedDebugArtifacts() {
+ public SkylarkNestedSet /*<FileApi>*/ exportedDebugArtifacts() {
return null;
}
@@ -47,12 +46,12 @@
}
@Override
- public NestedSet<FileApi> forceLoadLibrary() {
+ public SkylarkNestedSet /*<FileApi>*/ forceLoadLibrary() {
return null;
}
@Override
- public NestedSet<FileApi> header() {
+ public SkylarkNestedSet /*<FileApi>*/ headerForStarlark() {
return null;
}
@@ -62,7 +61,7 @@
}
@Override
- public NestedSet<FileApi> importedLibrary() {
+ public SkylarkNestedSet /*<FileApi>*/ importedLibrary() {
return null;
}
@@ -82,47 +81,47 @@
}
@Override
- public NestedSet<FileApi> j2objcLibrary() {
+ public SkylarkNestedSet /*<FileApi>*/ j2objcLibrary() {
return null;
}
@Override
- public NestedSet<FileApi> jreLibrary() {
+ public SkylarkNestedSet /*<FileApi>*/ jreLibrary() {
return null;
}
@Override
- public NestedSet<FileApi> library() {
+ public SkylarkNestedSet /*<FileApi>*/ library() {
return null;
}
@Override
- public NestedSet<FileApi> linkInputs() {
+ public SkylarkNestedSet /*<FileApi>*/ linkInputs() {
return null;
}
@Override
- public NestedSet<FileApi> linkedBinary() {
+ public SkylarkNestedSet /*<FileApi>*/ linkedBinary() {
return null;
}
@Override
- public NestedSet<FileApi> linkmapFile() {
+ public SkylarkNestedSet /*<FileApi>*/ linkmapFile() {
return null;
}
@Override
- public NestedSet<String> linkopt() {
+ public SkylarkNestedSet /*<String>*/ linkopt() {
return null;
}
@Override
- public NestedSet<FileApi> mergeZip() {
+ public SkylarkNestedSet /*<FileApi>*/ mergeZip() {
return null;
}
@Override
- public NestedSet<FileApi> moduleMap() {
+ public SkylarkNestedSet /*<FileApi>*/ moduleMap() {
return null;
}
@@ -132,22 +131,22 @@
}
@Override
- public NestedSet<FileApi> multiArchDynamicLibraries() {
+ public SkylarkNestedSet /*<FileApi>*/ multiArchDynamicLibraries() {
return null;
}
@Override
- public NestedSet<FileApi> multiArchLinkedArchives() {
+ public SkylarkNestedSet /*<FileApi>*/ multiArchLinkedArchives() {
return null;
}
@Override
- public NestedSet<FileApi> multiArchLinkedBinaries() {
+ public SkylarkNestedSet /*<FileApi>*/ multiArchLinkedBinaries() {
return null;
}
@Override
- public NestedSet<String> sdkDylib() {
+ public SkylarkNestedSet /*<String>*/ sdkDylib() {
return null;
}
@@ -157,7 +156,7 @@
}
@Override
- public NestedSet<FileApi> source() {
+ public SkylarkNestedSet /*<FileApi>*/ sourceForStarlark() {
return null;
}
@@ -167,12 +166,12 @@
}
@Override
- public NestedSet<FileApi> staticFrameworkFile() {
+ public SkylarkNestedSet /*<FileApi>*/ staticFrameworkFileForStarlark() {
return null;
}
@Override
- public NestedSet<FileApi> umbrellaHeader() {
+ public SkylarkNestedSet /*<FileApi>*/ umbrellaHeader() {
return null;
}
@@ -182,22 +181,22 @@
}
@Override
- public NestedSet<String> dynamicFrameworkNames() {
+ public SkylarkNestedSet /*<String>*/ dynamicFrameworkNamesForStarlark() {
return null;
}
@Override
- public NestedSet<String> dynamicFrameworkPaths() {
+ public SkylarkNestedSet /*<String>*/ dynamicFrameworkPathsForStarlark() {
return null;
}
@Override
- public NestedSet<String> staticFrameworkNames() {
+ public SkylarkNestedSet /*<String>*/ staticFrameworkNamesForStarlark() {
return null;
}
@Override
- public NestedSet<String> staticFrameworkPaths() {
+ public SkylarkNestedSet /*<String>*/ staticFrameworkPathsForStarlark() {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java
index f12e540..4a297ef 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java
@@ -112,7 +112,7 @@
@Override
public CcToolchainVariablesApi getCompileBuildVariables(
- CcToolchainProviderApi ccToolchainProvider,
+ CcToolchainProviderApi<FeatureConfigurationApi> ccToolchainProvider,
FeatureConfigurationApi featureConfiguration,
Object sourceFile,
Object outputFile,
@@ -129,12 +129,21 @@
}
@Override
- public CcToolchainVariablesApi getLinkBuildVariables(CcToolchainProviderApi ccToolchainProvider,
- FeatureConfigurationApi featureConfiguration, Object librarySearchDirectories,
- Object runtimeLibrarySearchDirectories, Object userLinkFlags, Object outputFile,
- Object paramFile, Object defFile, boolean isUsingLinkerNotArchiver,
- boolean isCreatingSharedLibrary, boolean mustKeepDebug, boolean useTestOnlyFlags,
- boolean isStaticLinkingMode) throws EvalException {
+ public CcToolchainVariablesApi getLinkBuildVariables(
+ CcToolchainProviderApi<FeatureConfigurationApi> ccToolchainProvider,
+ FeatureConfigurationApi featureConfiguration,
+ Object librarySearchDirectories,
+ Object runtimeLibrarySearchDirectories,
+ Object userLinkFlags,
+ Object outputFile,
+ Object paramFile,
+ Object defFile,
+ boolean isUsingLinkerNotArchiver,
+ boolean isCreatingSharedLibrary,
+ boolean mustKeepDebug,
+ boolean useTestOnlyFlags,
+ boolean isStaticLinkingMode)
+ throws EvalException {
return null;
}
@@ -144,7 +153,7 @@
}
@Override
- public LibraryToLinkApi createLibraryLinkerInput(
+ public LibraryToLinkApi<FileApi> createLibraryLinkerInput(
Object actions,
Object featureConfiguration,
Object ccToolchainProvider,
@@ -170,7 +179,7 @@
}
@Override
- public CcLinkingContextApi createCcLinkingInfo(
+ public CcLinkingContextApi<FileApi> createCcLinkingInfo(
Object linkerInputs,
Object librariesToLinkObject,
Object userLinkFlagsObject,
@@ -199,7 +208,8 @@
}
@Override
- public String legacyCcFlagsMakeVariable(CcToolchainProviderApi ccToolchain) {
+ public String legacyCcFlagsMakeVariable(
+ CcToolchainProviderApi<FeatureConfigurationApi> ccToolchain) {
return "";
}
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeGoWrapCcHelper.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeGoWrapCcHelper.java
index 422c0dd..9e03434 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeGoWrapCcHelper.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeGoWrapCcHelper.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.skydoc.fakebuildapi.cpp;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
import com.google.devtools.build.lib.skylarkbuildapi.RunfilesApi;
import com.google.devtools.build.lib.skylarkbuildapi.SkylarkRuleContextApi;
@@ -113,7 +112,7 @@
}
@Override
- public NestedSet<FileApi> getGopackageFiles(
+ public SkylarkNestedSet /*<FileApi>*/ getGopackageFilesForStarlark(
SkylarkRuleContextApi skylarkRuleContext, FileApi skylarkGopkg) {
return null;
}