github.com/zach-klippenstein/go@v0.0.0-20150108044943-fcfbeb3adf58/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 main() { 32 // ok 33 c64 = complex(f32, f32) 34 c128 = complex(f64, f64) 35 36 _ = complex128(0) // ok 37 _ = complex(f32, f64) // ERROR "complex" 38 _ = complex(f64, f32) // ERROR "complex" 39 _ = complex(f32, F32) // ERROR "complex" 40 _ = complex(F32, f32) // ERROR "complex" 41 _ = complex(f64, F64) // ERROR "complex" 42 _ = complex(F64, f64) // ERROR "complex" 43 44 c128 = complex(f32, f32) // ERROR "cannot use" 45 c64 = complex(f64, f64) // ERROR "cannot use" 46 47 c64 = complex(1.0, 2.0) // ok, constant is untyped 48 c128 = complex(1.0, 2.0) 49 C64 = complex(1.0, 2.0) 50 C128 = complex(1.0, 2.0) 51 52 C64 = complex(f32, f32) // ERROR "cannot use" 53 C128 = complex(f64, f64) // ERROR "cannot use" 54 }