void () { assertEquals(empty(), empty().shiftRight(all(), INT64)); assertEquals(empty(), all().shiftRight(empty(), INT64)); assertEquals(all(), all().shiftRight(all(), INT64)); assertEquals(fromTypeStrict(PsiTypes.intType()), all().shiftRight(point(32), INT64)); assertEquals(fromTypeStrict(PsiTypes.shortType()), fromTypeStrict(PsiTypes.intType()).shiftRight(point(16), INT32)); assertEquals(fromTypeStrict(PsiTypes.byteType()), fromTypeStrict(PsiTypes.intType()).shiftRight(point(24), INT32)); assertEquals(range(-1, 0), fromTypeStrict(PsiTypes.intType()).shiftRight(point(31), INT32)); checkShr(range(-20, 20), point(31), INT32, "{-1, 0}"); checkShr(range(-20, 20), point(31), INT64, "{-1, 0}"); checkShr(range(-20, 20), range(1, 3), INT64, "{-10..10}"); checkShr(range(-20, 20), range(3, 5), INT64, "{-3..2}"); checkShr(range(1000000, 1000020), range(3, 5), INT64, "{31250..125002}"); }