From 820938471dba8162249928cc92263dc05f8cb09c Mon Sep 17 00:00:00 2001 From: Thomas Pelletier Date: Sun, 24 Feb 2013 22:45:44 +0100 Subject: [PATCH] Fix nested keys --- src/toml/parser.go | 4 ++-- src/toml/parser_test.go | 7 +++++++ src/toml/toml.go | 2 -- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/toml/parser.go b/src/toml/parser.go index a700b91..0045e31 100644 --- a/src/toml/parser.go +++ b/src/toml/parser.go @@ -84,8 +84,8 @@ func parseStart(p *parser) parserStateFn { func parseGroup(p *parser) parserStateFn { p.getToken() // discard the [ key := p.getToken() - if key.typ != tokenKey { - panic(fmt.Sprintf("unexpected token %s, was expecting a key", key)) + if key.typ != tokenKeyGroup { + panic(fmt.Sprintf("unexpected token %s, was expecting a key group", key)) } p.tree.createSubTree(key.val) p.assume(tokenRightBracket) diff --git a/src/toml/parser_test.go b/src/toml/parser_test.go index d7ae0e3..f5ad742 100644 --- a/src/toml/parser_test.go +++ b/src/toml/parser_test.go @@ -69,3 +69,10 @@ func TestBools(t *testing.T) { "b": false, }) } + +func TestNestedKeys(t *testing.T) { + tree := Load("[a.b.c]\nd = 42") + assertTree(t, tree, map[string]interface{}{ + "a.b.c.d": int64(42), + }) +} diff --git a/src/toml/toml.go b/src/toml/toml.go index 137a9fe..8653399 100644 --- a/src/toml/toml.go +++ b/src/toml/toml.go @@ -20,8 +20,6 @@ func (t *TomlTree) Keys() []string { return keys } -// Get an element from the tree. -// If the path described by the key does not exist, nil is returned. func (t *TomlTree) Get(key string) interface{} { subtree := t keys := strings.Split(key, ".")