Hi all,
I had a couple questions about how Error Prone is integrated with Bazel that I was hoping I could get some help with. For context, we've had Error Prone integrated with Buck for some time now, but it's hackish and we're trying to figure out a "proper" way to do things.
First, I'm wondering how Bazel deals with building using Error Prone on JDK 8, since some JDK 9 javac classes conflict with those in the JDK 8 rt.jar. I'm guessing there is some classloader magic somewhere to make this work. Could someone point me to the relevant code?
Second, a NullAway user noticed that on Bazel, the Guava library that Error Prone uses is not visible to annotation processors / plugin checks; see
https://github.com/uber/NullAway/issues/119. But with this isolation, I'm not sure what happens if an Error Prone plugin check needs to invoke an Error Prone API that mentions a Guava type. I don't have a concrete bad example here, but I was just wondering how exactly this gets managed.
Thanks for the help!
Best,
Manu