]> Cypherpunks repositories - gostls13.git/commit
math/big: wrap Float.Cmp result in struct to prevent wrong use
authorRobert Griesemer <gri@golang.org>
Sat, 14 Mar 2015 00:24:30 +0000 (17:24 -0700)
committerRobert Griesemer <gri@golang.org>
Sat, 14 Mar 2015 00:48:53 +0000 (00:48 +0000)
commit23fd374bf22aa2eea9c07076061ef8cfbc6cf3d7
tree13107ece1e2026dd83e99fceea9e0da36054dabb
parentb10021644145d7148ced74194b0d668a4428cc15
math/big: wrap Float.Cmp result in struct to prevent wrong use

Float.Cmp used to return a value < 0, 0, or > 0 depending on how
arguments x, y compared against each other. With the possibility
of NaNs, the result was changed into an Accuracy (to include Undef).
Consequently, Float.Cmp results could still be compared for (in-)
equality with 0, but comparing if < 0 or > 0 would provide the
wrong answer w/o any obvious notice by the compiler.

This change wraps Float.Cmp results into a struct and accessors
are used to access the desired result. This prevents incorrect
use.

Change-Id: I34e6a6c1859251ec99b5cf953e82542025ace56f
Reviewed-on: https://go-review.googlesource.com/7526
Reviewed-by: Rob Pike <r@golang.org>
src/math/big/float.go
src/math/big/float_test.go
src/math/big/floatconv_test.go
src/math/big/floatexample_test.go