Reland: Companion class must be public

- Companion classes used when we desugar default methods must be
public so moved methods can be called from anywhere, otherwise
runtime can generate IllegalAccessError in some cases.
- Update member rebinding analysis to check if the rebinding
is valid or not by checking if the new holder is accessible.

Bug: 62049460
Change-Id: Ie5ff0dbe6e414bff556416deeacf356b3c656834
4 files changed
tree: f5853439216ae181f58514142d839f3efc89ebc6
  1. buildSrc/
  2. scripts/
  3. src/
  4. tests/
  5. third_party/
  6. tools/
  7. .gitignore
  8. AUTHORS
  9. build.gradle
  10. codereview.settings
  11. CONTRIBUTING.md
  12. copyAdditionalJctfCommonFiles.gradle
  13. LICENSE
  14. README.md
README.md

The R8 repo contains two tools.

  1. D8 is a dexer that converts java byte code to dex code.

  2. R8 is a java program shrinking and minification tool.