1*fb508042SAndroid Build Coastguard Worker# Futures.getChecked, in both of its variants, is incompatible with proguard. 2*fb508042SAndroid Build Coastguard Worker 3*fb508042SAndroid Build Coastguard Worker# Used by AtomicReferenceFieldUpdater and sun.misc.Unsafe 4*fb508042SAndroid Build Coastguard Worker-keepclassmembers class com.google.common.util.concurrent.AbstractFuture** { 5*fb508042SAndroid Build Coastguard Worker *** waiters; 6*fb508042SAndroid Build Coastguard Worker *** value; 7*fb508042SAndroid Build Coastguard Worker *** listeners; 8*fb508042SAndroid Build Coastguard Worker *** thread; 9*fb508042SAndroid Build Coastguard Worker *** next; 10*fb508042SAndroid Build Coastguard Worker} 11*fb508042SAndroid Build Coastguard Worker-keepclassmembers class com.google.common.util.concurrent.AtomicDouble { 12*fb508042SAndroid Build Coastguard Worker *** value; 13*fb508042SAndroid Build Coastguard Worker} 14*fb508042SAndroid Build Coastguard Worker-keepclassmembers class com.google.common.util.concurrent.AggregateFutureState { 15*fb508042SAndroid Build Coastguard Worker *** remaining; 16*fb508042SAndroid Build Coastguard Worker *** seenExceptions; 17*fb508042SAndroid Build Coastguard Worker} 18*fb508042SAndroid Build Coastguard Worker 19*fb508042SAndroid Build Coastguard Worker# Since Unsafe is using the field offsets of these inner classes, we don't want 20*fb508042SAndroid Build Coastguard Worker# to have class merging or similar tricks applied to these classes and their 21*fb508042SAndroid Build Coastguard Worker# fields. It's safe to allow obfuscation, since the by-name references are 22*fb508042SAndroid Build Coastguard Worker# already preserved in the -keep statement above. 23*fb508042SAndroid Build Coastguard Worker-keep,allowshrinking,allowobfuscation class com.google.common.util.concurrent.AbstractFuture** { 24*fb508042SAndroid Build Coastguard Worker <fields>; 25*fb508042SAndroid Build Coastguard Worker} 26*fb508042SAndroid Build Coastguard Worker 27*fb508042SAndroid Build Coastguard Worker# AbstractFuture uses this 28*fb508042SAndroid Build Coastguard Worker-dontwarn sun.misc.Unsafe 29*fb508042SAndroid Build Coastguard Worker 30*fb508042SAndroid Build Coastguard Worker# MoreExecutors references AppEngine 31*fb508042SAndroid Build Coastguard Worker-dontnote com.google.appengine.api.ThreadManager 32*fb508042SAndroid Build Coastguard Worker-keep class com.google.appengine.api.ThreadManager { 33*fb508042SAndroid Build Coastguard Worker static *** currentRequestThreadFactory(...); 34*fb508042SAndroid Build Coastguard Worker} 35*fb508042SAndroid Build Coastguard Worker-dontnote com.google.apphosting.api.ApiProxy 36*fb508042SAndroid Build Coastguard Worker-keep class com.google.apphosting.api.ApiProxy { 37*fb508042SAndroid Build Coastguard Worker static *** getCurrentEnvironment (...); 38*fb508042SAndroid Build Coastguard Worker} 39*fb508042SAndroid Build Coastguard Worker 40*fb508042SAndroid Build Coastguard Worker-dontwarn java.lang.SafeVarargs 41