]> git.proxmox.com Git - rustc.git/blob - src/test/ui/integer-literal-suffix-inference.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / test / ui / integer-literal-suffix-inference.rs
1 fn main() {
2
3 // the smallest positive values that need these types
4 let a8: i8 = 8;
5 let a16: i16 = 128;
6 let a32: i32 = 32_768;
7 let a64: i64 = 2_147_483_648;
8
9 // the smallest negative values that need these types
10 let c8: i8 = -9;
11 let c16: i16 = -129;
12 let c32: i32 = -32_769;
13 let c64: i64 = -2_147_483_649;
14
15 fn id_i8(n: i8) -> i8 { n }
16 fn id_i16(n: i16) -> i16 { n }
17 fn id_i32(n: i32) -> i32 { n }
18 fn id_i64(n: i64) -> i64 { n }
19
20 // the smallest values that need these types
21 let b8: u8 = 16;
22 let b16: u16 = 256;
23 let b32: u32 = 65_536;
24 let b64: u64 = 4_294_967_296;
25
26 fn id_u8(n: u8) -> u8 { n }
27 fn id_u16(n: u16) -> u16 { n }
28 fn id_u32(n: u32) -> u32 { n }
29 fn id_u64(n: u64) -> u64 { n }
30
31 id_i8(a8); // ok
32 id_i8(a16);
33 //~^ ERROR mismatched types
34 //~| expected `i8`, found `i16`
35 id_i8(a32);
36 //~^ ERROR mismatched types
37 //~| expected `i8`, found `i32`
38 id_i8(a64);
39 //~^ ERROR mismatched types
40 //~| expected `i8`, found `i64`
41
42 id_i16(a8);
43 //~^ ERROR mismatched types
44 //~| expected `i16`, found `i8`
45 id_i16(a16); // ok
46 id_i16(a32);
47 //~^ ERROR mismatched types
48 //~| expected `i16`, found `i32`
49 id_i16(a64);
50 //~^ ERROR mismatched types
51 //~| expected `i16`, found `i64`
52
53 id_i32(a8);
54 //~^ ERROR mismatched types
55 //~| expected `i32`, found `i8`
56 id_i32(a16);
57 //~^ ERROR mismatched types
58 //~| expected `i32`, found `i16`
59 id_i32(a32); // ok
60 id_i32(a64);
61 //~^ ERROR mismatched types
62 //~| expected `i32`, found `i64`
63
64 id_i64(a8);
65 //~^ ERROR mismatched types
66 //~| expected `i64`, found `i8`
67 id_i64(a16);
68 //~^ ERROR mismatched types
69 //~| expected `i64`, found `i16`
70 id_i64(a32);
71 //~^ ERROR mismatched types
72 //~| expected `i64`, found `i32`
73 id_i64(a64); // ok
74
75 id_i8(c8); // ok
76 id_i8(c16);
77 //~^ ERROR mismatched types
78 //~| expected `i8`, found `i16`
79 id_i8(c32);
80 //~^ ERROR mismatched types
81 //~| expected `i8`, found `i32`
82 id_i8(c64);
83 //~^ ERROR mismatched types
84 //~| expected `i8`, found `i64`
85
86 id_i16(c8);
87 //~^ ERROR mismatched types
88 //~| expected `i16`, found `i8`
89 id_i16(c16); // ok
90 id_i16(c32);
91 //~^ ERROR mismatched types
92 //~| expected `i16`, found `i32`
93 id_i16(c64);
94 //~^ ERROR mismatched types
95 //~| expected `i16`, found `i64`
96
97 id_i32(c8);
98 //~^ ERROR mismatched types
99 //~| expected `i32`, found `i8`
100 id_i32(c16);
101 //~^ ERROR mismatched types
102 //~| expected `i32`, found `i16`
103 id_i32(c32); // ok
104 id_i32(c64);
105 //~^ ERROR mismatched types
106 //~| expected `i32`, found `i64`
107
108 id_i64(a8);
109 //~^ ERROR mismatched types
110 //~| expected `i64`, found `i8`
111 id_i64(a16);
112 //~^ ERROR mismatched types
113 //~| expected `i64`, found `i16`
114 id_i64(a32);
115 //~^ ERROR mismatched types
116 //~| expected `i64`, found `i32`
117 id_i64(a64); // ok
118
119 id_u8(b8); // ok
120 id_u8(b16);
121 //~^ ERROR mismatched types
122 //~| expected `u8`, found `u16`
123 id_u8(b32);
124 //~^ ERROR mismatched types
125 //~| expected `u8`, found `u32`
126 id_u8(b64);
127 //~^ ERROR mismatched types
128 //~| expected `u8`, found `u64`
129
130 id_u16(b8);
131 //~^ ERROR mismatched types
132 //~| expected `u16`, found `u8`
133 id_u16(b16); // ok
134 id_u16(b32);
135 //~^ ERROR mismatched types
136 //~| expected `u16`, found `u32`
137 id_u16(b64);
138 //~^ ERROR mismatched types
139 //~| expected `u16`, found `u64`
140
141 id_u32(b8);
142 //~^ ERROR mismatched types
143 //~| expected `u32`, found `u8`
144 id_u32(b16);
145 //~^ ERROR mismatched types
146 //~| expected `u32`, found `u16`
147 id_u32(b32); // ok
148 id_u32(b64);
149 //~^ ERROR mismatched types
150 //~| expected `u32`, found `u64`
151
152 id_u64(b8);
153 //~^ ERROR mismatched types
154 //~| expected `u64`, found `u8`
155 id_u64(b16);
156 //~^ ERROR mismatched types
157 //~| expected `u64`, found `u16`
158 id_u64(b32);
159 //~^ ERROR mismatched types
160 //~| expected `u64`, found `u32`
161 id_u64(b64); // ok
162 }