1import numpy as np
2
3i8 = np.int64(1)
4u8 = np.uint64(1)
5
6i4 = np.int32(1)
7u4 = np.uint32(1)
8
9b_ = np.bool_(1)
10
11b = bool(1)
12i = int(1)
13
14AR = np.array([0, 1, 2], dtype=np.int32)
15AR.setflags(write=False)
16
17
18reveal_type(i8 << i8)  # E: numpy.signedinteger[numpy.typing._64Bit]
19reveal_type(i8 >> i8)  # E: numpy.signedinteger[numpy.typing._64Bit]
20reveal_type(i8 | i8)  # E: numpy.signedinteger[numpy.typing._64Bit]
21reveal_type(i8 ^ i8)  # E: numpy.signedinteger[numpy.typing._64Bit]
22reveal_type(i8 & i8)  # E: numpy.signedinteger[numpy.typing._64Bit]
23
24reveal_type(i8 << AR)  # E: Any
25reveal_type(i8 >> AR)  # E: Any
26reveal_type(i8 | AR)  # E: Any
27reveal_type(i8 ^ AR)  # E: Any
28reveal_type(i8 & AR)  # E: Any
29
30reveal_type(i4 << i4)  # E: numpy.signedinteger[numpy.typing._32Bit]
31reveal_type(i4 >> i4)  # E: numpy.signedinteger[numpy.typing._32Bit]
32reveal_type(i4 | i4)  # E: numpy.signedinteger[numpy.typing._32Bit]
33reveal_type(i4 ^ i4)  # E: numpy.signedinteger[numpy.typing._32Bit]
34reveal_type(i4 & i4)  # E: numpy.signedinteger[numpy.typing._32Bit]
35
36reveal_type(i8 << i4)  # E: numpy.signedinteger[numpy.typing._64Bit]
37reveal_type(i8 >> i4)  # E: numpy.signedinteger[numpy.typing._64Bit]
38reveal_type(i8 | i4)  # E: numpy.signedinteger[numpy.typing._64Bit]
39reveal_type(i8 ^ i4)  # E: numpy.signedinteger[numpy.typing._64Bit]
40reveal_type(i8 & i4)  # E: numpy.signedinteger[numpy.typing._64Bit]
41
42reveal_type(i8 << i)  # E: numpy.signedinteger[Any]
43reveal_type(i8 >> i)  # E: numpy.signedinteger[Any]
44reveal_type(i8 | i)  # E: numpy.signedinteger[Any]
45reveal_type(i8 ^ i)  # E: numpy.signedinteger[Any]
46reveal_type(i8 & i)  # E: numpy.signedinteger[Any]
47
48reveal_type(i8 << b_)  # E: numpy.signedinteger[numpy.typing._64Bit]
49reveal_type(i8 >> b_)  # E: numpy.signedinteger[numpy.typing._64Bit]
50reveal_type(i8 | b_)  # E: numpy.signedinteger[numpy.typing._64Bit]
51reveal_type(i8 ^ b_)  # E: numpy.signedinteger[numpy.typing._64Bit]
52reveal_type(i8 & b_)  # E: numpy.signedinteger[numpy.typing._64Bit]
53
54reveal_type(i8 << b)  # E: numpy.signedinteger[numpy.typing._64Bit]
55reveal_type(i8 >> b)  # E: numpy.signedinteger[numpy.typing._64Bit]
56reveal_type(i8 | b)  # E: numpy.signedinteger[numpy.typing._64Bit]
57reveal_type(i8 ^ b)  # E: numpy.signedinteger[numpy.typing._64Bit]
58reveal_type(i8 & b)  # E: numpy.signedinteger[numpy.typing._64Bit]
59
60reveal_type(u8 << u8)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
61reveal_type(u8 >> u8)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
62reveal_type(u8 | u8)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
63reveal_type(u8 ^ u8)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
64reveal_type(u8 & u8)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
65
66reveal_type(u8 << AR)  # E: Any
67reveal_type(u8 >> AR)  # E: Any
68reveal_type(u8 | AR)  # E: Any
69reveal_type(u8 ^ AR)  # E: Any
70reveal_type(u8 & AR)  # E: Any
71
72reveal_type(u4 << u4)  # E: numpy.unsignedinteger[numpy.typing._32Bit]
73reveal_type(u4 >> u4)  # E: numpy.unsignedinteger[numpy.typing._32Bit]
74reveal_type(u4 | u4)  # E: numpy.unsignedinteger[numpy.typing._32Bit]
75reveal_type(u4 ^ u4)  # E: numpy.unsignedinteger[numpy.typing._32Bit]
76reveal_type(u4 & u4)  # E: numpy.unsignedinteger[numpy.typing._32Bit]
77
78reveal_type(u4 << i4)  # E: numpy.signedinteger[Any]
79reveal_type(u4 >> i4)  # E: numpy.signedinteger[Any]
80reveal_type(u4 | i4)  # E: numpy.signedinteger[Any]
81reveal_type(u4 ^ i4)  # E: numpy.signedinteger[Any]
82reveal_type(u4 & i4)  # E: numpy.signedinteger[Any]
83
84reveal_type(u4 << i)  # E: numpy.signedinteger[Any]
85reveal_type(u4 >> i)  # E: numpy.signedinteger[Any]
86reveal_type(u4 | i)  # E: numpy.signedinteger[Any]
87reveal_type(u4 ^ i)  # E: numpy.signedinteger[Any]
88reveal_type(u4 & i)  # E: numpy.signedinteger[Any]
89
90reveal_type(u8 << b_)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
91reveal_type(u8 >> b_)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
92reveal_type(u8 | b_)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
93reveal_type(u8 ^ b_)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
94reveal_type(u8 & b_)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
95
96reveal_type(u8 << b)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
97reveal_type(u8 >> b)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
98reveal_type(u8 | b)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
99reveal_type(u8 ^ b)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
100reveal_type(u8 & b)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
101
102reveal_type(b_ << b_)  # E: numpy.signedinteger[numpy.typing._8Bit]
103reveal_type(b_ >> b_)  # E: numpy.signedinteger[numpy.typing._8Bit]
104reveal_type(b_ | b_)  # E: numpy.bool_
105reveal_type(b_ ^ b_)  # E: numpy.bool_
106reveal_type(b_ & b_)  # E: numpy.bool_
107
108reveal_type(b_ << AR)  # E: Any
109reveal_type(b_ >> AR)  # E: Any
110reveal_type(b_ | AR)  # E: Any
111reveal_type(b_ ^ AR)  # E: Any
112reveal_type(b_ & AR)  # E: Any
113
114reveal_type(b_ << b)  # E: numpy.signedinteger[numpy.typing._8Bit]
115reveal_type(b_ >> b)  # E: numpy.signedinteger[numpy.typing._8Bit]
116reveal_type(b_ | b)  # E: numpy.bool_
117reveal_type(b_ ^ b)  # E: numpy.bool_
118reveal_type(b_ & b)  # E: numpy.bool_
119
120reveal_type(b_ << i)  # E: numpy.signedinteger[Any]
121reveal_type(b_ >> i)  # E: numpy.signedinteger[Any]
122reveal_type(b_ | i)  # E: numpy.signedinteger[Any]
123reveal_type(b_ ^ i)  # E: numpy.signedinteger[Any]
124reveal_type(b_ & i)  # E: numpy.signedinteger[Any]
125
126reveal_type(~i8)  # E: numpy.signedinteger[numpy.typing._64Bit]
127reveal_type(~i4)  # E: numpy.signedinteger[numpy.typing._32Bit]
128reveal_type(~u8)  # E: numpy.unsignedinteger[numpy.typing._64Bit]
129reveal_type(~u4)  # E: numpy.unsignedinteger[numpy.typing._32Bit]
130reveal_type(~b_)  # E: numpy.bool_
131reveal_type(~AR)  # E: Any
132