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, "a", g.Objects[0].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, 1, len(g.Objects[0].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()
|
||||
headString := head.ScalarString()
|
||||
|
||||
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 {
|
||||
return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head.ScalarString()))
|
||||
headString = strings.ToLower(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"`)
|
||||
}
|
||||
|
||||
if head.ScalarString() == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" {
|
||||
return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString())
|
||||
if headString == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" {
|
||||
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) == "" {
|
||||
return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString())
|
||||
if findBoardKeyword(headString) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" {
|
||||
return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", headString)
|
||||
}
|
||||
|
||||
for _, f := range m.Fields {
|
||||
|
|
|
|||
Loading…
Reference in a new issue