Add utility to DexDefinitionSupplier for finding program classes Bug: 140121897 Change-Id: Ib51ebb389895c429b32f62b91e2e4adc8b6fffb0
diff --git a/src/main/java/com/android/tools/r8/graph/AppInfo.java b/src/main/java/com/android/tools/r8/graph/AppInfo.java index 3514da5..2e352a2 100644 --- a/src/main/java/com/android/tools/r8/graph/AppInfo.java +++ b/src/main/java/com/android/tools/r8/graph/AppInfo.java
@@ -130,6 +130,11 @@ return app.definitionFor(type); } + @Override + public DexProgramClass definitionForProgramType(DexType type) { + return app.programDefinitionFor(type); + } + public Origin originFor(DexType type) { assert checkIfObsolete(); DexClass definition = app.definitionFor(type);
diff --git a/src/main/java/com/android/tools/r8/graph/AppView.java b/src/main/java/com/android/tools/r8/graph/AppView.java index 7ba24cf..623da28 100644 --- a/src/main/java/com/android/tools/r8/graph/AppView.java +++ b/src/main/java/com/android/tools/r8/graph/AppView.java
@@ -124,6 +124,11 @@ return appInfo().definitionFor(type); } + @Override + public final DexProgramClass definitionForProgramType(DexType type) { + return appInfo.app().programDefinitionFor(type); + } + public OptionalBool isInterface(DexType type) { // Without whole program information we should not assume anything about any other class than // the current holder in a given context.
diff --git a/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java b/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java index 7d9888e..b616649 100644 --- a/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java +++ b/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java
@@ -14,5 +14,7 @@ DexClass definitionFor(DexType type); + DexProgramClass definitionForProgramType(DexType type); + DexItemFactory dexItemFactory(); }