import org.checkerframework.checker.signedness.qual.*;

public class ShiftPropogation {

    public void ShiftOperationTests(@Unsigned int unsigned, @Signed int signed) {
        @Unsigned int uur = unsigned >>> unsigned;
        @Unsigned int usr = unsigned >>> signed;

        @Signed int sur = signed >> unsigned;
        @Signed int ssr = signed >> signed;

        @Unsigned int uul = unsigned << unsigned;
        @Unsigned int usl = unsigned << signed;
        @Signed int sul = signed << unsigned;
        @Signed int ssl = signed << signed;
    }

    public void ShiftAssignmentTests(@Unsigned int unsigned, @Signed int signed) {
        @Unsigned int uur = unsigned >>>= unsigned;
        @Unsigned int usr = unsigned >>>= signed;

        @Signed int sur = signed >>= unsigned;
        @Signed int ssr = signed >>= signed;

        @Unsigned int uul = unsigned <<= unsigned;
        @Unsigned int usl = unsigned <<= signed;
        @Signed int sul = signed <<= unsigned;
        @Signed int ssl = signed <<= signed;
    }
}
