contract c { function f() public pure { int a; a = 1 << 4095; // shift is fine, but result too large a = 1 << 4096; // too large a = (1E1233) << 2; // too large } } // ---- // TypeError: (71-80): Type int_const 5221...(1225 digits omitted)...5168 is not implicitly convertible to expected type int256. // TypeError: (133-142): Operator << not compatible with types int_const 1 and int_const 4096 // TypeError: (169-182): Operator << not compatible with types int_const 1000...(1226 digits omitted)...0000 and int_const 2 // TypeError: (169-182): Type int_const 1000...(1226 digits omitted)...0000 is not implicitly convertible to expected type int256.