Merge pull request #210 from hashicorp/decode-number-into-float
Decode NUMBER into float32 and float64 fields
This commit is contained in:
commit
68e816d1c7
@ -137,7 +137,7 @@ func (d *decoder) decodeBool(name string, node ast.Node, result reflect.Value) e
|
||||
func (d *decoder) decodeFloat(name string, node ast.Node, result reflect.Value) error {
|
||||
switch n := node.(type) {
|
||||
case *ast.LiteralType:
|
||||
if n.Token.Type == token.FLOAT {
|
||||
if n.Token.Type == token.FLOAT || n.Token.Type == token.NUMBER {
|
||||
v, err := strconv.ParseFloat(n.Token.Text, 64)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -73,6 +73,7 @@ func TestDecode_interface(t *testing.T) {
|
||||
false,
|
||||
map[string]interface{}{
|
||||
"a": 1.02,
|
||||
"b": 2,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -811,6 +812,7 @@ func TestDecode_intString(t *testing.T) {
|
||||
func TestDecode_float32(t *testing.T) {
|
||||
var value struct {
|
||||
A float32 `hcl:"a"`
|
||||
B float32 `hcl:"b"`
|
||||
}
|
||||
|
||||
err := Decode(&value, testReadFile(t, "float.hcl"))
|
||||
@ -821,11 +823,15 @@ func TestDecode_float32(t *testing.T) {
|
||||
if got, want := value.A, float32(1.02); got != want {
|
||||
t.Fatalf("wrong result %#v; want %#v", got, want)
|
||||
}
|
||||
if got, want := value.B, float32(2); got != want {
|
||||
t.Fatalf("wrong result %#v; want %#v", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecode_float64(t *testing.T) {
|
||||
var value struct {
|
||||
A float64 `hcl:"a"`
|
||||
B float64 `hcl:"b"`
|
||||
}
|
||||
|
||||
err := Decode(&value, testReadFile(t, "float.hcl"))
|
||||
@ -836,6 +842,9 @@ func TestDecode_float64(t *testing.T) {
|
||||
if got, want := value.A, float64(1.02); got != want {
|
||||
t.Fatalf("wrong result %#v; want %#v", got, want)
|
||||
}
|
||||
if got, want := value.B, float64(2); got != want {
|
||||
t.Fatalf("wrong result %#v; want %#v", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecode_intStringAliased(t *testing.T) {
|
||||
|
@ -1 +1,2 @@
|
||||
a = 1.02
|
||||
b = 2
|
||||
|
@ -1,3 +1,4 @@
|
||||
{
|
||||
"a": 1.02
|
||||
"a": 1.02,
|
||||
"b": 2
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user