mirror of
				https://github.com/golang/go.git
				synced 2025-10-31 00:30:57 +00:00 
			
		
		
		
	 53fd522c0d
			
		
	
	
		53fd522c0d
		
	
	
	
	
		
			
			Follows suit with https://go-review.googlesource.com/#/c/20111. Generated by running $ grep -R 'Go Authors. All' * | cut -d":" -f1 | while read F;do perl -pi -e 's/Go Authors. All/Go Authors. All/g' $F;done The code in cmd/internal/unvendor wasn't changed. Fixes #15213 Change-Id: I4f235cee0a62ec435f9e8540a1ec08ae03b1a75f Reviewed-on: https://go-review.googlesource.com/21819 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
		
			
				
	
	
		
			128 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // run
 | |
| 
 | |
| // Copyright 2013 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.
 | |
| 
 | |
| package main
 | |
| 
 | |
| func main() {
 | |
| 	ok := true
 | |
| 	for _, tt := range tests {
 | |
| 		func() {
 | |
| 			defer func() {
 | |
| 				if err := recover(); err == nil {
 | |
| 					println(tt.name, "did not panic")
 | |
| 					ok = false
 | |
| 				}
 | |
| 			}()
 | |
| 			tt.fn()
 | |
| 		}()
 | |
| 	}
 | |
| 	if !ok {
 | |
| 		println("BUG")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| var intp *int
 | |
| var slicep *[]byte
 | |
| var a10p *[10]int
 | |
| var a10Mp *[1<<20]int
 | |
| var structp *Struct
 | |
| var bigstructp *BigStruct
 | |
| var i int
 | |
| var m *M
 | |
| var m1 *M1
 | |
| var m2 *M2
 | |
| 
 | |
| func use(interface{}) {
 | |
| }
 | |
| 
 | |
| var tests = []struct{
 | |
| 	name string
 | |
| 	fn func()
 | |
| }{
 | |
| 	// Edit .+1,/^}/s/^[^	].+/	{"&", func() { println(&) }},\n	{"\&&", func() { println(\&&) }},/g
 | |
| 	{"*intp", func() { println(*intp) }},
 | |
| 	{"&*intp", func() { println(&*intp) }},
 | |
| 	{"*slicep", func() { println(*slicep) }},
 | |
| 	{"&*slicep", func() { println(&*slicep) }},
 | |
| 	{"(*slicep)[0]", func() { println((*slicep)[0]) }},
 | |
| 	{"&(*slicep)[0]", func() { println(&(*slicep)[0]) }},
 | |
| 	{"(*slicep)[i]", func() { println((*slicep)[i]) }},
 | |
| 	{"&(*slicep)[i]", func() { println(&(*slicep)[i]) }},
 | |
| 	{"*a10p", func() { use(*a10p) }},
 | |
| 	{"&*a10p", func() { println(&*a10p) }},
 | |
| 	{"a10p[0]", func() { println(a10p[0]) }},
 | |
| 	{"&a10p[0]", func() { println(&a10p[0]) }},
 | |
| 	{"a10p[i]", func() { println(a10p[i]) }},
 | |
| 	{"&a10p[i]", func() { println(&a10p[i]) }},
 | |
| 	{"*structp", func() { use(*structp) }},
 | |
| 	{"&*structp", func() { println(&*structp) }},
 | |
| 	{"structp.i", func() { println(structp.i) }},
 | |
| 	{"&structp.i", func() { println(&structp.i) }},
 | |
| 	{"structp.j", func() { println(structp.j) }},
 | |
| 	{"&structp.j", func() { println(&structp.j) }},
 | |
| 	{"structp.k", func() { println(structp.k) }},
 | |
| 	{"&structp.k", func() { println(&structp.k) }},
 | |
| 	{"structp.x[0]", func() { println(structp.x[0]) }},
 | |
| 	{"&structp.x[0]", func() { println(&structp.x[0]) }},
 | |
| 	{"structp.x[i]", func() { println(structp.x[i]) }},
 | |
| 	{"&structp.x[i]", func() { println(&structp.x[i]) }},
 | |
| 	{"structp.x[9]", func() { println(structp.x[9]) }},
 | |
| 	{"&structp.x[9]", func() { println(&structp.x[9]) }},
 | |
| 	{"structp.l", func() { println(structp.l) }},
 | |
| 	{"&structp.l", func() { println(&structp.l) }},
 | |
| 	{"*bigstructp", func() { use(*bigstructp) }},
 | |
| 	{"&*bigstructp", func() { println(&*bigstructp) }},
 | |
| 	{"bigstructp.i", func() { println(bigstructp.i) }},
 | |
| 	{"&bigstructp.i", func() { println(&bigstructp.i) }},
 | |
| 	{"bigstructp.j", func() { println(bigstructp.j) }},
 | |
| 	{"&bigstructp.j", func() { println(&bigstructp.j) }},
 | |
| 	{"bigstructp.k", func() { println(bigstructp.k) }},
 | |
| 	{"&bigstructp.k", func() { println(&bigstructp.k) }},
 | |
| 	{"bigstructp.x[0]", func() { println(bigstructp.x[0]) }},
 | |
| 	{"&bigstructp.x[0]", func() { println(&bigstructp.x[0]) }},
 | |
| 	{"bigstructp.x[i]", func() { println(bigstructp.x[i]) }},
 | |
| 	{"&bigstructp.x[i]", func() { println(&bigstructp.x[i]) }},
 | |
| 	{"bigstructp.x[9]", func() { println(bigstructp.x[9]) }},
 | |
| 	{"&bigstructp.x[9]", func() { println(&bigstructp.x[9]) }},
 | |
| 	{"bigstructp.x[100<<20]", func() { println(bigstructp.x[100<<20]) }},
 | |
| 	{"&bigstructp.x[100<<20]", func() { println(&bigstructp.x[100<<20]) }},
 | |
| 	{"bigstructp.l", func() { println(bigstructp.l) }},
 | |
| 	{"&bigstructp.l", func() { println(&bigstructp.l) }},
 | |
| 	{"m1.F()", func() { println(m1.F()) }},
 | |
| 	{"m1.M.F()", func() { println(m1.M.F()) }},
 | |
| 	{"m2.F()", func() { println(m2.F()) }},
 | |
| 	{"m2.M.F()", func() { println(m2.M.F()) }},
 | |
| }
 | |
| 
 | |
| type Struct struct {
 | |
| 	i int
 | |
| 	j float64
 | |
| 	k string
 | |
| 	x [10]int
 | |
| 	l []byte
 | |
| }
 | |
| 
 | |
| type BigStruct struct {
 | |
| 	i int
 | |
| 	j float64
 | |
| 	k string
 | |
| 	x [128<<20]byte
 | |
| 	l []byte
 | |
| }
 | |
| 
 | |
| type M struct {
 | |
| }
 | |
| 
 | |
| func (m *M) F() int {return 0}
 | |
| 
 | |
| type M1 struct {
 | |
| 	M
 | |
| }
 | |
| 
 | |
| type M2 struct {
 | |
| 	x int
 | |
| 	M
 | |
| }
 |