]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/const1.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / const1.go
index 1580b76c68374f1582171ddc5246cf68be890953..1efe688cb99ce2a4749ef083cca763b8e3ee09ad 100644 (file)
@@ -9,6 +9,8 @@
 
 package main
 
+import "unsafe"
+
 type I interface{}
 
 const (
@@ -28,45 +30,45 @@ const (
 )
 
 var (
-       a1 = Int8 * 100              // ERROR "overflow"
+       a1 = Int8 * 100              // ERROR "overflow|cannot convert"
        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"
+       a3 = Int8 * 1000             // ERROR "overflow|cannot convert"
+       a4 = Int8 * int8(1000)       // ERROR "overflow|cannot convert"
+       a5 = int8(Int8 * 1000)       // ERROR "overflow|cannot convert"
+       a6 = int8(Int8 * int8(1000)) // ERROR "overflow|cannot convert"
+       a7 = Int8 - 2*Int8 - 2*Int8  // ERROR "overflow|cannot convert"
+       a8 = Int8 * Const / 100      // ERROR "overflow|cannot convert"
        a9 = Int8 * (Const / 100)    // OK
 
-       b1        = Uint8 * Uint8         // ERROR "overflow"
-       b2        = Uint8 * -1            // ERROR "overflow"
+       b1        = Uint8 * Uint8         // ERROR "overflow|cannot convert"
+       b2        = Uint8 * -1            // ERROR "overflow|cannot convert"
        b3        = Uint8 - Uint8         // OK
-       b4        = Uint8 - Uint8 - Uint8 // ERROR "overflow"
-       b5        = uint8(^0)             // ERROR "overflow"
+       b4        = Uint8 - Uint8 - Uint8 // ERROR "overflow|cannot convert"
+       b5        = uint8(^0)             // ERROR "overflow|cannot convert"
        b5a       = int64(^0)             // OK
        b6        = ^uint8(0)             // OK
        b6a       = ^int64(0)             // OK
-       b7        = uint8(Minus1)         // ERROR "overflow"
-       b8        = uint8(int8(-1))       // ERROR "overflow"
-       b8a       = uint8(-1)             // ERROR "overflow"
+       b7        = uint8(Minus1)         // ERROR "overflow|cannot convert"
+       b8        = uint8(int8(-1))       // ERROR "overflow|cannot convert"
+       b8a       = uint8(-1)             // ERROR "overflow|cannot convert"
        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"
+       b10  byte = (1 << 10)             // ERROR "overflow|cannot convert"
+       b11  byte = (byte(1) << 10) >> 8  // ERROR "overflow|cannot convert"
+       b12  byte = 1000                  // ERROR "overflow|cannot convert"
+       b13  byte = byte(1000)            // ERROR "overflow|cannot convert"
+       b14  byte = byte(100) * byte(100) // ERROR "overflow|cannot convert"
+       b15  byte = byte(100) * 100       // ERROR "overflow|cannot convert"
+       b16  byte = byte(0) * 1000        // ERROR "overflow|cannot convert"
        b16a byte = 0 * 1000              // OK
-       b17  byte = byte(0) * byte(1000)  // ERROR "overflow"
+       b17  byte = byte(0) * byte(1000)  // ERROR "overflow|cannot convert"
        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"
+       c2 float64 = Big * Big          // ERROR "overflow|cannot convert"
+       c3 float64 = float64(Big) * Big // ERROR "overflow|cannot convert"
+       c4         = Big * Big          // ERROR "overflow|cannot convert"
        c5         = Big / 0            // ERROR "division by zero"
-       c6         = 1000 % 1e3         // ERROR "floating-point % operation|expected integer type"
+       c6         = 1000 % 1e3         // ERROR "invalid operation|expected integer type"
 )
 
 func f(int)
@@ -85,4 +87,8 @@ func main() {
        f(Bool)             // ERROR "convert|wrong type|cannot|incompatible"
 }
 
-const ptr = nil // ERROR "const.*nil"
+const ptr = nil // ERROR "const.*nil|not constant"
+const _ = string([]byte(nil)) // ERROR "is not a? ?constant"
+const _ = uintptr(unsafe.Pointer((*int)(nil))) // ERROR "is not a? ?constant"
+const _ = unsafe.Pointer((*int)(nil)) // ERROR "cannot be nil|invalid constant type|is not a constant|not constant"
+const _ = (*int)(nil) // ERROR "cannot be nil|invalid constant type|is not a constant|not constant"