| 
									
										
										
										
											2015-11-19 15:43:05 -08:00
										 |  |  | // errorcheck | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Copyright 2015 The Go Authors. All rights reserved. | 
					
						
							|  |  |  | // Use of this source code is governed by a BSD-style | 
					
						
							|  |  |  | // license that can be found in the LICENSE file. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-20 16:49:30 -08:00
										 |  |  | // Verify that erroneous switch statements are detected by the compiler. | 
					
						
							|  |  |  | // Does not compile. | 
					
						
							| 
									
										
										
										
											2015-11-19 15:43:05 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-20 16:49:30 -08:00
										 |  |  | func f() { | 
					
						
							| 
									
										
										
										
											2015-11-19 15:43:05 -08:00
										 |  |  | 	switch { | 
					
						
							| 
									
										
										
										
											2016-06-06 17:59:05 -07:00
										 |  |  | 	case 0; // ERROR "expecting := or = or : or comma|expecting :" | 
					
						
							| 
									
										
										
										
											2015-11-19 15:43:05 -08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	switch { | 
					
						
							| 
									
										
										
										
											2016-06-06 17:59:05 -07:00
										 |  |  | 	case 0; // ERROR "expecting := or = or : or comma|expecting :" | 
					
						
							| 
									
										
										
										
											2015-11-19 15:43:05 -08:00
										 |  |  | 	default: | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-20 16:49:30 -08:00
										 |  |  | 	switch { | 
					
						
							|  |  |  | 	case 0: case 0: default: | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	switch { | 
					
						
							|  |  |  | 	case 0: f(); case 0: | 
					
						
							|  |  |  | 	case 0: f() case 0: // ERROR "unexpected case at end of statement" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	switch { | 
					
						
							|  |  |  | 	case 0: f(); default: | 
					
						
							|  |  |  | 	case 0: f() default: // ERROR "unexpected default at end of statement" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 15:43:05 -08:00
										 |  |  | 	switch { | 
					
						
							|  |  |  | 	if x: // ERROR "expecting case or default or }" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |