mirror of
				https://github.com/golang/go.git
				synced 2025-10-31 16:50:58 +00:00 
			
		
		
		
	 2f1d6a5d91
			
		
	
	
		2f1d6a5d91
		
	
	
	
	
		
			
			test. const1.go:27: error: integer constant overflow const1.go:29: error: integer constant overflow const1.go:30: error: integer constant overflow const1.go:31: error: integer constant overflow const1.go:32: error: integer constant overflow const1.go:33: error: integer constant overflow const1.go:33: error: integer constant overflow const1.go:34: error: integer constant overflow const1.go:37: error: integer constant overflow const1.go:38: error: integer constant overflow const1.go:40: error: integer constant overflow const1.go:41: error: integer constant overflow const1.go:43: error: integer constant overflow const1.go:44: error: integer constant overflow const1.go:45: error: integer constant overflow const1.go:48: error: integer constant overflow const1.go:50: error: integer constant overflow const1.go:51: error: integer constant overflow const1.go:52: error: integer constant overflow const1.go:53: error: integer constant overflow const1.go:55: error: integer constant overflow const1.go:56: error: division by zero const1.go:59: error: floating point constant overflow const1.go:61: error: floating point constant overflow const1.go:62: error: division by zero const1.go:47: error: integer constant overflow const1.go:49: error: integer constant overflow const1.go:60: error: floating point constant overflow const1.go:68: error: argument 1 has incompatible type (cannot use type int8 as type int) const1.go:69: error: argument 1 has incompatible type (cannot use type int8 as type int) const1.go:70: error: argument 1 has incompatible type (cannot use type uint8 as type int) const1.go:72: error: argument 1 has incompatible type (cannot use type float32 as type int) const1.go:73: error: argument 1 has incompatible type (cannot use type float as type int) const1.go:74: error: floating point constant truncated to integer const1.go:76: error: argument 1 has incompatible type (cannot use type float64 as type int) const1.go:77: error: argument 1 has incompatible type const1.go:78: error: argument 1 has incompatible type R=rsc http://go/go-review/1022001
		
			
				
	
	
		
			79 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // errchk $G -e $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 I interface {}
 | |
| const (
 | |
| 	// assume all types behave similarly to int8/uint8
 | |
| 	Int8 int8 = 101;
 | |
| 	Minus1 int8 = -1;
 | |
| 	Uint8 uint8 = 102;
 | |
| 	Const = 103;
 | |
| 
 | |
| 	Float32 float32 = 104.5;
 | |
| 	Float float = 105.5;
 | |
| 	ConstFloat = 106.5;
 | |
| 	Big float64 = 1e300;
 | |
| 
 | |
| 	String = "abc";
 | |
| 	Bool = true;
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	a1 = Int8 * 100;	// ERROR "overflow"
 | |
| 	a2 = Int8 * -1;	// OK
 | |
| 	a3 = Int8 * 1000;	// ERROR "overflow"
 | |
| 	a4 = Int8 * int8(1000);	// ERROR "overflow"
 | |
| 	a5 = int8(Int8 * 1000);	// ERROR "overflow"
 | |
| 	a6 = int8(Int8 * int8(1000));	// ERROR "overflow"
 | |
| 	a7 = Int8 - 2*Int8 - 2*Int8;	// ERROR "overflow"
 | |
| 	a8 = Int8 * Const / 100;	// ERROR "overflow"
 | |
| 	a9 = Int8 * (Const / 100);	// OK
 | |
| 
 | |
| 	b1 = Uint8 * Uint8;	// ERROR "overflow"
 | |
| 	b2 = Uint8 * -1;	// ERROR "overflow"
 | |
| 	b3 = Uint8 - Uint8;	// OK
 | |
| 	b4 = Uint8 - Uint8 - Uint8;	// ERROR "overflow"
 | |
| 	b5 = uint8(^0);	// ERROR "overflow"
 | |
| 	b6 = ^uint8(0);	// OK
 | |
| 	b7 = uint8(Minus1);	// ERROR "overflow"
 | |
| 	b8 = uint8(int8(-1));	// ERROR "overflow"
 | |
| 	b8a = uint8(-1);	// ERROR "overflow"
 | |
| 	b9 byte = (1<<10) >> 8;	// OK
 | |
| 	b10 byte = (1<<10);	// ERROR "overflow"
 | |
| 	b11 byte = (byte(1)<<10) >> 8;	// ERROR "overflow"
 | |
| 	b12 byte = 1000;	// ERROR "overflow"
 | |
| 	b13 byte = byte(1000);	// ERROR "overflow"
 | |
| 	b14 byte = byte(100) * byte(100);	// ERROR "overflow"
 | |
| 	b15 byte = byte(100) * 100;	// ERROR "overflow"
 | |
| 	b16 byte = byte(0) * 1000;	// ERROR "overflow"
 | |
| 	b16a byte = 0 * 1000;	// OK
 | |
| 	b17 byte = byte(0) * byte(1000);	// ERROR "overflow"
 | |
| 	b18 byte = Uint8/0;	// ERROR "division by zero"
 | |
| 
 | |
| 	c1 float64 = Big;
 | |
| 	c2 float64 = Big*Big;	// ERROR "overflow"
 | |
| 	c3 float64 = float64(Big)*Big;	// ERROR "overflow"
 | |
| 	c4 = Big*Big;	// ERROR "overflow"
 | |
| 	c5 = Big/0;	// ERROR "division by zero"
 | |
| )
 | |
| 
 | |
| func f(int);
 | |
| 
 | |
| func main() {
 | |
| 	f(Int8);	// ERROR "convert|wrong type|cannot"
 | |
| 	f(Minus1);	// ERROR "convert|wrong type|cannot"
 | |
| 	f(Uint8);	// ERROR "convert|wrong type|cannot"
 | |
| 	f(Const);	// OK
 | |
| 	f(Float32);	// ERROR "convert|wrong type|cannot"
 | |
| 	f(Float);	// ERROR "convert|wrong type|cannot"
 | |
| 	f(ConstFloat);	// ERROR "truncate"
 | |
| 	f(ConstFloat - 0.5);	// OK
 | |
| 	f(Big);	// ERROR "convert|wrong type|cannot"
 | |
| 	f(String);	// ERROR "convert|wrong type|cannot|incompatible"
 | |
| 	f(Bool);	// ERROR "convert|wrong type|cannot|incompatible"
 | |
| }
 |