Updated SupportsAdvancedUnionFeatures to look out for string (#6190)
Co-authored-by: Casper Neo <cneo@google.com>
This commit is contained in:
parent
b46db38f57
commit
8f6fa4b715
|
@ -438,6 +438,10 @@ struct EnumDef : public Definition {
|
|||
SymbolTable<EnumVal> vals;
|
||||
};
|
||||
|
||||
inline bool IsString(const Type &type) {
|
||||
return type.base_type == BASE_TYPE_STRING;
|
||||
}
|
||||
|
||||
inline bool IsStruct(const Type &type) {
|
||||
return type.base_type == BASE_TYPE_STRUCT && type.struct_def->fixed;
|
||||
}
|
||||
|
|
|
@ -2998,8 +2998,8 @@ CheckedError Parser::ParseRoot(const char *source, const char **include_paths,
|
|||
for (auto val_it = enum_def.Vals().begin();
|
||||
val_it != enum_def.Vals().end(); ++val_it) {
|
||||
auto &val = **val_it;
|
||||
if (!SupportsAdvancedUnionFeatures() && val.union_type.struct_def &&
|
||||
val.union_type.struct_def->fixed)
|
||||
if (!SupportsAdvancedUnionFeatures() &&
|
||||
(IsStruct(val.union_type) || IsString(val.union_type)))
|
||||
return Error(
|
||||
"only tables can be union elements in the generated language: " +
|
||||
val.name);
|
||||
|
|
Loading…
Reference in New Issue