]> git.lizzy.rs Git - rust.git/blob - src/test/ui/rfc-2497-if-let-chains/disallowed-positions.stderr
Remove E0308 note when primary label has all info
[rust.git] / src / test / ui / rfc-2497-if-let-chains / disallowed-positions.stderr
1 error: expected one of `,` or `>`, found `&&`
2   --> $DIR/disallowed-positions.rs:239:14
3    |
4 LL |         true && let 1 = 1
5    |              ^^ expected one of `,` or `>`
6
7 error: `let` expressions are not supported here
8   --> $DIR/disallowed-positions.rs:32:9
9    |
10 LL |     if &let 0 = 0 {}
11    |         ^^^^^^^^^
12    |
13    = note: only supported directly in conditions of `if`- and `while`-expressions
14    = note: as well as when nested within `&&` and parenthesis in those conditions
15
16 error: `let` expressions are not supported here
17   --> $DIR/disallowed-positions.rs:35:9
18    |
19 LL |     if !let 0 = 0 {}
20    |         ^^^^^^^^^
21    |
22    = note: only supported directly in conditions of `if`- and `while`-expressions
23    = note: as well as when nested within `&&` and parenthesis in those conditions
24
25 error: `let` expressions are not supported here
26   --> $DIR/disallowed-positions.rs:36:9
27    |
28 LL |     if *let 0 = 0 {}
29    |         ^^^^^^^^^
30    |
31    = note: only supported directly in conditions of `if`- and `while`-expressions
32    = note: as well as when nested within `&&` and parenthesis in those conditions
33
34 error: `let` expressions are not supported here
35   --> $DIR/disallowed-positions.rs:38:9
36    |
37 LL |     if -let 0 = 0 {}
38    |         ^^^^^^^^^
39    |
40    = note: only supported directly in conditions of `if`- and `while`-expressions
41    = note: as well as when nested within `&&` and parenthesis in those conditions
42
43 error: `let` expressions are not supported here
44   --> $DIR/disallowed-positions.rs:46:9
45    |
46 LL |     if (let 0 = 0)? {}
47    |         ^^^^^^^^^
48    |
49    = note: only supported directly in conditions of `if`- and `while`-expressions
50    = note: as well as when nested within `&&` and parenthesis in those conditions
51
52 error: `let` expressions are not supported here
53   --> $DIR/disallowed-positions.rs:50:16
54    |
55 LL |     if true || let 0 = 0 {}
56    |                ^^^^^^^^^
57    |
58    = note: only supported directly in conditions of `if`- and `while`-expressions
59    = note: as well as when nested within `&&` and parenthesis in those conditions
60
61 error: `let` expressions are not supported here
62   --> $DIR/disallowed-positions.rs:51:17
63    |
64 LL |     if (true || let 0 = 0) {}
65    |                 ^^^^^^^^^
66    |
67    = note: only supported directly in conditions of `if`- and `while`-expressions
68    = note: as well as when nested within `&&` and parenthesis in those conditions
69
70 error: `let` expressions are not supported here
71   --> $DIR/disallowed-positions.rs:52:25
72    |
73 LL |     if true && (true || let 0 = 0) {}
74    |                         ^^^^^^^^^
75    |
76    = note: only supported directly in conditions of `if`- and `while`-expressions
77    = note: as well as when nested within `&&` and parenthesis in those conditions
78
79 error: `let` expressions are not supported here
80   --> $DIR/disallowed-positions.rs:53:25
81    |
82 LL |     if true || (true && let 0 = 0) {}
83    |                         ^^^^^^^^^
84    |
85    = note: only supported directly in conditions of `if`- and `while`-expressions
86    = note: as well as when nested within `&&` and parenthesis in those conditions
87
88 error: `let` expressions are not supported here
89   --> $DIR/disallowed-positions.rs:56:12
90    |
91 LL |     if x = let 0 = 0 {}
92    |            ^^^^^^^^^
93    |
94    = note: only supported directly in conditions of `if`- and `while`-expressions
95    = note: as well as when nested within `&&` and parenthesis in those conditions
96
97 error: `let` expressions are not supported here
98   --> $DIR/disallowed-positions.rs:59:15
99    |
100 LL |     if true..(let 0 = 0) {}
101    |               ^^^^^^^^^
102    |
103    = note: only supported directly in conditions of `if`- and `while`-expressions
104    = note: as well as when nested within `&&` and parenthesis in those conditions
105
106 error: `let` expressions are not supported here
107   --> $DIR/disallowed-positions.rs:61:11
108    |
109 LL |     if ..(let 0 = 0) {}
110    |           ^^^^^^^^^
111    |
112    = note: only supported directly in conditions of `if`- and `while`-expressions
113    = note: as well as when nested within `&&` and parenthesis in those conditions
114
115 error: `let` expressions are not supported here
116   --> $DIR/disallowed-positions.rs:63:9
117    |
118 LL |     if (let 0 = 0).. {}
119    |         ^^^^^^^^^
120    |
121    = note: only supported directly in conditions of `if`- and `while`-expressions
122    = note: as well as when nested within `&&` and parenthesis in those conditions
123
124 error: `let` expressions are not supported here
125   --> $DIR/disallowed-positions.rs:67:8
126    |
127 LL |     if let Range { start: _, end: _ } = true..true && false {}
128    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
129    |
130    = note: only supported directly in conditions of `if`- and `while`-expressions
131    = note: as well as when nested within `&&` and parenthesis in those conditions
132
133 error: `let` expressions are not supported here
134   --> $DIR/disallowed-positions.rs:71:8
135    |
136 LL |     if let Range { start: _, end: _ } = true..true || false {}
137    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
138    |
139    = note: only supported directly in conditions of `if`- and `while`-expressions
140    = note: as well as when nested within `&&` and parenthesis in those conditions
141
142 error: `let` expressions are not supported here
143   --> $DIR/disallowed-positions.rs:78:8
144    |
145 LL |     if let Range { start: F, end } = F..|| true {}
146    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
147    |
148    = note: only supported directly in conditions of `if`- and `while`-expressions
149    = note: as well as when nested within `&&` and parenthesis in those conditions
150
151 error: `let` expressions are not supported here
152   --> $DIR/disallowed-positions.rs:86:8
153    |
154 LL |     if let Range { start: true, end } = t..&&false {}
155    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
156    |
157    = note: only supported directly in conditions of `if`- and `while`-expressions
158    = note: as well as when nested within `&&` and parenthesis in those conditions
159
160 error: `let` expressions are not supported here
161   --> $DIR/disallowed-positions.rs:92:19
162    |
163 LL |     if let true = let true = true {}
164    |                   ^^^^^^^^^^^^^^^
165    |
166    = note: only supported directly in conditions of `if`- and `while`-expressions
167    = note: as well as when nested within `&&` and parenthesis in those conditions
168
169 error: `let` expressions are not supported here
170   --> $DIR/disallowed-positions.rs:96:12
171    |
172 LL |     while &let 0 = 0 {}
173    |            ^^^^^^^^^
174    |
175    = note: only supported directly in conditions of `if`- and `while`-expressions
176    = note: as well as when nested within `&&` and parenthesis in those conditions
177
178 error: `let` expressions are not supported here
179   --> $DIR/disallowed-positions.rs:99:12
180    |
181 LL |     while !let 0 = 0 {}
182    |            ^^^^^^^^^
183    |
184    = note: only supported directly in conditions of `if`- and `while`-expressions
185    = note: as well as when nested within `&&` and parenthesis in those conditions
186
187 error: `let` expressions are not supported here
188   --> $DIR/disallowed-positions.rs:100:12
189    |
190 LL |     while *let 0 = 0 {}
191    |            ^^^^^^^^^
192    |
193    = note: only supported directly in conditions of `if`- and `while`-expressions
194    = note: as well as when nested within `&&` and parenthesis in those conditions
195
196 error: `let` expressions are not supported here
197   --> $DIR/disallowed-positions.rs:102:12
198    |
199 LL |     while -let 0 = 0 {}
200    |            ^^^^^^^^^
201    |
202    = note: only supported directly in conditions of `if`- and `while`-expressions
203    = note: as well as when nested within `&&` and parenthesis in those conditions
204
205 error: `let` expressions are not supported here
206   --> $DIR/disallowed-positions.rs:110:12
207    |
208 LL |     while (let 0 = 0)? {}
209    |            ^^^^^^^^^
210    |
211    = note: only supported directly in conditions of `if`- and `while`-expressions
212    = note: as well as when nested within `&&` and parenthesis in those conditions
213
214 error: `let` expressions are not supported here
215   --> $DIR/disallowed-positions.rs:114:19
216    |
217 LL |     while true || let 0 = 0 {}
218    |                   ^^^^^^^^^
219    |
220    = note: only supported directly in conditions of `if`- and `while`-expressions
221    = note: as well as when nested within `&&` and parenthesis in those conditions
222
223 error: `let` expressions are not supported here
224   --> $DIR/disallowed-positions.rs:115:20
225    |
226 LL |     while (true || let 0 = 0) {}
227    |                    ^^^^^^^^^
228    |
229    = note: only supported directly in conditions of `if`- and `while`-expressions
230    = note: as well as when nested within `&&` and parenthesis in those conditions
231
232 error: `let` expressions are not supported here
233   --> $DIR/disallowed-positions.rs:116:28
234    |
235 LL |     while true && (true || let 0 = 0) {}
236    |                            ^^^^^^^^^
237    |
238    = note: only supported directly in conditions of `if`- and `while`-expressions
239    = note: as well as when nested within `&&` and parenthesis in those conditions
240
241 error: `let` expressions are not supported here
242   --> $DIR/disallowed-positions.rs:117:28
243    |
244 LL |     while true || (true && let 0 = 0) {}
245    |                            ^^^^^^^^^
246    |
247    = note: only supported directly in conditions of `if`- and `while`-expressions
248    = note: as well as when nested within `&&` and parenthesis in those conditions
249
250 error: `let` expressions are not supported here
251   --> $DIR/disallowed-positions.rs:120:15
252    |
253 LL |     while x = let 0 = 0 {}
254    |               ^^^^^^^^^
255    |
256    = note: only supported directly in conditions of `if`- and `while`-expressions
257    = note: as well as when nested within `&&` and parenthesis in those conditions
258
259 error: `let` expressions are not supported here
260   --> $DIR/disallowed-positions.rs:123:18
261    |
262 LL |     while true..(let 0 = 0) {}
263    |                  ^^^^^^^^^
264    |
265    = note: only supported directly in conditions of `if`- and `while`-expressions
266    = note: as well as when nested within `&&` and parenthesis in those conditions
267
268 error: `let` expressions are not supported here
269   --> $DIR/disallowed-positions.rs:125:14
270    |
271 LL |     while ..(let 0 = 0) {}
272    |              ^^^^^^^^^
273    |
274    = note: only supported directly in conditions of `if`- and `while`-expressions
275    = note: as well as when nested within `&&` and parenthesis in those conditions
276
277 error: `let` expressions are not supported here
278   --> $DIR/disallowed-positions.rs:127:12
279    |
280 LL |     while (let 0 = 0).. {}
281    |            ^^^^^^^^^
282    |
283    = note: only supported directly in conditions of `if`- and `while`-expressions
284    = note: as well as when nested within `&&` and parenthesis in those conditions
285
286 error: `let` expressions are not supported here
287   --> $DIR/disallowed-positions.rs:131:11
288    |
289 LL |     while let Range { start: _, end: _ } = true..true && false {}
290    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
291    |
292    = note: only supported directly in conditions of `if`- and `while`-expressions
293    = note: as well as when nested within `&&` and parenthesis in those conditions
294
295 error: `let` expressions are not supported here
296   --> $DIR/disallowed-positions.rs:135:11
297    |
298 LL |     while let Range { start: _, end: _ } = true..true || false {}
299    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
300    |
301    = note: only supported directly in conditions of `if`- and `while`-expressions
302    = note: as well as when nested within `&&` and parenthesis in those conditions
303
304 error: `let` expressions are not supported here
305   --> $DIR/disallowed-positions.rs:142:11
306    |
307 LL |     while let Range { start: F, end } = F..|| true {}
308    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
309    |
310    = note: only supported directly in conditions of `if`- and `while`-expressions
311    = note: as well as when nested within `&&` and parenthesis in those conditions
312
313 error: `let` expressions are not supported here
314   --> $DIR/disallowed-positions.rs:150:11
315    |
316 LL |     while let Range { start: true, end } = t..&&false {}
317    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
318    |
319    = note: only supported directly in conditions of `if`- and `while`-expressions
320    = note: as well as when nested within `&&` and parenthesis in those conditions
321
322 error: `let` expressions are not supported here
323   --> $DIR/disallowed-positions.rs:156:22
324    |
325 LL |     while let true = let true = true {}
326    |                      ^^^^^^^^^^^^^^^
327    |
328    = note: only supported directly in conditions of `if`- and `while`-expressions
329    = note: as well as when nested within `&&` and parenthesis in those conditions
330
331 error: `let` expressions are not supported here
332   --> $DIR/disallowed-positions.rs:170:6
333    |
334 LL |     &let 0 = 0;
335    |      ^^^^^^^^^
336    |
337    = note: only supported directly in conditions of `if`- and `while`-expressions
338    = note: as well as when nested within `&&` and parenthesis in those conditions
339
340 error: `let` expressions are not supported here
341   --> $DIR/disallowed-positions.rs:172:6
342    |
343 LL |     !let 0 = 0;
344    |      ^^^^^^^^^
345    |
346    = note: only supported directly in conditions of `if`- and `while`-expressions
347    = note: as well as when nested within `&&` and parenthesis in those conditions
348
349 error: `let` expressions are not supported here
350   --> $DIR/disallowed-positions.rs:173:6
351    |
352 LL |     *let 0 = 0;
353    |      ^^^^^^^^^
354    |
355    = note: only supported directly in conditions of `if`- and `while`-expressions
356    = note: as well as when nested within `&&` and parenthesis in those conditions
357
358 error: `let` expressions are not supported here
359   --> $DIR/disallowed-positions.rs:175:6
360    |
361 LL |     -let 0 = 0;
362    |      ^^^^^^^^^
363    |
364    = note: only supported directly in conditions of `if`- and `while`-expressions
365    = note: as well as when nested within `&&` and parenthesis in those conditions
366
367 error: `let` expressions are not supported here
368   --> $DIR/disallowed-positions.rs:183:6
369    |
370 LL |     (let 0 = 0)?;
371    |      ^^^^^^^^^
372    |
373    = note: only supported directly in conditions of `if`- and `while`-expressions
374    = note: as well as when nested within `&&` and parenthesis in those conditions
375
376 error: `let` expressions are not supported here
377   --> $DIR/disallowed-positions.rs:187:13
378    |
379 LL |     true || let 0 = 0;
380    |             ^^^^^^^^^
381    |
382    = note: only supported directly in conditions of `if`- and `while`-expressions
383    = note: as well as when nested within `&&` and parenthesis in those conditions
384
385 error: `let` expressions are not supported here
386   --> $DIR/disallowed-positions.rs:188:14
387    |
388 LL |     (true || let 0 = 0);
389    |              ^^^^^^^^^
390    |
391    = note: only supported directly in conditions of `if`- and `while`-expressions
392    = note: as well as when nested within `&&` and parenthesis in those conditions
393
394 error: `let` expressions are not supported here
395   --> $DIR/disallowed-positions.rs:189:22
396    |
397 LL |     true && (true || let 0 = 0);
398    |                      ^^^^^^^^^
399    |
400    = note: only supported directly in conditions of `if`- and `while`-expressions
401    = note: as well as when nested within `&&` and parenthesis in those conditions
402
403 error: `let` expressions are not supported here
404   --> $DIR/disallowed-positions.rs:192:9
405    |
406 LL |     x = let 0 = 0;
407    |         ^^^^^^^^^
408    |
409    = note: only supported directly in conditions of `if`- and `while`-expressions
410    = note: as well as when nested within `&&` and parenthesis in those conditions
411
412 error: `let` expressions are not supported here
413   --> $DIR/disallowed-positions.rs:194:12
414    |
415 LL |     true..(let 0 = 0);
416    |            ^^^^^^^^^
417    |
418    = note: only supported directly in conditions of `if`- and `while`-expressions
419    = note: as well as when nested within `&&` and parenthesis in those conditions
420
421 error: `let` expressions are not supported here
422   --> $DIR/disallowed-positions.rs:195:8
423    |
424 LL |     ..(let 0 = 0);
425    |        ^^^^^^^^^
426    |
427    = note: only supported directly in conditions of `if`- and `while`-expressions
428    = note: as well as when nested within `&&` and parenthesis in those conditions
429
430 error: `let` expressions are not supported here
431   --> $DIR/disallowed-positions.rs:196:6
432    |
433 LL |     (let 0 = 0)..;
434    |      ^^^^^^^^^
435    |
436    = note: only supported directly in conditions of `if`- and `while`-expressions
437    = note: as well as when nested within `&&` and parenthesis in those conditions
438
439 error: `let` expressions are not supported here
440   --> $DIR/disallowed-positions.rs:198:6
441    |
442 LL |     (let Range { start: _, end: _ } = true..true || false);
443    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
444    |
445    = note: only supported directly in conditions of `if`- and `while`-expressions
446    = note: as well as when nested within `&&` and parenthesis in those conditions
447
448 error: `let` expressions are not supported here
449   --> $DIR/disallowed-positions.rs:202:6
450    |
451 LL |     (let true = let true = true);
452    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^
453    |
454    = note: only supported directly in conditions of `if`- and `while`-expressions
455    = note: as well as when nested within `&&` and parenthesis in those conditions
456
457 error: `let` expressions are not supported here
458   --> $DIR/disallowed-positions.rs:202:17
459    |
460 LL |     (let true = let true = true);
461    |                 ^^^^^^^^^^^^^^^
462    |
463    = note: only supported directly in conditions of `if`- and `while`-expressions
464    = note: as well as when nested within `&&` and parenthesis in those conditions
465
466 error: `let` expressions are not supported here
467   --> $DIR/disallowed-positions.rs:207:6
468    |
469 LL |     &let 0 = 0
470    |      ^^^^^^^^^
471    |
472    = note: only supported directly in conditions of `if`- and `while`-expressions
473    = note: as well as when nested within `&&` and parenthesis in those conditions
474
475 error: `let` expressions are not supported here
476   --> $DIR/disallowed-positions.rs:218:17
477    |
478 LL |         true && let 1 = 1
479    |                 ^^^^^^^^^
480    |
481    = note: only supported directly in conditions of `if`- and `while`-expressions
482    = note: as well as when nested within `&&` and parenthesis in those conditions
483
484 error: `let` expressions are not supported here
485   --> $DIR/disallowed-positions.rs:223:17
486    |
487 LL |         true && let 1 = 1
488    |                 ^^^^^^^^^
489    |
490    = note: only supported directly in conditions of `if`- and `while`-expressions
491    = note: as well as when nested within `&&` and parenthesis in those conditions
492
493 error: `let` expressions are not supported here
494   --> $DIR/disallowed-positions.rs:228:17
495    |
496 LL |         true && let 1 = 1
497    |                 ^^^^^^^^^
498    |
499    = note: only supported directly in conditions of `if`- and `while`-expressions
500    = note: as well as when nested within `&&` and parenthesis in those conditions
501
502 warning: the feature `const_generics` is incomplete and may cause the compiler to crash
503   --> $DIR/disallowed-positions.rs:20:12
504    |
505 LL | #![feature(const_generics)]
506    |            ^^^^^^^^^^^^^^
507    |
508    = note: `#[warn(incomplete_features)]` on by default
509
510 warning: the feature `let_chains` is incomplete and may cause the compiler to crash
511   --> $DIR/disallowed-positions.rs:22:12
512    |
513 LL | #![feature(let_chains)] // Avoid inflating `.stderr` with overzealous gates in this test.
514    |            ^^^^^^^^^^
515
516 error[E0744]: `match` is not allowed in a `const`
517   --> $DIR/disallowed-positions.rs:218:17
518    |
519 LL |         true && let 1 = 1
520    |                 ^^^^^^^^^
521
522 error[E0744]: `match` is not allowed in a `const`
523   --> $DIR/disallowed-positions.rs:223:17
524    |
525 LL |         true && let 1 = 1
526    |                 ^^^^^^^^^
527
528 error[E0744]: `match` is not allowed in a `const`
529   --> $DIR/disallowed-positions.rs:228:17
530    |
531 LL |         true && let 1 = 1
532    |                 ^^^^^^^^^
533
534 error[E0308]: mismatched types
535   --> $DIR/disallowed-positions.rs:32:8
536    |
537 LL |     if &let 0 = 0 {}
538    |        ^^^^^^^^^^
539    |        |
540    |        expected bool, found &bool
541    |        help: consider removing the borrow: `let 0 = 0`
542
543 error[E0614]: type `bool` cannot be dereferenced
544   --> $DIR/disallowed-positions.rs:36:8
545    |
546 LL |     if *let 0 = 0 {}
547    |        ^^^^^^^^^^
548
549 error[E0600]: cannot apply unary operator `-` to type `bool`
550   --> $DIR/disallowed-positions.rs:38:8
551    |
552 LL |     if -let 0 = 0 {}
553    |        ^^^^^^^^^^ cannot apply unary operator `-`
554    |
555    = note: an implementation of `std::ops::Neg` might be missing for `bool`
556
557 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
558   --> $DIR/disallowed-positions.rs:46:8
559    |
560 LL |     if (let 0 = 0)? {}
561    |        ^^^^^^^^^^^^ the `?` operator cannot be applied to type `bool`
562    |
563    = help: the trait `std::ops::Try` is not implemented for `bool`
564    = note: required by `std::ops::Try::into_result`
565
566 error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
567   --> $DIR/disallowed-positions.rs:46:8
568    |
569 LL |     if (let 0 = 0)? {}
570    |        ^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
571    |
572    = help: the trait `std::ops::Try` is not implemented for `()`
573    = note: required by `std::ops::Try::from_error`
574
575 error[E0308]: mismatched types
576   --> $DIR/disallowed-positions.rs:56:8
577    |
578 LL |     if x = let 0 = 0 {}
579    |        ^^^^^^^^^^^^^
580    |        |
581    |        expected bool, found ()
582    |        help: try comparing for equality: `x == let 0 = 0`
583
584 error[E0308]: mismatched types
585   --> $DIR/disallowed-positions.rs:59:8
586    |
587 LL |     if true..(let 0 = 0) {}
588    |        ^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
589    |
590    = note: expected type `bool`
591             found struct `std::ops::Range<bool>`
592
593 error[E0308]: mismatched types
594   --> $DIR/disallowed-positions.rs:61:8
595    |
596 LL |     if ..(let 0 = 0) {}
597    |        ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeTo`
598    |
599    = note: expected type `bool`
600             found struct `std::ops::RangeTo<bool>`
601
602 error[E0308]: mismatched types
603   --> $DIR/disallowed-positions.rs:63:8
604    |
605 LL |     if (let 0 = 0).. {}
606    |        ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeFrom`
607    |
608    = note: expected type `bool`
609             found struct `std::ops::RangeFrom<bool>`
610
611 error[E0308]: mismatched types
612   --> $DIR/disallowed-positions.rs:67:12
613    |
614 LL |     if let Range { start: _, end: _ } = true..true && false {}
615    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
616    |            |
617    |            expected bool, found struct `std::ops::Range`
618    |
619    = note: expected type `bool`
620             found struct `std::ops::Range<_>`
621
622 error[E0308]: mismatched types
623   --> $DIR/disallowed-positions.rs:67:8
624    |
625 LL |     if let Range { start: _, end: _ } = true..true && false {}
626    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
627    |
628    = note: expected type `bool`
629             found struct `std::ops::Range<bool>`
630
631 error[E0308]: mismatched types
632   --> $DIR/disallowed-positions.rs:71:12
633    |
634 LL |     if let Range { start: _, end: _ } = true..true || false {}
635    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
636    |            |
637    |            expected bool, found struct `std::ops::Range`
638    |
639    = note: expected type `bool`
640             found struct `std::ops::Range<_>`
641
642 error[E0308]: mismatched types
643   --> $DIR/disallowed-positions.rs:71:8
644    |
645 LL |     if let Range { start: _, end: _ } = true..true || false {}
646    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
647    |
648    = note: expected type `bool`
649             found struct `std::ops::Range<bool>`
650
651 error[E0308]: mismatched types
652   --> $DIR/disallowed-positions.rs:78:12
653    |
654 LL |     if let Range { start: F, end } = F..|| true {}
655    |            ^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::ops::Range`
656    |
657    = note: expected fn pointer `fn() -> bool`
658                   found struct `std::ops::Range<_>`
659
660 error[E0308]: mismatched types
661   --> $DIR/disallowed-positions.rs:78:41
662    |
663 LL |     if let Range { start: F, end } = F..|| true {}
664    |                                         ^^^^^^^ expected bool, found closure
665    |
666    = note: expected type `bool`
667            found closure `[closure@$DIR/disallowed-positions.rs:78:41: 78:48]`
668
669 error[E0308]: mismatched types
670   --> $DIR/disallowed-positions.rs:78:8
671    |
672 LL |     if let Range { start: F, end } = F..|| true {}
673    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
674    |
675    = note: expected type `bool`
676             found struct `std::ops::Range<bool>`
677
678 error[E0308]: mismatched types
679   --> $DIR/disallowed-positions.rs:86:12
680    |
681 LL |     if let Range { start: true, end } = t..&&false {}
682    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   - this match expression has type `bool`
683    |            |
684    |            expected bool, found struct `std::ops::Range`
685    |
686    = note: expected type `bool`
687             found struct `std::ops::Range<_>`
688
689 error[E0308]: mismatched types
690   --> $DIR/disallowed-positions.rs:86:44
691    |
692 LL |     if let Range { start: true, end } = t..&&false {}
693    |                                            ^^^^^^^ expected bool, found &&bool
694
695 error[E0308]: mismatched types
696   --> $DIR/disallowed-positions.rs:86:8
697    |
698 LL |     if let Range { start: true, end } = t..&&false {}
699    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
700    |
701    = note: expected type `bool`
702             found struct `std::ops::Range<bool>`
703
704 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
705   --> $DIR/disallowed-positions.rs:42:20
706    |
707 LL |         if let 0 = 0? {}
708    |                    ^^ the `?` operator cannot be applied to type `{integer}`
709    |
710    = help: the trait `std::ops::Try` is not implemented for `{integer}`
711    = note: required by `std::ops::Try::into_result`
712
713 error[E0308]: mismatched types
714   --> $DIR/disallowed-positions.rs:96:11
715    |
716 LL |     while &let 0 = 0 {}
717    |           ^^^^^^^^^^
718    |           |
719    |           expected bool, found &bool
720    |           help: consider removing the borrow: `let 0 = 0`
721
722 error[E0614]: type `bool` cannot be dereferenced
723   --> $DIR/disallowed-positions.rs:100:11
724    |
725 LL |     while *let 0 = 0 {}
726    |           ^^^^^^^^^^
727
728 error[E0600]: cannot apply unary operator `-` to type `bool`
729   --> $DIR/disallowed-positions.rs:102:11
730    |
731 LL |     while -let 0 = 0 {}
732    |           ^^^^^^^^^^ cannot apply unary operator `-`
733    |
734    = note: an implementation of `std::ops::Neg` might be missing for `bool`
735
736 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
737   --> $DIR/disallowed-positions.rs:110:11
738    |
739 LL |     while (let 0 = 0)? {}
740    |           ^^^^^^^^^^^^ the `?` operator cannot be applied to type `bool`
741    |
742    = help: the trait `std::ops::Try` is not implemented for `bool`
743    = note: required by `std::ops::Try::into_result`
744
745 error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
746   --> $DIR/disallowed-positions.rs:110:11
747    |
748 LL |     while (let 0 = 0)? {}
749    |           ^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
750    |
751    = help: the trait `std::ops::Try` is not implemented for `()`
752    = note: required by `std::ops::Try::from_error`
753
754 error[E0308]: mismatched types
755   --> $DIR/disallowed-positions.rs:120:11
756    |
757 LL |     while x = let 0 = 0 {}
758    |           ^^^^^^^^^^^^^
759    |           |
760    |           expected bool, found ()
761    |           help: try comparing for equality: `x == let 0 = 0`
762
763 error[E0308]: mismatched types
764   --> $DIR/disallowed-positions.rs:123:11
765    |
766 LL |     while true..(let 0 = 0) {}
767    |           ^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
768    |
769    = note: expected type `bool`
770             found struct `std::ops::Range<bool>`
771
772 error[E0308]: mismatched types
773   --> $DIR/disallowed-positions.rs:125:11
774    |
775 LL |     while ..(let 0 = 0) {}
776    |           ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeTo`
777    |
778    = note: expected type `bool`
779             found struct `std::ops::RangeTo<bool>`
780
781 error[E0308]: mismatched types
782   --> $DIR/disallowed-positions.rs:127:11
783    |
784 LL |     while (let 0 = 0).. {}
785    |           ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeFrom`
786    |
787    = note: expected type `bool`
788             found struct `std::ops::RangeFrom<bool>`
789
790 error[E0308]: mismatched types
791   --> $DIR/disallowed-positions.rs:131:15
792    |
793 LL |     while let Range { start: _, end: _ } = true..true && false {}
794    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
795    |               |
796    |               expected bool, found struct `std::ops::Range`
797    |
798    = note: expected type `bool`
799             found struct `std::ops::Range<_>`
800
801 error[E0308]: mismatched types
802   --> $DIR/disallowed-positions.rs:131:11
803    |
804 LL |     while let Range { start: _, end: _ } = true..true && false {}
805    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
806    |
807    = note: expected type `bool`
808             found struct `std::ops::Range<bool>`
809
810 error[E0308]: mismatched types
811   --> $DIR/disallowed-positions.rs:135:15
812    |
813 LL |     while let Range { start: _, end: _ } = true..true || false {}
814    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
815    |               |
816    |               expected bool, found struct `std::ops::Range`
817    |
818    = note: expected type `bool`
819             found struct `std::ops::Range<_>`
820
821 error[E0308]: mismatched types
822   --> $DIR/disallowed-positions.rs:135:11
823    |
824 LL |     while let Range { start: _, end: _ } = true..true || false {}
825    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
826    |
827    = note: expected type `bool`
828             found struct `std::ops::Range<bool>`
829
830 error[E0308]: mismatched types
831   --> $DIR/disallowed-positions.rs:142:15
832    |
833 LL |     while let Range { start: F, end } = F..|| true {}
834    |               ^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::ops::Range`
835    |
836    = note: expected fn pointer `fn() -> bool`
837                   found struct `std::ops::Range<_>`
838
839 error[E0308]: mismatched types
840   --> $DIR/disallowed-positions.rs:142:44
841    |
842 LL |     while let Range { start: F, end } = F..|| true {}
843    |                                            ^^^^^^^ expected bool, found closure
844    |
845    = note: expected type `bool`
846            found closure `[closure@$DIR/disallowed-positions.rs:142:44: 142:51]`
847
848 error[E0308]: mismatched types
849   --> $DIR/disallowed-positions.rs:142:11
850    |
851 LL |     while let Range { start: F, end } = F..|| true {}
852    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
853    |
854    = note: expected type `bool`
855             found struct `std::ops::Range<bool>`
856
857 error[E0308]: mismatched types
858   --> $DIR/disallowed-positions.rs:150:15
859    |
860 LL |     while let Range { start: true, end } = t..&&false {}
861    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   - this match expression has type `bool`
862    |               |
863    |               expected bool, found struct `std::ops::Range`
864    |
865    = note: expected type `bool`
866             found struct `std::ops::Range<_>`
867
868 error[E0308]: mismatched types
869   --> $DIR/disallowed-positions.rs:150:47
870    |
871 LL |     while let Range { start: true, end } = t..&&false {}
872    |                                               ^^^^^^^ expected bool, found &&bool
873
874 error[E0308]: mismatched types
875   --> $DIR/disallowed-positions.rs:150:11
876    |
877 LL |     while let Range { start: true, end } = t..&&false {}
878    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
879    |
880    = note: expected type `bool`
881             found struct `std::ops::Range<bool>`
882
883 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
884   --> $DIR/disallowed-positions.rs:106:23
885    |
886 LL |         while let 0 = 0? {}
887    |                       ^^ the `?` operator cannot be applied to type `{integer}`
888    |
889    = help: the trait `std::ops::Try` is not implemented for `{integer}`
890    = note: required by `std::ops::Try::into_result`
891
892 error[E0614]: type `bool` cannot be dereferenced
893   --> $DIR/disallowed-positions.rs:173:5
894    |
895 LL |     *let 0 = 0;
896    |     ^^^^^^^^^^
897
898 error[E0600]: cannot apply unary operator `-` to type `bool`
899   --> $DIR/disallowed-positions.rs:175:5
900    |
901 LL |     -let 0 = 0;
902    |     ^^^^^^^^^^ cannot apply unary operator `-`
903    |
904    = note: an implementation of `std::ops::Neg` might be missing for `bool`
905
906 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
907   --> $DIR/disallowed-positions.rs:183:5
908    |
909 LL |     (let 0 = 0)?;
910    |     ^^^^^^^^^^^^ the `?` operator cannot be applied to type `bool`
911    |
912    = help: the trait `std::ops::Try` is not implemented for `bool`
913    = note: required by `std::ops::Try::into_result`
914
915 error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
916   --> $DIR/disallowed-positions.rs:183:5
917    |
918 LL |     (let 0 = 0)?;
919    |     ^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
920    |
921    = help: the trait `std::ops::Try` is not implemented for `()`
922    = note: required by `std::ops::Try::from_error`
923
924 error[E0308]: mismatched types
925   --> $DIR/disallowed-positions.rs:198:10
926    |
927 LL |     (let Range { start: _, end: _ } = true..true || false);
928    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
929    |          |
930    |          expected bool, found struct `std::ops::Range`
931    |
932    = note: expected type `bool`
933             found struct `std::ops::Range<_>`
934
935 error[E0308]: mismatched types
936   --> $DIR/disallowed-positions.rs:207:5
937    |
938 LL | fn outside_if_and_while_expr() {
939    |                                - help: try adding a return type: `-> &bool`
940 ...
941 LL |     &let 0 = 0
942    |     ^^^^^^^^^^ expected (), found &bool
943
944 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
945   --> $DIR/disallowed-positions.rs:179:17
946    |
947 LL |         let 0 = 0?;
948    |                 ^^ the `?` operator cannot be applied to type `{integer}`
949    |
950    = help: the trait `std::ops::Try` is not implemented for `{integer}`
951    = note: required by `std::ops::Try::into_result`
952
953 error: aborting due to 106 previous errors
954
955 Some errors have detailed explanations: E0277, E0308, E0600, E0614, E0744.
956 For more information about an error, try `rustc --explain E0277`.