| 
									
										
										
										
											2012-02-16 23:51:04 -05:00
										 |  |  | // errorcheck | 
					
						
							| 
									
										
										
										
											2010-06-12 11:17:24 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-10 14:32:26 -07:00
										 |  |  | // Copyright 2010 The Go Authors. All rights reserved. | 
					
						
							| 
									
										
										
										
											2010-06-12 11:17:24 -07:00
										 |  |  | // Use of this source code is governed by a BSD-style | 
					
						
							|  |  |  | // license that can be found in the LICENSE file. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-24 11:48:19 +11:00
										 |  |  | // Test line numbers in error messages. | 
					
						
							|  |  |  | // Does not compile. | 
					
						
							| 
									
										
										
										
											2010-06-12 11:17:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var ( | 
					
						
							| 
									
										
										
										
											2010-09-10 12:44:37 -07:00
										 |  |  | 	_ = x	// ERROR "undefined.*x" | 
					
						
							|  |  |  | 	_ = x	// ERROR "undefined.*x" | 
					
						
							|  |  |  | 	_ = x	// ERROR "undefined.*x" | 
					
						
							| 
									
										
										
										
											2010-06-12 11:17:24 -07:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type T struct { | 
					
						
							|  |  |  | 	y int | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func foo() *T { return &T{y: 99} } | 
					
						
							| 
									
										
										
										
											2010-09-10 12:44:37 -07:00
										 |  |  | func bar() int { return y }	// ERROR "undefined.*y" | 
					
						
							| 
									
										
										
										
											2010-06-12 11:17:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | type T1 struct { | 
					
						
							|  |  |  | 	y1 int | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func foo1() *T1 { return &T1{y1: 99} } | 
					
						
							|  |  |  | var y1 = 2 | 
					
						
							|  |  |  | func bar1() int { return y1 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func f1(val interface{}) { | 
					
						
							|  |  |  | 	switch v := val.(type) { | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		println(v) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func f2(val interface{}) { | 
					
						
							|  |  |  | 	switch val.(type) { | 
					
						
							|  |  |  | 	default: | 
					
						
							| 
									
										
										
										
											2010-09-10 12:44:37 -07:00
										 |  |  | 		println(v)	// ERROR "undefined.*v" | 
					
						
							| 
									
										
										
										
											2010-06-12 11:17:24 -07:00
										 |  |  | 	} | 
					
						
							|  |  |  | } |