// Test case for issue 1264: https://github.com/typetools/checker-framework/issues/1264

import org.checkerframework.common.value.qual.*;

class ValueCast2 {
    byte foo(@IntRange(from = Integer.MIN_VALUE, to = Integer.MAX_VALUE) int x) {
        return (byte) x;
    }

    byte bar(@IntRange(from = -1000, to = 500) int x) {
        return (byte) x;
    }

    short foo1(@IntRange(from = Integer.MIN_VALUE, to = Integer.MAX_VALUE) int x) {
        return (short) x;
    }

    int foo2(@IntRange(from = Long.MIN_VALUE, to = Long.MAX_VALUE) long x) {
        return (int) x;
    }

    int baz(@IntRange(from = Long.MIN_VALUE, to = 0) long x) {
        return (int) x;
    }
}
