common/json-schema : fix GBNF grammar generation for empty object schemas (#28279)
This commit is contained in:
@@ -748,6 +748,10 @@ private:
|
|||||||
optional_props.push_back("*");
|
optional_props.push_back("*");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (required_props.empty() && optional_props.empty()) {
|
||||||
|
return "\"{\" space \"}\"";
|
||||||
|
}
|
||||||
|
|
||||||
std::string rule = "\"{\" space ";
|
std::string rule = "\"{\" space ";
|
||||||
for (size_t i = 0; i < required_props.size(); i++) {
|
for (size_t i = 0; i < required_props.size(); i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
|
|||||||
@@ -734,6 +734,9 @@ class SchemaConverter:
|
|||||||
)
|
)
|
||||||
optional_props.append("*")
|
optional_props.append("*")
|
||||||
|
|
||||||
|
if not required_props and not optional_props:
|
||||||
|
return '"{" space "}"'
|
||||||
|
|
||||||
rule = '"{" space '
|
rule = '"{" space '
|
||||||
rule += ' "," space '.join(prop_kv_rule_names[k] for k in required_props)
|
rule += ' "," space '.join(prop_kv_rule_names[k] for k in required_props)
|
||||||
|
|
||||||
|
|||||||
@@ -994,7 +994,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase
|
|||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
})""",
|
})""",
|
||||||
R"""(
|
R"""(
|
||||||
root ::= "{" space space "}"
|
root ::= "{" space "}"
|
||||||
space ::= | " " | "\n"{1,2} [ \t]{0,20}
|
space ::= | " " | "\n"{1,2} [ \t]{0,20}
|
||||||
)"""
|
)"""
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user