# Copyright (c) 2017, 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.

# Keep the application entry point.
-keep public class forname.Main {
  public static void main(...);
}

-keep,allowobfuscation class forname.A

-dontshrink

# This will be added to CompatProguard by default.
# We are testing whether R8 shows the same behavior.
-identifiernamestring public class java.lang.Class {
  public static java.lang.Class forName(java.lang.String);
}
