Merge pull request #277 from hashicorp/decode-string-booleans
Decode string booleans
This commit is contained in:
commit
cf7d376da9
@ -535,7 +535,7 @@ func (d *decoder) decodeString(name string, node ast.Node, result reflect.Value)
|
|||||||
switch n := node.(type) {
|
switch n := node.(type) {
|
||||||
case *ast.LiteralType:
|
case *ast.LiteralType:
|
||||||
switch n.Token.Type {
|
switch n.Token.Type {
|
||||||
case token.NUMBER:
|
case token.NUMBER, token.FLOAT, token.BOOL:
|
||||||
result.Set(reflect.ValueOf(n.Token.Text).Convert(result.Type()))
|
result.Set(reflect.ValueOf(n.Token.Text).Convert(result.Type()))
|
||||||
return nil
|
return nil
|
||||||
case token.STRING, token.HEREDOC:
|
case token.STRING, token.HEREDOC:
|
||||||
|
@ -951,6 +951,28 @@ func TestDecode_float64(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDecode_string(t *testing.T) {
|
||||||
|
type value struct {
|
||||||
|
A string `hcl:"a"`
|
||||||
|
B string `hcl:"b"`
|
||||||
|
C string `hcl:"c"`
|
||||||
|
D string `hcl:"d"`
|
||||||
|
E string `hcl:"e"`
|
||||||
|
}
|
||||||
|
|
||||||
|
got := value{}
|
||||||
|
err := Decode(&got, testReadFile(t, "string.hcl"))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
want := value{"s", "2", "2.718", "true", "false"}
|
||||||
|
if !reflect.DeepEqual(want, got) {
|
||||||
|
t.Fatalf("expected %#v; got %#v", want, got)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func TestDecode_intStringAliased(t *testing.T) {
|
func TestDecode_intStringAliased(t *testing.T) {
|
||||||
var value struct {
|
var value struct {
|
||||||
Count time.Duration
|
Count time.Duration
|
||||||
|
5
test-fixtures/string.hcl
Normal file
5
test-fixtures/string.hcl
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
a = "s"
|
||||||
|
b = 2
|
||||||
|
c = 2.718
|
||||||
|
d = true
|
||||||
|
e = false
|
Loading…
Reference in New Issue
Block a user