diff options
author | Evan Shaw <chickencha@gmail.com> | 2010-04-15 19:53:35 -0700 |
---|---|---|
committer | Evan Shaw <chickencha@gmail.com> | 2010-04-15 19:53:35 -0700 |
commit | 42576a1807156f0b31d0ce9ea43579386c5e377c (patch) | |
tree | d07a634d43c4f39b899c5230ffa7d1295fd9af0a /src | |
parent | 06e5c101a49e4ccd8798126bae254341102485e4 (diff) | |
download | golang-42576a1807156f0b31d0ce9ea43579386c5e377c.tar.gz |
exp/eval: Always read float literals as base 10
We were letting bignum decide, which caused problems with float literals with a leading 0.
R=gri
CC=golang-dev
http://codereview.appspot.com/816047
Committer: Robert Griesemer <gri@golang.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/pkg/exp/eval/expr.go | 2 | ||||
-rw-r--r-- | src/pkg/exp/eval/expr_test.go | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/pkg/exp/eval/expr.go b/src/pkg/exp/eval/expr.go index 8651b0780..81e9ffa93 100644 --- a/src/pkg/exp/eval/expr.go +++ b/src/pkg/exp/eval/expr.go @@ -762,7 +762,7 @@ func (a *exprInfo) compileCharLit(lit string) *expr { } func (a *exprInfo) compileFloatLit(lit string) *expr { - f, _, n := bignum.RatFromString(lit, 0) + f, _, n := bignum.RatFromString(lit, 10) if n != len(lit) { log.Crashf("malformed float literal %s at %v passed parser", lit, a.pos) } diff --git a/src/pkg/exp/eval/expr_test.go b/src/pkg/exp/eval/expr_test.go index f7f367d5e..12914fbd5 100644 --- a/src/pkg/exp/eval/expr_test.go +++ b/src/pkg/exp/eval/expr_test.go @@ -142,6 +142,7 @@ var exprTests = []test{ Val("+1", bignum.Int(+1)), Val("+1.0", bignum.Rat(1, 1)), + Val("01.5", bignum.Rat(15, 10)), CErr("+\"x\"", opTypes), Val("-42", bignum.Int(-42)), |