summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvan Shaw <chickencha@gmail.com>2010-04-15 19:53:35 -0700
committerEvan Shaw <chickencha@gmail.com>2010-04-15 19:53:35 -0700
commit42576a1807156f0b31d0ce9ea43579386c5e377c (patch)
treed07a634d43c4f39b899c5230ffa7d1295fd9af0a /src
parent06e5c101a49e4ccd8798126bae254341102485e4 (diff)
downloadgolang-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.go2
-rw-r--r--src/pkg/exp/eval/expr_test.go1
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)),