Skip to content

Commit

Permalink
Add prefix to enum value with reserved name. (#3020)
Browse files Browse the repository at this point in the history
  • Loading branch information
TeBoring authored Apr 26, 2017
1 parent 3c0855e commit a6189ac
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
1 change: 1 addition & 0 deletions php/tests/proto/test.proto
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ enum TestEnum {
ZERO = 0;
ONE = 1;
TWO = 2;
ECHO = 3; // Test reserved name.
}

// Test prefix for reserved words.
Expand Down
8 changes: 4 additions & 4 deletions src/google/protobuf/compiler/php/php_generator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ const std::string kDescriptorMetadataFile =
"GPBMetadata/Google/Protobuf/Internal/Descriptor.php";
const std::string kDescriptorDirName = "Google/Protobuf/Internal";
const std::string kDescriptorPackageName = "Google\\Protobuf\\Internal";
const char* const kReservedNames[] = {"Empty"};
const int kReservedNamesSize = 1;
const char* const kReservedNames[] = {"Empty", "ECHO"};
const int kReservedNamesSize = 2;

namespace google {
namespace protobuf {
Expand Down Expand Up @@ -559,7 +559,7 @@ void GenerateEnumToPool(const EnumDescriptor* en, io::Printer* printer) {
const EnumValueDescriptor* value = en->value(i);
printer->Print(
"->value(\"^name^\", ^number^)\n",
"name", value->name(),
"name", ClassNamePrefix(value->name(), en) + value->name(),
"number", IntToString(value->number()));
}
printer->Print("->finalizeToPool();\n\n");
Expand Down Expand Up @@ -845,7 +845,7 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en,
const EnumValueDescriptor* value = en->value(i);
GenerateEnumValueDocComment(&printer, value);
printer.Print("const ^name^ = ^number^;\n",
"name", value->name(),
"name", ClassNamePrefix(value->name(), en) + value->name(),
"number", IntToString(value->number()));
}

Expand Down

0 comments on commit a6189ac

Please sign in to comment.