mirror of
				https://github.com/golang/go.git
				synced 2025-10-31 16:50:58 +00:00 
			
		
		
		
	
		
			
	
	
		
			344 lines
		
	
	
	
		
			4.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			344 lines
		
	
	
	
		
			4.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|   | // errchk $G -e $D/$F.go | ||
|  | 
 | ||
|  | // 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. | ||
|  | 
 | ||
|  | package main | ||
|  | 
 | ||
|  | type ( | ||
|  | 	A [10]int | ||
|  | 	B []int | ||
|  | 	C chan int | ||
|  | 	F func() int | ||
|  | 	I interface { | ||
|  | 		m() int | ||
|  | 	} | ||
|  | 	M map[int]int | ||
|  | 	P *int | ||
|  | 	S struct { | ||
|  | 		X int | ||
|  | 	} | ||
|  | 
 | ||
|  | 	A1 [10]int | ||
|  | 	B1 []int | ||
|  | 	C1 chan int | ||
|  | 	F1 func() int | ||
|  | 	I1 interface { | ||
|  | 		m() int | ||
|  | 	} | ||
|  | 	M1 map[int]int | ||
|  | 	P1 *int | ||
|  | 	S1 struct { | ||
|  | 		X int | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | var ( | ||
|  | 	a0 [10]int | ||
|  | 	b0 []int | ||
|  | 	c0 chan int | ||
|  | 	f0 func() int | ||
|  | 	i0 interface { | ||
|  | 		m() int | ||
|  | 	} | ||
|  | 	m0 map[int]int | ||
|  | 	p0 *int | ||
|  | 	s0 struct { | ||
|  | 		X int | ||
|  | 	} | ||
|  | 
 | ||
|  | 	a A | ||
|  | 	b B | ||
|  | 	c C | ||
|  | 	f F | ||
|  | 	i I | ||
|  | 	m M | ||
|  | 	p P | ||
|  | 	s S | ||
|  | 
 | ||
|  | 	a1 A1 | ||
|  | 	b1 B1 | ||
|  | 	c1 C1 | ||
|  | 	f1 F1 | ||
|  | 	i1 I1 | ||
|  | 	m1 M1 | ||
|  | 	p1 P1 | ||
|  | 	s1 S1 | ||
|  | 
 | ||
|  | 	pa0 *[10]int | ||
|  | 	pb0 *[]int | ||
|  | 	pc0 *chan int | ||
|  | 	pf0 *func() int | ||
|  | 	pi0 *interface { | ||
|  | 		m() int | ||
|  | 	} | ||
|  | 	pm0 *map[int]int | ||
|  | 	pp0 **int | ||
|  | 	ps0 *struct { | ||
|  | 		X int | ||
|  | 	} | ||
|  | 
 | ||
|  | 	pa *A | ||
|  | 	pb *B | ||
|  | 	pc *C | ||
|  | 	pf *F | ||
|  | 	pi *I | ||
|  | 	pm *M | ||
|  | 	pp *P | ||
|  | 	ps *S | ||
|  | 
 | ||
|  | 	pa1 *A1 | ||
|  | 	pb1 *B1 | ||
|  | 	pc1 *C1 | ||
|  | 	pf1 *F1 | ||
|  | 	pi1 *I1 | ||
|  | 	pm1 *M1 | ||
|  | 	pp1 *P1 | ||
|  | 	ps1 *S1 | ||
|  | ) | ||
|  | 
 | ||
|  | func main() { | ||
|  | 	a0 = a | ||
|  | 	a0 = a1 | ||
|  | 	a = a0 | ||
|  | 	a = a1 // ERROR "cannot use" | ||
|  | 	a1 = a0 | ||
|  | 	a1 = a // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	b0 = b | ||
|  | 	b0 = b1 | ||
|  | 	b = b0 | ||
|  | 	b = b1 // ERROR "cannot use" | ||
|  | 	b1 = b0 | ||
|  | 	b1 = b // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	c0 = c | ||
|  | 	c0 = c1 | ||
|  | 	c = c0 | ||
|  | 	c = c1 // ERROR "cannot use" | ||
|  | 	c1 = c0 | ||
|  | 	c1 = c // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	f0 = f | ||
|  | 	f0 = f1 | ||
|  | 	f = f0 | ||
|  | 	f = f1 // ERROR "cannot use" | ||
|  | 	f1 = f0 | ||
|  | 	f1 = f // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	i0 = i | ||
|  | 	i0 = i1 | ||
|  | 	i = i0 | ||
|  | 	i = i1 | ||
|  | 	i1 = i0 | ||
|  | 	i1 = i | ||
|  | 
 | ||
|  | 	m0 = m | ||
|  | 	m0 = m1 | ||
|  | 	m = m0 | ||
|  | 	m = m1 // ERROR "cannot use" | ||
|  | 	m1 = m0 | ||
|  | 	m1 = m // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	p0 = p | ||
|  | 	p0 = p1 | ||
|  | 	p = p0 | ||
|  | 	p = p1 // ERROR "cannot use" | ||
|  | 	p1 = p0 | ||
|  | 	p1 = p // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	s0 = s | ||
|  | 	s0 = s1 | ||
|  | 	s = s0 | ||
|  | 	s = s1 // ERROR "cannot use" | ||
|  | 	s1 = s0 | ||
|  | 	s1 = s // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	pa0 = pa  // ERROR "cannot use" | ||
|  | 	pa0 = pa1 // ERROR "cannot use" | ||
|  | 	pa = pa0  // ERROR "cannot use" | ||
|  | 	pa = pa1  // ERROR "cannot use" | ||
|  | 	pa1 = pa0 // ERROR "cannot use" | ||
|  | 	pa1 = pa  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	pb0 = pb  // ERROR "cannot use" | ||
|  | 	pb0 = pb1 // ERROR "cannot use" | ||
|  | 	pb = pb0  // ERROR "cannot use" | ||
|  | 	pb = pb1  // ERROR "cannot use" | ||
|  | 	pb1 = pb0 // ERROR "cannot use" | ||
|  | 	pb1 = pb  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	pc0 = pc  // ERROR "cannot use" | ||
|  | 	pc0 = pc1 // ERROR "cannot use" | ||
|  | 	pc = pc0  // ERROR "cannot use" | ||
|  | 	pc = pc1  // ERROR "cannot use" | ||
|  | 	pc1 = pc0 // ERROR "cannot use" | ||
|  | 	pc1 = pc  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	pf0 = pf  // ERROR "cannot use" | ||
|  | 	pf0 = pf1 // ERROR "cannot use" | ||
|  | 	pf = pf0  // ERROR "cannot use" | ||
|  | 	pf = pf1  // ERROR "cannot use" | ||
|  | 	pf1 = pf0 // ERROR "cannot use" | ||
|  | 	pf1 = pf  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	pi0 = pi  // ERROR "cannot use" | ||
|  | 	pi0 = pi1 // ERROR "cannot use" | ||
|  | 	pi = pi0  // ERROR "cannot use" | ||
|  | 	pi = pi1  // ERROR "cannot use" | ||
|  | 	pi1 = pi0 // ERROR "cannot use" | ||
|  | 	pi1 = pi  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	pm0 = pm  // ERROR "cannot use" | ||
|  | 	pm0 = pm1 // ERROR "cannot use" | ||
|  | 	pm = pm0  // ERROR "cannot use" | ||
|  | 	pm = pm1  // ERROR "cannot use" | ||
|  | 	pm1 = pm0 // ERROR "cannot use" | ||
|  | 	pm1 = pm  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	pp0 = pp  // ERROR "cannot use" | ||
|  | 	pp0 = pp1 // ERROR "cannot use" | ||
|  | 	pp = pp0  // ERROR "cannot use" | ||
|  | 	pp = pp1  // ERROR "cannot use" | ||
|  | 	pp1 = pp0 // ERROR "cannot use" | ||
|  | 	pp1 = pp  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 	ps0 = ps  // ERROR "cannot use" | ||
|  | 	ps0 = ps1 // ERROR "cannot use" | ||
|  | 	ps = ps0  // ERROR "cannot use" | ||
|  | 	ps = ps1  // ERROR "cannot use" | ||
|  | 	ps1 = ps0 // ERROR "cannot use" | ||
|  | 	ps1 = ps  // ERROR "cannot use" | ||
|  | 
 | ||
|  | 
 | ||
|  | 	a0 = [10]int(a) | ||
|  | 	a0 = [10]int(a1) | ||
|  | 	a = A(a0) | ||
|  | 	a = A(a1) | ||
|  | 	a1 = A1(a0) | ||
|  | 	a1 = A1(a) | ||
|  | 
 | ||
|  | 	b0 = []int(b) | ||
|  | 	b0 = []int(b1) | ||
|  | 	b = B(b0) | ||
|  | 	b = B(b1) | ||
|  | 	b1 = B1(b0) | ||
|  | 	b1 = B1(b) | ||
|  | 
 | ||
|  | 	c0 = chan int(c) | ||
|  | 	c0 = chan int(c1) | ||
|  | 	c = C(c0) | ||
|  | 	c = C(c1) | ||
|  | 	c1 = C1(c0) | ||
|  | 	c1 = C1(c) | ||
|  | 
 | ||
|  | 	f0 = func() int(f) | ||
|  | 	f0 = func() int(f1) | ||
|  | 	f = F(f0) | ||
|  | 	f = F(f1) | ||
|  | 	f1 = F1(f0) | ||
|  | 	f1 = F1(f) | ||
|  | 
 | ||
|  | 	i0 = interface { | ||
|  | 		m() int | ||
|  | 	}(i) | ||
|  | 	i0 = interface { | ||
|  | 		m() int | ||
|  | 	}(i1) | ||
|  | 	i = I(i0) | ||
|  | 	i = I(i1) | ||
|  | 	i1 = I1(i0) | ||
|  | 	i1 = I1(i) | ||
|  | 
 | ||
|  | 	m0 = map[int]int(m) | ||
|  | 	m0 = map[int]int(m1) | ||
|  | 	m = M(m0) | ||
|  | 	m = M(m1) | ||
|  | 	m1 = M1(m0) | ||
|  | 	m1 = M1(m) | ||
|  | 
 | ||
|  | 	p0 = (*int)(p) | ||
|  | 	p0 = (*int)(p1) | ||
|  | 	p = P(p0) | ||
|  | 	p = P(p1) | ||
|  | 	p1 = P1(p0) | ||
|  | 	p1 = P1(p) | ||
|  | 
 | ||
|  | 	s0 = struct { | ||
|  | 		X int | ||
|  | 	}(s) | ||
|  | 	s0 = struct { | ||
|  | 		X int | ||
|  | 	}(s1) | ||
|  | 	s = S(s0) | ||
|  | 	s = S(s1) | ||
|  | 	s1 = S1(s0) | ||
|  | 	s1 = S1(s) | ||
|  | 
 | ||
|  | 	pa0 = (*[10]int)(pa) | ||
|  | 	pa0 = (*[10]int)(pa1) | ||
|  | 	pa = (*A)(pa0) | ||
|  | 	pa = (*A)(pa1) | ||
|  | 	pa1 = (*A1)(pa0) | ||
|  | 	pa1 = (*A1)(pa) | ||
|  | 
 | ||
|  | 	pb0 = (*[]int)(pb) | ||
|  | 	pb0 = (*[]int)(pb1) | ||
|  | 	pb = (*B)(pb0) | ||
|  | 	pb = (*B)(pb1) | ||
|  | 	pb1 = (*B1)(pb0) | ||
|  | 	pb1 = (*B1)(pb) | ||
|  | 
 | ||
|  | 	pc0 = (*chan int)(pc) | ||
|  | 	pc0 = (*chan int)(pc1) | ||
|  | 	pc = (*C)(pc0) | ||
|  | 	pc = (*C)(pc1) | ||
|  | 	pc1 = (*C1)(pc0) | ||
|  | 	pc1 = (*C1)(pc) | ||
|  | 
 | ||
|  | 	pf0 = (*func() int)(pf) | ||
|  | 	pf0 = (*func() int)(pf1) | ||
|  | 	pf = (*F)(pf0) | ||
|  | 	pf = (*F)(pf1) | ||
|  | 	pf1 = (*F1)(pf0) | ||
|  | 	pf1 = (*F1)(pf) | ||
|  | 
 | ||
|  | 	pi0 = (*interface { | ||
|  | 		m() int | ||
|  | 	})(pi) | ||
|  | 	pi0 = (*interface { | ||
|  | 		m() int | ||
|  | 	})(pi1) | ||
|  | 	pi = (*I)(pi0) | ||
|  | 	pi = (*I)(pi1) | ||
|  | 	pi1 = (*I1)(pi0) | ||
|  | 	pi1 = (*I1)(pi) | ||
|  | 
 | ||
|  | 	pm0 = (*map[int]int)(pm) | ||
|  | 	pm0 = (*map[int]int)(pm1) | ||
|  | 	pm = (*M)(pm0) | ||
|  | 	pm = (*M)(pm1) | ||
|  | 	pm1 = (*M1)(pm0) | ||
|  | 	pm1 = (*M1)(pm) | ||
|  | 
 | ||
|  | 	pp0 = (**int)(pp) | ||
|  | 	pp0 = (**int)(pp1) | ||
|  | 	pp = (*P)(pp0) | ||
|  | 	pp = (*P)(pp1) | ||
|  | 	pp1 = (*P1)(pp0) | ||
|  | 	pp1 = (*P1)(pp) | ||
|  | 
 | ||
|  | 	ps0 = (*struct { | ||
|  | 		X int | ||
|  | 	})(ps) | ||
|  | 	ps0 = (*struct { | ||
|  | 		X int | ||
|  | 	})(ps1) | ||
|  | 	ps = (*S)(ps0) | ||
|  | 	ps = (*S)(ps1) | ||
|  | 	ps1 = (*S1)(ps0) | ||
|  | 	ps1 = (*S1)(ps) | ||
|  | 
 | ||
|  | } |