mirror of
				https://github.com/golang/go.git
				synced 2025-10-31 08:40:55 +00:00 
			
		
		
		
	 fd9fac2c7c
			
		
	
	
		fd9fac2c7c
		
	
	
	
	
		
			
			Follow CL 41477 and add two more line position tests for yyerror calls in the typechecker which are currently not tested. Update #19683 Change-Id: Iacd865195a3bfba87d8c22655382af267aba47a9 Reviewed-on: https://go-review.googlesource.com/70251 Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com>
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // errorcheck
 | |
| 
 | |
| // Copyright 2009 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.
 | |
| 
 | |
| // Verify that pointers and interface types cannot be method receivers.
 | |
| // Does not compile.
 | |
| 
 | |
| package main
 | |
| 
 | |
| type T struct {
 | |
| 	a int
 | |
| }
 | |
| type P *T
 | |
| type P1 *T
 | |
| 
 | |
| func (p P) val() int   { return 1 } // ERROR "receiver.* pointer|invalid pointer or interface receiver"
 | |
| func (p *P1) val() int { return 1 } // ERROR "receiver.* pointer|invalid pointer or interface receiver"
 | |
| 
 | |
| type I interface{}
 | |
| type I1 interface{}
 | |
| 
 | |
| func (p I) val() int   { return 1 } // ERROR "receiver.*interface|invalid pointer or interface receiver"
 | |
| func (p *I1) val() int { return 1 } // ERROR "receiver.*interface|invalid pointer or interface receiver"
 | |
| 
 | |
| type Val interface {
 | |
| 	val() int
 | |
| }
 | |
| 
 | |
| var _ = (*Val).val // ERROR "method"
 | |
| 
 | |
| var v Val
 | |
| var pv = &v
 | |
| 
 | |
| var _ = pv.val() // ERROR "pv.val undefined"
 | |
| var _ = pv.val   // ERROR "pv.val undefined"
 | |
| 
 | |
| func (t *T) g() int { return t.a }
 | |
| 
 | |
| var _ = (T).g() // ERROR "needs pointer receiver|undefined"
 |