# 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. Get rid of everything that is not
# reachable from there.
-keep public class assumenosideeffects3.Assumenosideeffects {
  public static void main(...);
}

# Mark some methods to have no side effects.
-assumenosideeffects public class assumenosideeffects3.Assumenosideeffects {
  public static int method0(...) return 1;
  public static int method1(...) return 0;
  public static long method0L(...) return 1;
  public static long method1L(...) return 0;
}

# Allow access modification to enable minifcation.
-allowaccessmodification

# Check that methods has been discarded.
-checkdiscard class * {
  @assumenosideeffects3.CheckDiscarded *;
}
