]> git.lizzy.rs Git - rust.git/blob - src/test/ui/rfc-2497-if-let-chains/disallowed-positions.stderr
b7f16a8d5bbd9d62de4d5bc2ccadeddab6d00520
[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    = note:   expected type `bool`
544            found reference `&bool`
545
546 error[E0614]: type `bool` cannot be dereferenced
547   --> $DIR/disallowed-positions.rs:36:8
548    |
549 LL |     if *let 0 = 0 {}
550    |        ^^^^^^^^^^
551
552 error[E0600]: cannot apply unary operator `-` to type `bool`
553   --> $DIR/disallowed-positions.rs:38:8
554    |
555 LL |     if -let 0 = 0 {}
556    |        ^^^^^^^^^^ cannot apply unary operator `-`
557    |
558    = note: an implementation of `std::ops::Neg` might be missing for `bool`
559
560 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
561   --> $DIR/disallowed-positions.rs:46:8
562    |
563 LL |     if (let 0 = 0)? {}
564    |        ^^^^^^^^^^^^ the `?` operator cannot be applied to type `bool`
565    |
566    = help: the trait `std::ops::Try` is not implemented for `bool`
567    = note: required by `std::ops::Try::into_result`
568
569 error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
570   --> $DIR/disallowed-positions.rs:46:8
571    |
572 LL |     if (let 0 = 0)? {}
573    |        ^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
574    |
575    = help: the trait `std::ops::Try` is not implemented for `()`
576    = note: required by `std::ops::Try::from_error`
577
578 error[E0308]: mismatched types
579   --> $DIR/disallowed-positions.rs:56:8
580    |
581 LL |     if x = let 0 = 0 {}
582    |        ^^^^^^^^^^^^^
583    |        |
584    |        expected bool, found ()
585    |        help: try comparing for equality: `x == let 0 = 0`
586    |
587    = note:   expected type `bool`
588            found unit type `()`
589
590 error[E0308]: mismatched types
591   --> $DIR/disallowed-positions.rs:59:8
592    |
593 LL |     if true..(let 0 = 0) {}
594    |        ^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
595    |
596    = note: expected type `bool`
597             found struct `std::ops::Range<bool>`
598
599 error[E0308]: mismatched types
600   --> $DIR/disallowed-positions.rs:61:8
601    |
602 LL |     if ..(let 0 = 0) {}
603    |        ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeTo`
604    |
605    = note: expected type `bool`
606             found struct `std::ops::RangeTo<bool>`
607
608 error[E0308]: mismatched types
609   --> $DIR/disallowed-positions.rs:63:8
610    |
611 LL |     if (let 0 = 0).. {}
612    |        ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeFrom`
613    |
614    = note: expected type `bool`
615             found struct `std::ops::RangeFrom<bool>`
616
617 error[E0308]: mismatched types
618   --> $DIR/disallowed-positions.rs:67:12
619    |
620 LL |     if let Range { start: _, end: _ } = true..true && false {}
621    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
622    |            |
623    |            expected bool, found struct `std::ops::Range`
624    |
625    = note: expected type `bool`
626             found struct `std::ops::Range<_>`
627
628 error[E0308]: mismatched types
629   --> $DIR/disallowed-positions.rs:67:8
630    |
631 LL |     if let Range { start: _, end: _ } = true..true && false {}
632    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
633    |
634    = note: expected type `bool`
635             found struct `std::ops::Range<bool>`
636
637 error[E0308]: mismatched types
638   --> $DIR/disallowed-positions.rs:71:12
639    |
640 LL |     if let Range { start: _, end: _ } = true..true || false {}
641    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
642    |            |
643    |            expected bool, found struct `std::ops::Range`
644    |
645    = note: expected type `bool`
646             found struct `std::ops::Range<_>`
647
648 error[E0308]: mismatched types
649   --> $DIR/disallowed-positions.rs:71:8
650    |
651 LL |     if let Range { start: _, end: _ } = true..true || false {}
652    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
653    |
654    = note: expected type `bool`
655             found struct `std::ops::Range<bool>`
656
657 error[E0308]: mismatched types
658   --> $DIR/disallowed-positions.rs:78:12
659    |
660 LL |     if let Range { start: F, end } = F..|| true {}
661    |            ^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::ops::Range`
662    |
663    = note: expected fn pointer `fn() -> bool`
664                   found struct `std::ops::Range<_>`
665
666 error[E0308]: mismatched types
667   --> $DIR/disallowed-positions.rs:78:41
668    |
669 LL |     if let Range { start: F, end } = F..|| true {}
670    |                                         ^^^^^^^ expected bool, found closure
671    |
672    = note: expected type `bool`
673            found closure `[closure@$DIR/disallowed-positions.rs:78:41: 78:48]`
674
675 error[E0308]: mismatched types
676   --> $DIR/disallowed-positions.rs:78:8
677    |
678 LL |     if let Range { start: F, end } = F..|| true {}
679    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
680    |
681    = note: expected type `bool`
682             found struct `std::ops::Range<bool>`
683
684 error[E0308]: mismatched types
685   --> $DIR/disallowed-positions.rs:86:12
686    |
687 LL |     if let Range { start: true, end } = t..&&false {}
688    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   - this match expression has type `bool`
689    |            |
690    |            expected bool, found struct `std::ops::Range`
691    |
692    = note: expected type `bool`
693             found struct `std::ops::Range<_>`
694
695 error[E0308]: mismatched types
696   --> $DIR/disallowed-positions.rs:86:44
697    |
698 LL |     if let Range { start: true, end } = t..&&false {}
699    |                                            ^^^^^^^ expected bool, found &&bool
700    |
701    = note:   expected type `bool`
702            found reference `&&bool`
703
704 error[E0308]: mismatched types
705   --> $DIR/disallowed-positions.rs:86:8
706    |
707 LL |     if let Range { start: true, end } = t..&&false {}
708    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
709    |
710    = note: expected type `bool`
711             found struct `std::ops::Range<bool>`
712
713 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
714   --> $DIR/disallowed-positions.rs:42:20
715    |
716 LL |         if let 0 = 0? {}
717    |                    ^^ the `?` operator cannot be applied to type `{integer}`
718    |
719    = help: the trait `std::ops::Try` is not implemented for `{integer}`
720    = note: required by `std::ops::Try::into_result`
721
722 error[E0308]: mismatched types
723   --> $DIR/disallowed-positions.rs:96:11
724    |
725 LL |     while &let 0 = 0 {}
726    |           ^^^^^^^^^^
727    |           |
728    |           expected bool, found &bool
729    |           help: consider removing the borrow: `let 0 = 0`
730    |
731    = note:   expected type `bool`
732            found reference `&bool`
733
734 error[E0614]: type `bool` cannot be dereferenced
735   --> $DIR/disallowed-positions.rs:100:11
736    |
737 LL |     while *let 0 = 0 {}
738    |           ^^^^^^^^^^
739
740 error[E0600]: cannot apply unary operator `-` to type `bool`
741   --> $DIR/disallowed-positions.rs:102:11
742    |
743 LL |     while -let 0 = 0 {}
744    |           ^^^^^^^^^^ cannot apply unary operator `-`
745    |
746    = note: an implementation of `std::ops::Neg` might be missing for `bool`
747
748 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
749   --> $DIR/disallowed-positions.rs:110:11
750    |
751 LL |     while (let 0 = 0)? {}
752    |           ^^^^^^^^^^^^ the `?` operator cannot be applied to type `bool`
753    |
754    = help: the trait `std::ops::Try` is not implemented for `bool`
755    = note: required by `std::ops::Try::into_result`
756
757 error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
758   --> $DIR/disallowed-positions.rs:110:11
759    |
760 LL |     while (let 0 = 0)? {}
761    |           ^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
762    |
763    = help: the trait `std::ops::Try` is not implemented for `()`
764    = note: required by `std::ops::Try::from_error`
765
766 error[E0308]: mismatched types
767   --> $DIR/disallowed-positions.rs:120:11
768    |
769 LL |     while x = let 0 = 0 {}
770    |           ^^^^^^^^^^^^^
771    |           |
772    |           expected bool, found ()
773    |           help: try comparing for equality: `x == let 0 = 0`
774    |
775    = note:   expected type `bool`
776            found unit type `()`
777
778 error[E0308]: mismatched types
779   --> $DIR/disallowed-positions.rs:123:11
780    |
781 LL |     while true..(let 0 = 0) {}
782    |           ^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
783    |
784    = note: expected type `bool`
785             found struct `std::ops::Range<bool>`
786
787 error[E0308]: mismatched types
788   --> $DIR/disallowed-positions.rs:125:11
789    |
790 LL |     while ..(let 0 = 0) {}
791    |           ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeTo`
792    |
793    = note: expected type `bool`
794             found struct `std::ops::RangeTo<bool>`
795
796 error[E0308]: mismatched types
797   --> $DIR/disallowed-positions.rs:127:11
798    |
799 LL |     while (let 0 = 0).. {}
800    |           ^^^^^^^^^^^^^ expected bool, found struct `std::ops::RangeFrom`
801    |
802    = note: expected type `bool`
803             found struct `std::ops::RangeFrom<bool>`
804
805 error[E0308]: mismatched types
806   --> $DIR/disallowed-positions.rs:131:15
807    |
808 LL |     while let Range { start: _, end: _ } = true..true && false {}
809    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
810    |               |
811    |               expected bool, found struct `std::ops::Range`
812    |
813    = note: expected type `bool`
814             found struct `std::ops::Range<_>`
815
816 error[E0308]: mismatched types
817   --> $DIR/disallowed-positions.rs:131:11
818    |
819 LL |     while let Range { start: _, end: _ } = true..true && false {}
820    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
821    |
822    = note: expected type `bool`
823             found struct `std::ops::Range<bool>`
824
825 error[E0308]: mismatched types
826   --> $DIR/disallowed-positions.rs:135:15
827    |
828 LL |     while let Range { start: _, end: _ } = true..true || false {}
829    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
830    |               |
831    |               expected bool, found struct `std::ops::Range`
832    |
833    = note: expected type `bool`
834             found struct `std::ops::Range<_>`
835
836 error[E0308]: mismatched types
837   --> $DIR/disallowed-positions.rs:135:11
838    |
839 LL |     while let Range { start: _, end: _ } = true..true || false {}
840    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
841    |
842    = note: expected type `bool`
843             found struct `std::ops::Range<bool>`
844
845 error[E0308]: mismatched types
846   --> $DIR/disallowed-positions.rs:142:15
847    |
848 LL |     while let Range { start: F, end } = F..|| true {}
849    |               ^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::ops::Range`
850    |
851    = note: expected fn pointer `fn() -> bool`
852                   found struct `std::ops::Range<_>`
853
854 error[E0308]: mismatched types
855   --> $DIR/disallowed-positions.rs:142:44
856    |
857 LL |     while let Range { start: F, end } = F..|| true {}
858    |                                            ^^^^^^^ expected bool, found closure
859    |
860    = note: expected type `bool`
861            found closure `[closure@$DIR/disallowed-positions.rs:142:44: 142:51]`
862
863 error[E0308]: mismatched types
864   --> $DIR/disallowed-positions.rs:142:11
865    |
866 LL |     while let Range { start: F, end } = F..|| true {}
867    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
868    |
869    = note: expected type `bool`
870             found struct `std::ops::Range<bool>`
871
872 error[E0308]: mismatched types
873   --> $DIR/disallowed-positions.rs:150:15
874    |
875 LL |     while let Range { start: true, end } = t..&&false {}
876    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   - this match expression has type `bool`
877    |               |
878    |               expected bool, found struct `std::ops::Range`
879    |
880    = note: expected type `bool`
881             found struct `std::ops::Range<_>`
882
883 error[E0308]: mismatched types
884   --> $DIR/disallowed-positions.rs:150:47
885    |
886 LL |     while let Range { start: true, end } = t..&&false {}
887    |                                               ^^^^^^^ expected bool, found &&bool
888    |
889    = note:   expected type `bool`
890            found reference `&&bool`
891
892 error[E0308]: mismatched types
893   --> $DIR/disallowed-positions.rs:150:11
894    |
895 LL |     while let Range { start: true, end } = t..&&false {}
896    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found struct `std::ops::Range`
897    |
898    = note: expected type `bool`
899             found struct `std::ops::Range<bool>`
900
901 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
902   --> $DIR/disallowed-positions.rs:106:23
903    |
904 LL |         while let 0 = 0? {}
905    |                       ^^ the `?` operator cannot be applied to type `{integer}`
906    |
907    = help: the trait `std::ops::Try` is not implemented for `{integer}`
908    = note: required by `std::ops::Try::into_result`
909
910 error[E0614]: type `bool` cannot be dereferenced
911   --> $DIR/disallowed-positions.rs:173:5
912    |
913 LL |     *let 0 = 0;
914    |     ^^^^^^^^^^
915
916 error[E0600]: cannot apply unary operator `-` to type `bool`
917   --> $DIR/disallowed-positions.rs:175:5
918    |
919 LL |     -let 0 = 0;
920    |     ^^^^^^^^^^ cannot apply unary operator `-`
921    |
922    = note: an implementation of `std::ops::Neg` might be missing for `bool`
923
924 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
925   --> $DIR/disallowed-positions.rs:183:5
926    |
927 LL |     (let 0 = 0)?;
928    |     ^^^^^^^^^^^^ the `?` operator cannot be applied to type `bool`
929    |
930    = help: the trait `std::ops::Try` is not implemented for `bool`
931    = note: required by `std::ops::Try::into_result`
932
933 error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
934   --> $DIR/disallowed-positions.rs:183:5
935    |
936 LL |     (let 0 = 0)?;
937    |     ^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
938    |
939    = help: the trait `std::ops::Try` is not implemented for `()`
940    = note: required by `std::ops::Try::from_error`
941
942 error[E0308]: mismatched types
943   --> $DIR/disallowed-positions.rs:198:10
944    |
945 LL |     (let Range { start: _, end: _ } = true..true || false);
946    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this match expression has type `bool`
947    |          |
948    |          expected bool, found struct `std::ops::Range`
949    |
950    = note: expected type `bool`
951             found struct `std::ops::Range<_>`
952
953 error[E0308]: mismatched types
954   --> $DIR/disallowed-positions.rs:207:5
955    |
956 LL | fn outside_if_and_while_expr() {
957    |                                - help: try adding a return type: `-> &bool`
958 ...
959 LL |     &let 0 = 0
960    |     ^^^^^^^^^^ expected (), found &bool
961    |
962    = note: expected unit type `()`
963               found reference `&bool`
964
965 error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
966   --> $DIR/disallowed-positions.rs:179:17
967    |
968 LL |         let 0 = 0?;
969    |                 ^^ the `?` operator cannot be applied to type `{integer}`
970    |
971    = help: the trait `std::ops::Try` is not implemented for `{integer}`
972    = note: required by `std::ops::Try::into_result`
973
974 error: aborting due to 106 previous errors
975
976 Some errors have detailed explanations: E0277, E0308, E0600, E0614, E0744.
977 For more information about an error, try `rustc --explain E0277`.