tree f9c12f4be3decdad2ce3b2ee1d4e87775ab11c3d
parent 12cd0d5dee0ed963d813517612bd006f04b2c18d
author Yigit Boyar <yboyar@google.com> 1607546908 -0800
committer Yigit Boyar <yboyar@google.com> 1607626674 -0800

Modifier and field improvements for KSP

This CL updates KSPTypeElementTests to also run with KAPT to better
assert consistency between the two.

It triggered 3 bugs:
* KspTypeElement was reporting fields for interface properties, fixed.
We still create field elements for its synthetic setters/getters but do
not report them as fields.
* Abstract modifiers were not being read properly in KSP for methods and
properties. Fixed in KspHasModifiers to check the declaration type and
call relevant helper methods from KSP.
* The java implementation for getFieldsIncludingPrivateSupers was
returning duplicate fields which was already a known bug that never got
addressed. I've changed the implementation not to allow duplicate field
names (similar to the KSP implementation).

There is still some known differences between KSP and KAPT that I left
as is:
* KAPT adds static fields for companion object properties even when they
are not annotated with JvmField. The getter is still on the Companion
hence it is not very useful. I kept KSP the way it is (only reports Jvm
annotated properties / methods).
* KAPT also adds a `Companion` static property to the class which is not
useful hence KSP does not do that either.
* KAPT returns Object as a parent for classes while KSP does not. I kept
it that way since we never read Object.

Also updated KAPT tests to target java8.(ksp tests were already doing that)

Bug: 160322705
Bug: 35568142
Test: KspTypeElementTest, XExecutableElementTest
Change-Id: Ic4292c898d0585a280b705c34d66646adcb950b7
