tree c1df09796a413cef484afceff125b66ea331d839
parent d2b5e550cc92d01c0014f27d8ec81e26ac9951dc
author Eli Hart <konakid@gmail.com> 1621305461 -0700
committer Copybara-Service <copybara-worker@google.com> 1621305532 -0700

[GH] [Room][Compiler Processing] Add additional type element information

## Proposed Changes
Adds an interface function to get element kdoc. Implements this for javac, and uses null for KSP until https://github.com/google/ksp/issues/392 is fixed

Also surfaces more XTypeElement information, such as whether the type is a data class, a fun interface, a companion object, etc.

I implemented everything exposed in kotlin class metadata that seemed reasonable in order to future proof it a bit.

I was not able to implement fun interface checking for KSP since it is not yet surfaced in KSP - https://github.com/google/ksp/issues/393

## Testing

Test: Added cases to XTypeElementTest.modifiers

Note, I wasn't able to test the `expect` modifier. First I had to add support for custom compiler arguments so I could enable multiplatform via `"-Xmulti-platform"` but to get the test sources to compile I had to include a `actual` implementation as well, and since both the expected and actual implementations were in the same sources it seems the processor only picks up the actual. Omitting "actual" implementation doesn't work as compilation fails with "no actual implementation found in module", and I'm not sure how to have the compiler processing testing work with multiple module sources. The implementation of the "expect" modifier is very simple so I'm not sure how important the test is.

## Issues Fixed

Fixes: https://issuetracker.google.com/issues/185672887

This is an imported pull request from https://github.com/androidx/androidx/pull/164.

Resolves #164
Github-Pr-Head-Sha: 0bcd0afc8f42c8fb0b7a94a965fe665423e45df1
GitOrigin-RevId: 04f408a71641bc716f10cac4b7b609f7b4e1f501
Change-Id: Ifcf6b7aac73643866034e4bb2e95df81ee997b72
