mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-01 19:58:15 +00:00
Make it an error if a field has the same name as a table.
Change-Id: Ie5a3bb5a3643cd48e1cc75fe170a7b8a7c2cc8ed Tested: on Linux.
This commit is contained in:
@@ -608,7 +608,7 @@ CheckedError Parser::AddField(StructDef &struct_def, const std::string &name,
|
||||
CheckedError Parser::ParseField(StructDef &struct_def) {
|
||||
std::string name = attribute_;
|
||||
|
||||
if (name == struct_def.name)
|
||||
if (structs_.Lookup(name))
|
||||
return Error("field name can not be the same as table/struct name");
|
||||
|
||||
std::vector<std::string> dc = doc_comment_;
|
||||
|
||||
@@ -1101,7 +1101,7 @@ void ErrorTest() {
|
||||
TestError("table X { Y:[[int]]; }", "nested vector");
|
||||
TestError("table X { Y:1; }", "illegal type");
|
||||
TestError("table X { Y:int; Y:int; }", "field already");
|
||||
TestError("table X { X:int; }", "same as table");
|
||||
TestError("table Y {} table X { Y:int; }", "same as table");
|
||||
TestError("struct X { Y:string; }", "only scalar");
|
||||
TestError("struct X { Y:int (deprecated); }", "deprecate");
|
||||
TestError("union Z { X } table X { Y:Z; } root_type X; { Y: {}, A:1 }",
|
||||
|
||||
Reference in New Issue
Block a user