Don't allow empty intermediate tables
This commit is contained in:
@@ -203,6 +203,13 @@ func TestDuplicateGroups(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEmptyIntermediateTable(t *testing.T) {
|
||||||
|
_, err := Load("[foo..bar]")
|
||||||
|
if err.Error() != "empty intermediate table" {
|
||||||
|
t.Error("Bad error message:", err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestMissingFile(t *testing.T) {
|
func TestMissingFile(t *testing.T) {
|
||||||
_, err := LoadFile("foo.toml")
|
_, err := LoadFile("foo.toml")
|
||||||
if err.Error() != "open foo.toml: no such file or directory" {
|
if err.Error() != "open foo.toml: no such file or directory" {
|
||||||
|
|||||||
@@ -88,6 +88,9 @@ func (t *TomlTree) Set(key string, value interface{}) {
|
|||||||
func (t *TomlTree) createSubTree(key string) {
|
func (t *TomlTree) createSubTree(key string) {
|
||||||
subtree := t
|
subtree := t
|
||||||
for _, intermediate_key := range strings.Split(key, ".") {
|
for _, intermediate_key := range strings.Split(key, ".") {
|
||||||
|
if intermediate_key == "" {
|
||||||
|
panic("empty intermediate table")
|
||||||
|
}
|
||||||
_, exists := (*subtree)[intermediate_key]
|
_, exists := (*subtree)[intermediate_key]
|
||||||
if !exists {
|
if !exists {
|
||||||
var new_tree TomlTree = make(TomlTree)
|
var new_tree TomlTree = make(TomlTree)
|
||||||
@@ -121,6 +124,5 @@ func LoadFile(path string) (tree *TomlTree, err error) {
|
|||||||
s := string(buff)
|
s := string(buff)
|
||||||
tree, err = Load(s)
|
tree, err = Load(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user