tree 1cd7d1bab4320bb1d8e1c94d7cd6eabb358b413b
parent 53ca395a9d91b828cbf2c82205a85849c608f8f1
author Googler <noreply@google.com> 1574363972 -0800
committer Copybara-Service <copybara-worker@google.com> 1574364100 -0800

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
