Status Update
Comments
gh...@google.com <gh...@google.com> #2
I am not sure I understand the use case. how can the benchmark be code to real world scenario when it's not possible to do right now ? which scenario is it ?
In any case, since this would be for benchmarking, this would clearly not be available through the public DSL. We should find a semi-private way of doing this (maybe the private variant API object could offer that functionality for instance or a property).
an...@google.com <an...@google.com> #3
We want benchmarks to measure code after Progaurd / R8, but it's not possible to turn that on for androidTests in library modules at the moment (to my knowledge?)
Benchmarks are also a public facing thing, but we have a plugin to help configure gradle builds for our users, so if support for this ends up in a private API, we could try to keep those usages localized to our code perhaps.
Description
Certain Android SDK annotations are available only in the stub jar (android.jar) and not in attached sources because they are injected by Metalava at build time. This discrepancy confuses certain IntelliJ inspections which search for annotations in sources instead of bytecode (presumably to handle annotations with source retention).
Most notably this affects nullability annotations, which Metalava injects in many
java.*
classes. For example, the following code snippet does not trigger a nullability warning in the editor, even though it should:I have a solution ready, partly as a side effect of my recent deep dive into b/366309455 . I'll upload soon.