diff options
author | Rémy Oudompheng <oudomphe@phare.normalesup.org> | 2013-03-11 22:55:14 +0100 |
---|---|---|
committer | Rémy Oudompheng <oudomphe@phare.normalesup.org> | 2013-03-11 22:55:14 +0100 |
commit | 401e0fea3ad120a495f7c8770cfbf1278c00c16e (patch) | |
tree | 5abe992f93e6f84a45c8d9d8bd963326dfd6de32 /test/cmplx.go | |
parent | e15c0ac693dec3379306f5c0942812f12a37e736 (diff) | |
download | go-401e0fea3ad120a495f7c8770cfbf1278c00c16e.tar.gz go-401e0fea3ad120a495f7c8770cfbf1278c00c16e.zip |
cmd/gc: reject complex calls with mismatched argument types.
The specification says "the two arguments must be of the same
floating-point type."
R=rsc, gri
CC=golang-dev
https://golang.org/cl/7671045
Diffstat (limited to 'test/cmplx.go')
-rw-r--r-- | test/cmplx.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/cmplx.go b/test/cmplx.go index 248672e7dd..2d8a6229d6 100644 --- a/test/cmplx.go +++ b/test/cmplx.go @@ -9,12 +9,23 @@ package main +type ( + Float32 float32 + Float64 float64 + Complex64 complex64 + Complex128 complex128 +) + var ( f32 float32 f64 float64 + F32 Float32 + F64 Float64 c64 complex64 c128 complex128 + C64 Complex64 + C128 Complex128 ) func main() { @@ -25,4 +36,19 @@ func main() { _ = complex128(0) // ok _ = complex(f32, f64) // ERROR "complex" _ = complex(f64, f32) // ERROR "complex" + _ = complex(f32, F32) // ERROR "complex" + _ = complex(F32, f32) // ERROR "complex" + _ = complex(f64, F64) // ERROR "complex" + _ = complex(F64, f64) // ERROR "complex" + + c128 = complex(f32, f32) // ERROR "cannot use" + c64 = complex(f64, f64) // ERROR "cannot use" + + c64 = complex(1.0, 2.0) // ok, constant is untyped + c128 = complex(1.0, 2.0) + C64 = complex(1.0, 2.0) + C128 = complex(1.0, 2.0) + + C64 = complex(f32, f32) // ERROR "cannot use" + C128 = complex(f64, f64) // ERROR "cannot use" } |