33#![ feature( explicit_tail_calls) ]
44
55fn a ( ) {
6- let foo = {
7- //~^ WARN irrefutable `let...else` pattern
6+ let 0 = {
87 1
98 } else {
109 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -22,8 +21,7 @@ fn b() {
2221}
2322
2423fn c ( ) {
25- let foo = if true {
26- //~^ WARN irrefutable `let...else` pattern
24+ let 0 = if true {
2725 1
2826 } else {
2927 0
@@ -43,8 +41,7 @@ fn d() {
4341}
4442
4543fn e ( ) {
46- let foo = match true {
47- //~^ WARN irrefutable `let...else` pattern
44+ let 0 = match true {
4845 true => 1 ,
4946 false => 0
5047 } else {
@@ -53,10 +50,12 @@ fn e() {
5350 } ;
5451}
5552
56- struct X { a : i32 }
5753fn f ( ) {
58- let foo = X {
59- //~^ WARN irrefutable `let...else` pattern
54+ struct X {
55+ a : i32 ,
56+ }
57+
58+ let X { a : 0 } = X {
6059 a : 1
6160 } else {
6261 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -74,8 +73,7 @@ fn g() {
7473}
7574
7675fn h ( ) {
77- let foo = const {
78- //~^ WARN irrefutable `let...else` pattern
76+ let 0 = const {
7977 1
8078 } else {
8179 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -84,8 +82,7 @@ fn h() {
8482}
8583
8684fn i ( ) {
87- let foo = & {
88- //~^ WARN irrefutable `let...else` pattern
85+ let 0 = & {
8986 1
9087 } else {
9188 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -94,8 +91,8 @@ fn i() {
9491}
9592
9693fn j ( ) {
97- let bar = 0 ;
98- let foo = bar = { //~ ERROR: cannot assign twice
94+ let mut bar = 0 ;
95+ let foo = bar = {
9996 //~^ WARN irrefutable `let...else` pattern
10097 1
10198 } else {
@@ -105,8 +102,7 @@ fn j() {
105102}
106103
107104fn k ( ) {
108- let foo = 1 + {
109- //~^ WARN irrefutable `let...else` pattern
105+ let 0 = 1 + {
110106 1
111107 } else {
112108 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -115,8 +111,8 @@ fn k() {
115111}
116112
117113fn l ( ) {
118- let foo = 1 .. {
119- //~^ WARN irrefutable `let...else` pattern
114+ const RANGE : std :: ops :: Range < u8 > = 0 .. 0 ;
115+ let RANGE = 1 .. {
120116 1
121117 } else {
122118 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -125,8 +121,7 @@ fn l() {
125121}
126122
127123fn m ( ) {
128- let foo = return {
129- //~^ WARN irrefutable `let...else` pattern
124+ let 0 = return {
130125 ( )
131126 } else {
132127 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -135,8 +130,7 @@ fn m() {
135130}
136131
137132fn n ( ) {
138- let foo = -{
139- //~^ WARN irrefutable `let...else` pattern
133+ let 0 = -{
140134 1
141135 } else {
142136 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -145,8 +139,7 @@ fn n() {
145139}
146140
147141fn o ( ) -> Result < ( ) , ( ) > {
148- let foo = do yeet {
149- //~^ WARN irrefutable `let...else` pattern
142+ let 0 = do yeet {
150143 ( )
151144 } else {
152145 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -155,8 +148,7 @@ fn o() -> Result<(), ()> {
155148}
156149
157150fn p ( ) {
158- let foo = become {
159- //~^ WARN irrefutable `let...else` pattern
151+ let 0 = become {
160152 ( )
161153 } else {
162154 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
@@ -185,22 +177,23 @@ fn r() {
185177
186178fn s ( ) {
187179 macro_rules! a {
188- ( ) => { { } }
189- //~^ WARN irrefutable `let...else` pattern
190- //~| WARN irrefutable `let...else` pattern
180+ ( ) => {
181+ { 1 }
182+ } ;
191183 }
192184
193185 macro_rules! b {
194186 ( 1 ) => {
195- let x = a!( ) else { return ; } ;
187+ let 0 = a!( ) else { return ; } ;
196188 } ;
197189 ( 2 ) => {
198- let x = a! { } else { return ; } ;
190+ let 0 = a! { } else { return ; } ;
199191 //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed
200192 } ;
201193 }
202194
203- b ! ( 1 ) ; b ! ( 2 ) ;
195+ b ! ( 1 ) ;
196+ b ! ( 2 ) ;
204197}
205198
206199fn main ( ) { }
0 commit comments