starlark: make Starlark.addMethods reject fields Previously, addMethods would also create a BuiltinCallable for each Java method annotated with structField=True, even though it was never intended to support that. Field methods are problematic because merely accessing them invokes the Java function, yet we don't have the correct Semantics available, nor can we possibly deal with an InterruptedException. Now, it rejects them. - Add test of addMethods, and assertion in BuiltinCallable. - Update tests of "proxy object" to use dir+getattr instead of addMethods. - Improve doc comments. - un-deprecate getAnnotation method. It seems reasonable given that the annotations are public API, and it is related to the core purpose of the class. - change string method to report "<built-in method append of list value>" when appropriate, matching Python[23] and go.starlark.net. This is a minor incompatible behavior change, but I could not find any places in Google's code base that would break, which is a good sign. - Replace calls to private BuiltinCallable() in tests with getattr. PiperOrigin-RevId: 332477998
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md