# 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 identifiernamestring.Main {
  public static void main(...);
}

-keepnames class identifiernamestring.A

-dontshrink
-dontoptimize

-identifiernamestring class * {
  static java.lang.reflect.Field *(java.lang.Class, java.lang.String);
  static java.lang.reflect.Method *(java.lang.Class, java.lang.String, java.lang.Class[]);
}
