modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/cmplx.go (about) 1 // errorcheck 2 3 // Copyright 2010 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // Verify that incorrect invocations of the complex predeclared function are detected. 8 // Does not compile. 9 10 package main 11 12 type ( 13 Float32 float32 14 Float64 float64 15 Complex64 complex64 16 Complex128 complex128 17 ) 18 19 var ( 20 f32 float32 21 f64 float64 22 F32 Float32 23 F64 Float64 24 25 c64 complex64 26 c128 complex128 27 C64 Complex64 28 C128 Complex128 29 ) 30 31 func F1() int { 32 return 1 33 } 34 35 func F3() (int, int, int) { 36 return 1, 2, 3 37 } 38 39 func main() { 40 // ok 41 c64 = complex(f32, f32) 42 c128 = complex(f64, f64) 43 44 _ = complex128(0) // ok 45 _ = complex(f32, f64) // ERROR "complex" 46 _ = complex(f64, f32) // ERROR "complex" 47 _ = complex(f32, F32) // ERROR "complex" 48 _ = complex(F32, f32) // ERROR "complex" 49 _ = complex(f64, F64) // ERROR "complex" 50 _ = complex(F64, f64) // ERROR "complex" 51 52 _ = complex(F1()) // ERROR "expects two arguments.*returns 1" 53 _ = complex(F3()) // ERROR "expects two arguments.*returns 3" 54 55 _ = complex() // ERROR "missing argument" 56 57 c128 = complex(f32, f32) // ERROR "cannot use" 58 c64 = complex(f64, f64) // ERROR "cannot use" 59 60 c64 = complex(1.0, 2.0) // ok, constant is untyped 61 c128 = complex(1.0, 2.0) 62 C64 = complex(1.0, 2.0) 63 C128 = complex(1.0, 2.0) 64 65 C64 = complex(f32, f32) // ERROR "cannot use" 66 C128 = complex(f64, f64) // ERROR "cannot use" 67 68 }