void () { assertEquals(empty(), empty().unsignedShiftRight(all(), INT64)); assertEquals(empty(), all().unsignedShiftRight(empty(), INT64)); assertEquals(all(), all().unsignedShiftRight(all(), INT64)); assertEquals(range(0, 4294967295L), all().unsignedShiftRight(point(32), INT64)); assertEquals(fromTypeStrict(PsiTypes.charType()), fromTypeStrict(PsiTypes.intType()).unsignedShiftRight(point(16), INT32)); assertEquals(range(0, 255), fromTypeStrict(PsiTypes.intType()).unsignedShiftRight(point(24), INT32)); assertEquals(range(0, 1), fromTypeStrict(PsiTypes.intType()).unsignedShiftRight(point(31), INT32)); checkUShr(range(-20, 20), point(31), INT32, "{0, 1}"); checkUShr(range(-20, 20), point(31), INT64, "{0, 8589934591}"); checkUShr(range(-20, 20), range(1, 3), INT64, "{0..10, 2305843009213693949..Long.MAX_VALUE}"); checkUShr(range(-20, 20), range(1, 3), INT32, "{0..10, 536870909..Integer.MAX_VALUE}"); checkUShr(range(-20, 20), range(3, 5), INT64, "{0..2, 576460752303423487..2305843009213693951}"); checkUShr(range(-20, 20), range(3, 5), INT32, "{0..2, 134217727..536870911}"); checkUShr(range(1000000, 1000020), range(3, 5), INT64, "{31250..125002}"); }