# Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# The retrace api is separated out without repackaging which is why this broad
# rule is used.
-keep public class com.android.tools.r8.retrace.* {
     public <methods>;
     public <fields>;
 }
-keepattributes SourceFile, LineNumberTable, InnerClasses, EnclosingMethod, Exceptions, Signature
-keepparameternames

# This is run on r8lib so keep everything in lib that is traced. That way
# we only need a single mapping file
-keep,allowshrinking class * { *; }

# Keep all things that can be reached from the retrace api
-keep @com.android.tools.r8.KeepForRetraceApi class * { public *; }
