Skip to content

Commit a6189ac

Browse files
authored
Add prefix to enum value with reserved name. (#3020)
1 parent 3c0855e commit a6189ac

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

php/tests/proto/test.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ enum TestEnum {
119119
ZERO = 0;
120120
ONE = 1;
121121
TWO = 2;
122+
ECHO = 3; // Test reserved name.
122123
}
123124

124125
// Test prefix for reserved words.

src/google/protobuf/compiler/php/php_generator.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ const std::string kDescriptorMetadataFile =
4949
"GPBMetadata/Google/Protobuf/Internal/Descriptor.php";
5050
const std::string kDescriptorDirName = "Google/Protobuf/Internal";
5151
const std::string kDescriptorPackageName = "Google\\Protobuf\\Internal";
52-
const char* const kReservedNames[] = {"Empty"};
53-
const int kReservedNamesSize = 1;
52+
const char* const kReservedNames[] = {"Empty", "ECHO"};
53+
const int kReservedNamesSize = 2;
5454

5555
namespace google {
5656
namespace protobuf {
@@ -559,7 +559,7 @@ void GenerateEnumToPool(const EnumDescriptor* en, io::Printer* printer) {
559559
const EnumValueDescriptor* value = en->value(i);
560560
printer->Print(
561561
"->value(\"^name^\", ^number^)\n",
562-
"name", value->name(),
562+
"name", ClassNamePrefix(value->name(), en) + value->name(),
563563
"number", IntToString(value->number()));
564564
}
565565
printer->Print("->finalizeToPool();\n\n");
@@ -845,7 +845,7 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en,
845845
const EnumValueDescriptor* value = en->value(i);
846846
GenerateEnumValueDocComment(&printer, value);
847847
printer.Print("const ^name^ = ^number^;\n",
848-
"name", value->name(),
848+
"name", ClassNamePrefix(value->name(), en) + value->name(),
849849
"number", IntToString(value->number()));
850850
}
851851

0 commit comments

Comments
 (0)