Do not rebind field accesses if that would conflict with visibility.

This changes the assumption that field accesses are always dispatched to
an actual definition. Moving forward, your analysis has to make sure that
the field id is dispatched first.

This change also changes the semantics of some fields in AppInfoWithLiveness
to reflect this change.

Bug: 38187737
Change-Id: I221dac4ded6a6708d5bfc01bdd7a51a7b516294a
13 files changed
tree: c0a9f9790e9197d0d14f4f05ba265f143c0c7c76
  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.