# Copyright (c) 2018, 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 class assumevalues6.Assumevalues {
  void main(...);
}

# Mark some fields with value ranges.
-assumevalues public class assumevalues6.Assumevalues {
  int field return 0..2;
  int field2 return 2..4;
  int field3 return 2..2;
}
