Enables Desugar-Shadowable API Auto Desugaring for all Android Platform Types
#desugar #new-android-api-support #desugar-shadowed-api
- This change fully launches the automated desugaring feature for all Android APIs with a desugar-shadowable Java platform type (e.g. java.time.Duration) in its method header without restriction, including both invocable APIs and overridable APIs.
- Remove the hardcoded whitelists for the adapting candidacy of
- Invocable API type adapter use and generation:
- ClassName.isInPackageEligibleForTypeAdapter
- Overridable API bridge basis
- ClassName.isInPackageEligibleForShadowedOverridableAPIs
- Overridable API bridge insertion
- ClassName.isInPackageEligibleForHoldingOverridingBridges
- The above adapting candidacy of an API is superseded by the following,
1. The containing class/interface of the API is present in the boot class path.
2. The containing class/interface of the API has a package prefix of "android/" or "androidx/"
- Add a test that ensures all desugar-shadowed types on Android SDK platform are fully covered. that once any type is missing an expected type converter, the test will fail and report all types that requires type converter additions.
PiperOrigin-RevId: 310251287
{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