fix reserved casing
This commit is contained in:
parent
062faa41b8
commit
b1a318631b
2 changed files with 10 additions and 8 deletions
|
|
@ -2113,7 +2113,7 @@ b
|
||||||
tassert.Equal(t, 5, len(g.Objects))
|
tassert.Equal(t, 5, len(g.Objects))
|
||||||
tassert.Equal(t, "a", g.Objects[0].ID)
|
tassert.Equal(t, "a", g.Objects[0].ID)
|
||||||
tassert.Equal(t, "b", g.Objects[1].ID)
|
tassert.Equal(t, "b", g.Objects[1].ID)
|
||||||
tassert.Equal(t, `"04:20,11:20"`, g.Objects[2].ID)
|
tassert.Equal(t, `04:20,11:20`, g.Objects[2].ID)
|
||||||
tassert.Equal(t, `loop through each table`, g.Objects[3].ID)
|
tassert.Equal(t, `loop through each table`, g.Objects[3].ID)
|
||||||
tassert.Equal(t, 1, len(g.Objects[0].ChildrenArray))
|
tassert.Equal(t, 1, len(g.Objects[0].ChildrenArray))
|
||||||
tassert.Equal(t, 0, len(g.Objects[1].ChildrenArray))
|
tassert.Equal(t, 0, len(g.Objects[1].ChildrenArray))
|
||||||
|
|
|
||||||
16
d2ir/d2ir.go
16
d2ir/d2ir.go
|
|
@ -870,23 +870,25 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b
|
||||||
}
|
}
|
||||||
|
|
||||||
head := kp.Path[i].Unbox()
|
head := kp.Path[i].Unbox()
|
||||||
|
headString := head.ScalarString()
|
||||||
|
|
||||||
if _, ok := d2ast.ReservedKeywords[strings.ToLower(head.ScalarString())]; ok && head.IsUnquoted() {
|
if _, ok := d2ast.ReservedKeywords[strings.ToLower(head.ScalarString())]; ok && head.IsUnquoted() {
|
||||||
if _, ok := d2ast.CompositeReservedKeywords[strings.ToLower(head.ScalarString())]; !ok && i < len(kp.Path)-1 {
|
headString = strings.ToLower(head.ScalarString())
|
||||||
return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head.ScalarString()))
|
if _, ok := d2ast.CompositeReservedKeywords[headString]; !ok && i < len(kp.Path)-1 {
|
||||||
|
return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, headString))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if head.ScalarString() == "_" && head.IsUnquoted() {
|
if headString == "_" && head.IsUnquoted() {
|
||||||
return d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`)
|
return d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if head.ScalarString() == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" {
|
if headString == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" {
|
||||||
return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString())
|
return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", headString)
|
||||||
}
|
}
|
||||||
|
|
||||||
if findBoardKeyword(head.ScalarString()) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" {
|
if findBoardKeyword(headString) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" {
|
||||||
return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString())
|
return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", headString)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, f := range m.Fields {
|
for _, f := range m.Fields {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue