diff options
author | kmb <kmb@google.com> | 2018-02-08 18:11:29 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-08 18:13:02 -0800 |
commit | aa79fd483daff0db9be274c33de109257f8a6804 (patch) | |
tree | b31780acde7d39bccc4d3b023f31b1ae472a6218 /src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java | |
parent | 3bdbbaf4e3f98ab722e4dffed15ef4deec1448b6 (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.java | 15 |
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)) { |