xref: /aosp_15_r20/external/guava/proguard/base.pro (revision fb5080426417cab6bd44d0ed3f37e47d42859579)
1*fb508042SAndroid Build Coastguard Worker# Note: We intentionally don't add the flags we'd need to make Flags and Enums
2*fb508042SAndroid Build Coastguard Worker# work. That's because the Proguard configuration required to make them work on
3*fb508042SAndroid Build Coastguard Worker# optimized code would preclude lots of optimization, like converting enums
4*fb508042SAndroid Build Coastguard Worker# into ints.
5*fb508042SAndroid Build Coastguard Worker
6*fb508042SAndroid Build Coastguard Worker# Throwables uses internal APIs for lazy stack trace resolution
7*fb508042SAndroid Build Coastguard Worker-dontnote sun.misc.SharedSecrets
8*fb508042SAndroid Build Coastguard Worker-keep class sun.misc.SharedSecrets {
9*fb508042SAndroid Build Coastguard Worker  *** getJavaLangAccess(...);
10*fb508042SAndroid Build Coastguard Worker}
11*fb508042SAndroid Build Coastguard Worker-dontnote sun.misc.JavaLangAccess
12*fb508042SAndroid Build Coastguard Worker-keep class sun.misc.JavaLangAccess {
13*fb508042SAndroid Build Coastguard Worker  *** getStackTraceElement(...);
14*fb508042SAndroid Build Coastguard Worker  *** getStackTraceDepth(...);
15*fb508042SAndroid Build Coastguard Worker}
16*fb508042SAndroid Build Coastguard Worker
17*fb508042SAndroid Build Coastguard Worker# FinalizableReferenceQueue calls this reflectively
18*fb508042SAndroid Build Coastguard Worker# Proguard is intelligent enough to spot the use of reflection onto this, so we
19*fb508042SAndroid Build Coastguard Worker# only need to keep the names, and allow it to be stripped out if
20*fb508042SAndroid Build Coastguard Worker# FinalizableReferenceQueue is unused.
21*fb508042SAndroid Build Coastguard Worker-keepnames class com.google.common.base.internal.Finalizer {
22*fb508042SAndroid Build Coastguard Worker  *** startFinalizer(...);
23*fb508042SAndroid Build Coastguard Worker}
24*fb508042SAndroid Build Coastguard Worker# However, it cannot "spot" that this method needs to be kept IF the class is.
25*fb508042SAndroid Build Coastguard Worker-keepclassmembers class com.google.common.base.internal.Finalizer {
26*fb508042SAndroid Build Coastguard Worker  *** startFinalizer(...);
27*fb508042SAndroid Build Coastguard Worker}
28*fb508042SAndroid Build Coastguard Worker-keepnames class com.google.common.base.FinalizableReference {
29*fb508042SAndroid Build Coastguard Worker  void finalizeReferent();
30*fb508042SAndroid Build Coastguard Worker}
31*fb508042SAndroid Build Coastguard Worker-keepclassmembers class com.google.common.base.FinalizableReference {
32*fb508042SAndroid Build Coastguard Worker  void finalizeReferent();
33*fb508042SAndroid Build Coastguard Worker}
34