fix parser string=null (#6810)
authorCasper <casperneo@uchicago.edu>
Tue, 24 Aug 2021 13:41:39 +0000 (09:41 -0400)
committerGitHub <noreply@github.com>
Tue, 24 Aug 2021 13:41:39 +0000 (09:41 -0400)
Co-authored-by: Casper Neo <cneo@google.com>
src/idl_parser.cpp
tests/test.cpp

index 720e803..a6fad12 100644 (file)
@@ -812,8 +812,7 @@ CheckedError Parser::ParseField(StructDef &struct_def) {
           "or in structs.");
     if (IsString(type) || IsVector(type)) {
       advanced_features_ |= reflection::DefaultVectorsAndStrings;
-      if (field->value.constant != "0" && field->value.constant != "null" &&
-          !SupportsDefaultVectorsAndStrings()) {
+      if (field->value.constant != "0" && !SupportsDefaultVectorsAndStrings()) {
         return Error(
             "Default values for strings and vectors are not supported in one "
             "of the specified programming languages");
index 7ae8a2b..866ba38 100644 (file)
@@ -3883,6 +3883,7 @@ void StringVectorDefaultsTest() {
   schemas.push_back("table Monster { mana: string = \"\"; }");
   schemas.push_back("table Monster { mana: string = \"mystr\"; }");
   schemas.push_back("table Monster { mana: string = \"  \"; }");
+  schemas.push_back("table Monster { mana: string = \"null\"; }");
   schemas.push_back("table Monster { mana: [int] = []; }");
   schemas.push_back("table Monster { mana: [uint] = [  ]; }");
   schemas.push_back("table Monster { mana: [byte] = [\t\t\n]; }");