aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2018-02-08 18:11:29 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-08 18:13:02 -0800
commitaa79fd483daff0db9be274c33de109257f8a6804 (patch)
treeb31780acde7d39bccc4d3b023f31b1ae472a6218 /src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
parent3bdbbaf4e3f98ab722e4dffed15ef4deec1448b6 (diff)
Stub default methods as needed for core library desugaring
RELNOTES: None PiperOrigin-RevId: 185082719
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java b/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
index c6fd0b4817..2437a19979 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
@@ -73,6 +73,14 @@ class CoreLibrarySupport {
: internalName;
}
+ /**
+ * Returns {@code true} for java.* classes or interfaces that are subtypes of emulated interfaces.
+ * Note that implies that this method always returns {@code false} for user-written classes.
+ */
+ public boolean isEmulatedCoreClassOrInterface(String internalName) {
+ return getEmulatedCoreClassOrInterface(internalName) != null;
+ }
+
public boolean isEmulatedCoreLibraryInvocation(
int opcode, String owner, String name, String desc, boolean itf) {
return getEmulatedCoreLibraryInvocationTarget(opcode, owner, name, desc, itf) != null;
@@ -81,9 +89,6 @@ class CoreLibrarySupport {
@Nullable
public Class<?> getEmulatedCoreLibraryInvocationTarget(
int opcode, String owner, String name, String desc, boolean itf) {
- if (owner.contains("$$Lambda$") || owner.endsWith("$$CC")) {
- return null; // regular desugaring handles invocations on generated classes, no emulation
- }
Class<?> clazz = getEmulatedCoreClassOrInterface(owner);
if (clazz == null) {
return null;
@@ -101,6 +106,10 @@ class CoreLibrarySupport {
}
private Class<?> getEmulatedCoreClassOrInterface(String internalName) {
+ if (internalName.contains("$$Lambda$") || internalName.endsWith("$$CC")) {
+ // Regular desugaring handles generated classes, no emulation is needed
+ return null;
+ }
{
String unprefixedOwner = rewriter.unprefix(internalName);
if (!unprefixedOwner.startsWith("java/util/") || isRenamedCoreLibrary(unprefixedOwner)) {